ARMware StrongARM 模擬器 0.4 版 發佈
胡岳偉
===========================================================
計畫網址 :
http://www.csie.ntu.edu.tw/~r88052/ARMware/tw/index.php
===========================================================
這個版本跟之前版本最大的不同之處有 2:
1. 內建一個 dynamic compiler, 大幅的增加執行時期效能.
2. 可以從 serial console 輸入命令.
開機動畫 (divx4 檔案, 4.3 MB) :
http://www.csie.ntu.edu.tw/~r88052/ARMw ... /start.avi
輸入命令動畫 (divx4 檔案, 2.1 MB) :
http://www.csie.ntu.edu.tw/~r88052/ARMw ... /input.avi
Debian 套件下載 (deb 檔案, 1.1 MB):
http://www.csie.ntu.edu.tw/~r88052/ARMw ... 1_i386.deb
rpm 套件下載 (rpm 檔案, 1.1 MB):
http://www.csie.ntu.edu.tw/~r88052/ARMw ... 2.i386.rpm
===========================================================
* 0.4.0 版:
- 可以從 serial console 輸入.
- 新增 UTF-8 繁體中文翻譯.
* 0.3.0 版:
- 加上 dynamic compiler 技術.
* 0.2.0 版:
- 加上 threaded code 最佳化技術.
* 0.1.0 版:
- 最原始的版本, 純粹的 interpreter 架構.
ARMware 是個 ARM 微處理器的模擬器, 目前所能模擬的核心為
Intel StrongARM SA-1110. 並且 ARMware 以 Compaq iPaq H3600
為對象, 提供了一個軟體模擬 H3600 的環境.
目前 ARMware 所模擬的元件包括:
1. ARM architecture version 4 core
2. ARM standard system coprocessor (CP15)
3. Memory Management Unit (MMU)
4. Translation Lookaside Buffer (TLB)
5. LCD Controller
6. DMA Controller
7. EGPIO
8. Operation System Timer
9. Reset Controller
10. Real Time Clock (RTC)
11. GPIO Controll Block
12. Interrupt Controller
13. Power Management
14. Serial Port 1
15. Serial Port 3
16. Intel StrataFlash J3 Flash ROM
17. Atmel micro-controller
18. LCD screen
19. Touch panel
ARMware 的優點有:
1. 內建 threaded code engine, 會把 ARM machine code 給 cache 起來,
因此可以加快執行的速度.
2. 內建 dynamic compiler, 這個 compiler 會動態的把 ARM 的 machine code
編譯成 x86 的 machine code, 因此可以加快執行的速度.
目前實作的最佳化有:
3. 除此之外, 我也以 assembly codes 重寫了某些部份, 希望能夠更加快
執行的速度. 比方說, 我完全以 MMX 及 SSE2 的指令集來完成 LCD
旋轉 270 度的動作 (這也就是說, 你必須在一台具備 SSE2 指令集的
x86 CPU 上來執行 ARMware, 例如 Pentium M 以及 Pentium 4), 以及
condition codes 的 assembly 化等等.
4. 內建一個記憶體管理子系統, 並且經過冗常的測試, ARMware 幾乎
沒有 memory leak 的情況.
5. 具有 Qt (螢幕快照) 或 Gtk (螢幕快照) 的使用者介面, 但由於 Qt 的
license 問題, 所以目前我只釋放出以 Gtk 為使用者介面的 ARMware.
6. 具備一個 serial console 視窗 (螢幕動畫), 因此可以從該視窗中看到
ARMware 的 serial console 輸出, 同時也可以從該視窗中輸入使用者
命令.
7. 可以使用 GNU dbm (螢幕快照) 或 xml (螢幕快照) 為機器資料的資料庫.
但同樣的, 由於 GNU dbm 的 license 問題, 所以我目前只釋放出以 xml
為機器資料庫的 ARMware.
8. 符合 i18n 標準的繁體中文化介面, 目前的繁體中文翻譯有 Big5 以及
UTF-8.
9. 具備一個完整的模擬燒錄 Flash ROM 工具(螢幕快照),
可用來模擬真實世界中的燒錄 Flash 動作, 並且使用燒錄出來的
Flash ROM 檔案來啟動 ARMware.
10. 每個使用者的機器資料庫分別存放在使用者個家目錄中,
因此不同使用者可以擁有各自的機器資料庫而不會衝突.
===========================================================
胡岳偉
http://www.csie.ntu.edu.tw/~r88052/