| 研究生: |
黃昱彰 Huang, Yu-Chang |
|---|---|
| 論文名稱: |
嵌入式系統虛擬平台可組態式周邊裝置之設計與實作 The Design and Implementation of Configurable Device Emulation in Virtual Embedded System Platform |
| 指導教授: |
陳 敬
Chen, Jing |
| 學位類別: |
碩士 Master |
| 系所名稱: |
電機資訊學院 - 電機工程學系 Department of Electrical Engineering |
| 論文出版年: | 2007 |
| 畢業學年度: | 95 |
| 語文別: | 中文 |
| 論文頁數: | 92 |
| 中文關鍵詞: | 嵌入式 、組態 |
| 外文關鍵詞: | embedded, configurable |
| 相關次數: | 點閱:71 下載:3 |
| 分享至: |
| 查詢本校圖書館目錄 查詢臺灣博碩士論文知識加值系統 勘誤回報 |
目前SOC技術發展地非常快速,並大量地被應用在生活中各類型之嵌入式的裝置。各類的硬體開發板在嵌入式裝置的開發階段被開發人員廣泛地使用,這些開發板上配置有包含了中央處理器、記憶體、中斷控制、輸入與輸出介面等的SOC晶片及周邊裝置。本論文研究嵌入式系統虛擬平台之設計並實作可組態式周邊裝置之模擬機制,希望以使用者與開發者的雙重角度,將嵌入式系統平台模擬器的彈性化與後續的延伸做良好的架構設計與實作。
本論文對嵌入式虛擬平台使用了Plug-ins動態載入技術與可組態功能,在動態載入部分,針對處理器、記憶體、周邊裝置等,進行模組化的接口設計,並提供接口函數方便後續開發者設計。於組態部份,則設計一組態機制,使用流程為配置組態檔、載入組態檔、載入模擬程式、運行模擬平台等步驟,此一方式實現了嵌入式系統平台組成元件的彈性抽換。故對嵌入式虛擬平台設計之主要重點為提供友善的使用者介面與清楚明確的接口函數,讓裝置開發者對所需的裝置進行開發與採用模組化的配置方式,可以縮減一些相關模組的開發時間,只要將部分模組抽換後,就可以變成一個新的發展平台。
在此組態設計與彈性配置的觀點下,本論文實作一嵌入式系統虛擬平台可組態式周邊裝置之模擬機制以進行驗證,經過執行真實程式碼的測試,包含μCLinux作業系統與基本周邊裝置等軟體功能範例程式皆可以正常運作,表示於此方式下的設計是可行的。
Currently, SOC technique is advancing fast and it results in that a variety of SOC chips are configured in the embedded system products used in our daily life. Various hardware development platforms are used by embedded software developers in developing these products. This paper studies the design and the implementation of configurable device emulation in virtual embedded system platforms to produce a good structure design and the flexibility in configuring and expanding the virtual platform.
This paper adopts the dynamic loading technique of plug-ins and focuses on flexibility in configurability of designing a virtual embedded system platform. The design of dynamic loading with plug-ins is achieved by well-defined common function interfaces for loadable modules and taking advantages of the dynamic loading mechanism supported by Linux operating system. To achieve flexible configuration, the loadable modules are grouped in two groups: core modules which includes processor module, memory module and interrupt controller module, and I/O device modules. In addition, a user friendly GUI is implemented to help set up the desired configuration.
Based on the view point of the design consideration mentioned above, a mechanism of configurability for emulating peripheral devices is implemented and integrated into a virtual platform for developing embedded software. Through successfully executing the demo programs of the emulated target platform for testing, the mechanism is seen to work well. In addition, the μCLinux operating system can boot and run with the mechanism. Therefore, it can be concluded that the design presented in this thesis is feasible.
[1] μCLinux org, ”μCLinux in the GDB/ARMulator”, http://www.uclinux.org/pub/uClinux/utilities/armulator/.
[2] GDB, ” The GNU Project Debugger”, http://www.gnu.org/software/gdb/.
[3] Victor Moya del Barrio, Agustin Fernandez, “Study of the techniques for emulation Programming”, http://personals.ac.upc.edu/vmoya/emulation.html.
[4] Marat Fayzullin, “How To Write a Computer Emulator”, http://fms.komkon.org/EMUL8/HOWTO.html.
[5] “Emulators-FAQ”, http://www.faqs.org/faqs/emulators-faq/.
[6] ARM, “ARM architecture reference manual”, 2nd edition, ARM Inc.
[7] ARM, “ARM7DMI(rev4) Technical reference manual”, ARM Inc.
[8] SimOS, “The Complete Machine Simulator”, http://simos.stanford.edu/.
[9] IBM Austin Research lab, “SimOs-PPC”, http://www.cs.utexas.edu/~cart/simOS/documents.htm.
[10] IBM tech doc, “Validation of a Full System Simulator”, http://www.research.ibm.com/journal/rd/502/peterson.html.
[11] Bochs project, ”Open source IA-32 (x86) PC emulator”, http://bochs.sourceforge.net/.
[12] QEMU project, ”An open source processor emulator which achieves a good emulation speed by using dynamic translation.”, http://fabrice.bellard.free.fr/qemu/.
[13] Plex86 project, ”Offer a very lightweight Virtual Machine (VM) for running Linux/x86”, http://plex86.sourceforge.net/.
[14] Virtutech simics project, ”Commercial simulator that can target IA32, IA64, Sparc, Alpha, ARM, PowerPC, and MIPS architectures”, http://www.virtutech.com/products/.
[15] VmWare project, ”A commercial virtual PC type system for Linux and Windows-based PC's”, http://www.vmware.com/.
[16] Virtual PC, ”A commercial virtual PC implementation”, http://www.microsoft.com/windows/virtualpc/previous/default.mspx.
[17] MAME, ”Multiple Arcade machine emulator”, http://www.mame.net/.
[18] SimIt-ARM, ”ARM processor emulator”, http://simit-arm.sourceforge.net/.
[19] SWarm, ”ARM processor emulator”, http://www.swarm.org/wiki/Main_Page.
[20] Doug Burger, Todd M. Austin, The SimpleScalar tool set, version 2.0. ACM SIGARCH ComputerArchitecture News, 1997, Vol. 25(3): pp. 13-25, http://www.simplescalar.com/.
[21] 新華電腦公司, “ARM內嵌式SOC原理(以ARM7DMI S3C4510B為例)”, ISBN: 957-21-4520-7, Jan 2004, 全華科技圖書。
[22] 新華電腦公司, “ARM內嵌式SOC實作(以ARM7DMI S3C4510B為例)”, ISBN:957-21-4524-X, Jan 2004, 全華科技圖書。
[23] 新華電腦公司, “Embedded uClinux在PreSOCes上實作”, ISBN:957-21-5191-6, Jan 2004, 全華科技圖書。
[24] 北京清華大學計算機系, SkyEye, “Embedded system simulator project”, 2002, http://www.huihoo.org/mirrors/skyeye/.
[25] 浙江大學嵌入式系統軟件研發中心, WuKong, ”Embedded system simulator project”, 2004, http://embedded.zju.edu.cn/wukong/.
[26] Wade Walker , ”Interrupt Processing in Concurrent Processors”, ISSN:0018-9162, June 1995.
[27] VM-arm, “VirtualMHz for the ARM Architecture”, http://www.virtera.com.
[28] Huang Yichun, ”Proemulator”, http://proemulator.sourceforge.net/.
[29] Just-in-time compilation, “A dynamic translation technique”, http://en.wikipedia.org/wiki/Just-in-time_compilation.
[30] Hitachi, “HD66750/1(128 x 128-dot Graphics LCD Controller/Driver with Four-grayscale Functions) Rev 0.7”, July 26th, 1999.
[31] The Mozilla Organization, Mozilla, http://www.mozilla.org/.
[32] Sean Egan, GAIM, http://gaim.sourceforge.net/.
[33] The GIMP team, GIMP, http://www.gimp.org/.
[34] The Glade team, Glade, http://glade.gnome.org/.
[35] Gnome, GTK+, http://www.gtk.org/.
[36] Kris Bubendorfer , “Dynamic Load Distribution”, http://www.mcs.vuw.ac.nz/~kris/thesis/node11.html.
[37] David A. Wheeler, ”Linux Program Library HOWTO”, http://www.dwheeler.com/.
[38] Wan Han, Long Xiang, ”Survey of Instruction-set Simulator”, Computer Science Department, Beijing University of Aeronautics& Astronautics, Beijing, PRC, 100083
[39] Achim Nohl, Gunnar Braun, A universal technique for fast and flexible instruction set architecture simulation. Proc. Design Automation Conf, 2002, pp. 22-27.
[40] Microsoft MSDN, “Windows的動態載入函式庫原理及使用”, http://www.ccrun.com/article.asp?d=u8k505&i=112.
[41] James Norton, “Dynamic Class Loading for C++ on Linux”, 2000-05-01, http://www.linuxjournal.com/article/3687.
[42] Jollen, “Dynamic Loader”, http://www.jollen.org/blog/2007/02/dynamic_loader_1_dlopen.html.
[43] Yueh-Wei Hu,
ARMware, http://www.csie.ntu.edu.tw/~r88052/ARMware/en/frame.html.
[44] Fabrice Bellard, “QEMU”, http://fabrice.bellard.free.fr/qemu/.
[45] IBM, “Eclipse”, http://www.eclipse.org/.
[46] David T Reynolds, “QEMU manager”, http://www.davereyn.co.uk/.