國產嵌入式軟件系統仿真平臺SkyEye Simics軟件 VTest軟件
1.SkyEye的起源和發展
2002年11月,一個偶然的機會,一群操作系統的愛好者在網上進行聊天,成立了一個TM-Linux興趣小組,希望要做一些感興趣的事情。當時在清華大學計算機系做博士后的陳渝提出做一個用軟件實現的嵌入式開發板硬件模擬器,可以在模擬器上運行各種操作系統,這樣就可以在沒有開發板的情況下學習和研究操作系統。一開始就陳渝一人做,首先他了解了當前國際上的一些類似的項目,發現杰出的μCLinux組織實現了一個armulator模擬器軟件(在Linux系統上運行),可以模擬Ateml AT91(基于ARM7TDMI CPU)開發板,μCLinux可以在armulator(其網址為http://www.uclinux.org/pub/uCLinux/utilities/armulator/)上運行。于是陳渝以此為基點,借鑒armulator的實現,提出了SkyEye項目,其目標是讓SkyEye仿真多種主流的嵌入式開發板和外設,實現一個可擴展的硬件模擬框架,讓更多的嵌入式操作系統可以在SkyEye上運行。SkyEye項目于2002年12月1日正式建立后,陳渝完成的**件工作是把armulator移植到了cygwin/windows環境下,其成果被μCLinux組織接收。接下來清華大學計算機系碩士生李明加入到SkyEye的開發中,8天后,SkyEye的**個版本推出,再過了4天,μC/OS-II for SkyEye推出。在這期間,SkyEye的網站也建立起來了。緊接著,楊曄、王利明、尹首一等在校學生也加入到SkyEye的開發中,給SkyEye帶來了新的活力,SkyEye進入了新的發展階段,目前通過訪問SkyEye的網站(http://www.skyeye.org/)和在linux公社上的SkyEye論壇( http://www.linuxfans.org)可以了解到SkyEye的*新進展并對有關嵌入式系統開發方面的問題進行交流,還可以到 http://gro.clinux.org/projects/skyeye/ 下載*新的SkyEye相關軟件和文檔。國產嵌入式軟件系統仿真平臺

2.SkyEye的背景
如果你看過電影"黑客帝國"(又稱"matrix"),相信電影描述的虛幻世界會深深地吸引你,至少它是我們看過*有想象力的科幻電影之一。也許我們可以把SkyEye看作一個"matrix ",把運行在SkyEye上的各種程序看成是這個"matrix"中的蕓蕓眾生。我們創造SkyEye和編寫運行在SkyEye上運行的程序就是為了洞悉計算機的奧秘,嘗嘗當"造物主"的感覺。當看到各種軟件Linux、μCLinux、μC/OS-II...在SkyEye上"愉快"地運行時,那種感覺真是太奇妙了。
對于想了解、學習一般操作系統的實現原理,Linux/μCLinux操作系統或TCP/IP等系統級軟件的實現的人員,目前一般采用的方法是看書和讀源代碼,這是一種靜態的學習方法,效率較低,比較枯燥,缺少親自實踐的感覺。要想深入分析和開發軟件,就要動手編程,不能只是看看書,讀讀代碼,只有通過親手實踐才能夠掌握軟件設計的核心內容。上面所指出的問題和需求促使SkyEye項目的誕生。
3.SkyEye的目標和意義
SkyEye是一個開源軟件(OpenSource Software)項目,中文名字是"天目"。SkyEye的目標是在通用的Linux和Windows平臺上實現一個純軟件集成開發環境,模擬常見的嵌入式計算機系統(這里假定"仿真"和"模擬"的意思基本相同);可在SkyEye上運行μCLinux以及μC/OS-II等多種嵌入式操作系統和各種系統軟件(如TCP/IP,圖形子系統,文件子系統等),并可對它們進行源碼級的分析和測試。
SkyEye并不能取代開發板等硬件的功能,但通過它可以比較容易進入到嵌入式軟件的廣闊天地中。由于SkyEye建立在GDB基礎之上,使用者可以方便地使用GDB提供的各種調試手段對SkyEye仿真系統上的軟件進行源碼級的調試,還可以進行各種分析,如執行熱點分析、程序執行覆蓋度分析等。由于SkyEye提供了源代碼和相關文檔,有經驗的用戶完全可以修改和擴充SkyEye來滿足自己的需求。
二.SkyEye模擬硬件介紹
目前SkyEye模擬了大量的硬件,包括CPU內核、存儲器、存儲器管理單元、緩存單元、串口、網絡芯片、時鐘等。下面做一簡單介紹。
1.CPU和開發板系列
目前SkyEye可以模擬的CPU主要是基于ARM內核的CPU,包括ARM7TDMI,ARM720T,ARM9TDMI,ARM9xx,ARM10xx,StrongARM,XScale等。ARM7/9/10TDMI是ARM系列CPU的基本核心部分,它們不支持MMU/CACHE和一些擴展指令,是ARM CPU基本核。ARM720T、ARM920T、ARM10xx、StrongARM、Xscale是建立在以上ARM CPU核上,并擴展了MMU/CACHE和其它功能。各硬件開發公司可以根據它們的需求在上述CPU核上加上特定的擴展,形成基于各種ARM基本核心的特定CPU,如Atmel91X40和 ep7312,分別擴展了ARM7TDMI和ARM720T的內存控制和各種I/O控制器,簡化了開發板的邏輯設計,大大增強了開發板的功能。國產嵌入式軟件系統仿真平臺
目前SkyEye模擬的開發板包括基于Atmel 91X40/AT91RM92 CPU的開發板,基于Crirus Logic ep7312的開發板、基于StrongARM CPU的ADSBITSY開發板,基于XScale PXA250 CPU的LUBBOCK開發板、基于SAMSUNG S3C4510B/S3C44B0 CPU的開發板、基于SHARP LH7A400 CPU的開發板、基于Philip LPC22xx CPU的開發板等。主要模擬了對應各個開發板的串口、時鐘、RAM、ROM、LCD、網絡芯片等硬件外設。
2.存儲器管理單元和緩存單元
MMU(Memory Management Unit)即存儲器管理單元,是用來管理虛擬內存系統的硬件。MMU的兩個主要功能是:將虛地址轉換成物理地址;控制存儲器的存取權限。MMU關掉時,虛地址直接輸出到物理地址總線。MMU本身有少量存儲空間存放從虛擬地址到物理地址的匹配表,此表稱作TLB(Translation Lookaside Buffers)。TLB表中保存的是虛址及其對應的物理地址,權限,域和映射類型。當CPU對一虛擬地址進行存取時,首先搜索TLB表以查找對應的物理地址等信息,如果沒有查到,則進行查找translation table,稱為Translation Table Walk(簡稱TTW)。經過TTW過程后,將查到的信息保存到TLB。然后根據TLB表項的物理地址進行讀寫。CACHE是緩存單元,主要用于緩存內存中的數據,其讀寫速度遠快于內存的讀寫速度,所以可以提高CPU的內存數據的訪問效率。
write/read buffer硬件單元的作用與CACHE的作用類似。MMU、CACHE、write/read buffer一般是高性能CPU的重要組成部分,且不同類型CPU的MMU、CACHE、write/read buffer的邏輯行為也有一定的差異。為了支持模擬多種類型CPU的MMU/CACHE,SkyEye包含了一個通用的MMU/CACHE模擬實現。通過對一些參數的調整可以支持模擬多種類型的MMU/CACHE物理結構和邏輯行為。
3.網絡芯片
目前SkyEye模擬了網絡芯片8019AS,其特點是:NE2000兼容,內建 16KRAM緩沖區,10MB傳輸速率。雖然目前模擬的開發板上不一定有網絡芯片8019AS,但我們可以在我們模擬的開發板上加上網絡芯片8019AS的模擬。這樣再加上在不同操作系統上的8019AS驅動程序,就可以方便地完成各種網絡應用的開發和設計。目前已經在在基于Atmel91X40 CPU的開發板上實現了網絡芯片8019AS擴展,并增加了μC/OS-II和μClinux的網絡驅動程序,已經支持大量的網絡應用程序,如LwIP (一個TCP/IP協議棧實現)、nfs server/clinet、http server/client、telnet server/client、ftp server/client等。
三.SkyEye的設計實現
1.SkyEye設計原則
SkyEye軟件的核心在目標模擬模塊。為了提高模擬效率,且能夠模擬更多的CPU、開發板和各種外設,方便開發人員進行開發和學習,SkyEye遵循如下的設計原則:
用C語言編程,采用面向對象的方式定義各種要模擬的硬件;
定義抽象模擬硬件對象,*大化重用代碼;
定義硬件配置腳本,使得不用改動SkyEye代碼就可以靈活地調整各種硬件配置;
保持與GDB上層接口的一致性,這樣可充分利用GDB強大的源代碼級調試功能。
2.SkyEye的總體結構
SkyEye基于GDB/ARMulator(目前由David McCullough 維護),并進行了**的改變和擴展。SkyEye建立在GNU GDB的底層,可以模仿多種完整的嵌入式計算機系統,目前模擬的硬件包括CPU、內存、I/O寄存器、時鐘、UART、網絡芯片、MMU、CACHE,將來還會模擬 LCD、USB等各種硬件。在SkyEye上運行的操作系統和各種系統軟件"意識"不到它們是在一個虛擬的計算機系統上運行。其他產品:微量氧分析儀,藥品殘氧儀,露點儀,熱導氣體分析儀,GE流量計,OX-1氧傳感器,頂空分析儀,紅外氣體分析儀,高溫濕度儀,西門子U23分析儀,ppb微量水分析儀,OXY.IQ氧分析儀,煙氣濕度儀,燃氣熱值儀,Kaye溫度驗證儀,L&W白度,儀激光氧分析儀,壓縮空氣露點儀,干燥機露點儀,激光氣體分析儀,便攜式露點儀,便攜式微量氧分析儀西門子氧電池\oxy-12\ultramat-23代表U23氧模塊價格|PID傳感器 |總代理|代表處|授權代理商|辦事處|分公司|全資子公司|價格|品牌|批發|選型|維修|校準
SkyEye從總體上分為四個層次:
用戶接口模塊:包括命令行用戶界面和圖形用戶界面,完成處理用戶的輸入命令,并把相關調試數據輸出給用戶的任務。這一部分基本上直接利用了GDB的用戶接口模塊,并在此基礎上有一定的擴充。
符號處理模塊:主要處理執行文件的頭信息,解釋執行文件中內嵌的debuger調試信息,對符號表的管理,對源代碼表達式的解析,定位源代碼中的語句位置和機器碼的位置關系等。這一部分也是直接利用了GDB的符號處理模塊,也正是有了這個模塊的支持,SkyEye可以支持源碼級調試。
目標控制模塊:主要完成執行控制(如中斷程序的執行,設置中斷條件等),程序棧結構分析,對具體目標硬件的控制(如本地調試、遠程調試和模擬調試的控制)。這一部分完成對SkyEye上運行的軟件的控制,提供了多種調試手段。
目標模擬模塊:這一部分是SkyEye的核心。它的功能是模仿計算機系統中的主要硬件(包括CPU、內存和各種硬件外設等)的執行,對執行文件的機器指令進行解釋,并模擬執行每一條機器指令,產生相應的硬件響應等。
更多國產嵌入式軟件系統仿真平臺信息請直接致電埃登威SkyEye上海021-55581219