- 相關(guān)推薦
個(gè)開(kāi)放源碼的嵌入式仿真環(huán)境-SkyEye
摘要:綜述開(kāi)放源碼的嵌入式仿真環(huán)境SkyEye:介紹SkyEye的背景、目標(biāo)和存在的意義,對(duì)目前SkyEye本身進(jìn)行簡(jiǎn)要的技術(shù)分析;介紹SkyEye上已經(jīng)移植成功的操作系統(tǒng)和典型應(yīng)用。講述SkyEye正在開(kāi)展的工作和將來(lái)的發(fā)展計(jì)劃。1 SkyEye的目標(biāo)與意義
1.1 SkyEye產(chǎn)生的背景
操作系統(tǒng)是軟件產(chǎn)業(yè)的基礎(chǔ)和龍頭,能左右軟件產(chǎn)業(yè)發(fā)展的方向,是世界軟件產(chǎn)業(yè)最大的利潤(rùn)來(lái)源。對(duì)于后PC時(shí)代和普適計(jì)算(pervasive computing)而言,嵌入式系統(tǒng)無(wú)處不在,其中關(guān)鍵的軟件核心技術(shù)包括嵌入式操作系統(tǒng)和網(wǎng)絡(luò)互聯(lián)中間件等。
對(duì)于想進(jìn)行嵌入式系統(tǒng)軟件開(kāi)發(fā)和學(xué)習(xí),或者想研究嵌入式Linux等操作系統(tǒng)和一些底層系統(tǒng)軟件(如TCP/IP等)的研究和開(kāi)發(fā)人員來(lái)說(shuō),可能存在如下幾方面的問(wèn)題:①經(jīng)?嘤诮(jīng)費(fèi)不足,缺少足夠的硬件開(kāi)發(fā)板和完善的軟件開(kāi)發(fā)環(huán)境;相關(guān)的書籍對(duì)一些最新軟件的分析還不夠全面,無(wú)法深研究和開(kāi)發(fā)嵌入式軟件。②高層次的軟件設(shè)計(jì)和開(kāi)發(fā)一般不用過(guò)多考慮底層硬件的實(shí)現(xiàn)細(xì)節(jié),如果直接處于一具體的硬件環(huán)境下,在開(kāi)發(fā)和研究中可能會(huì)陷入硬件的具體細(xì)節(jié)中不能自拔,而不能把精力放到高層次的軟件設(shè)計(jì)和開(kāi)發(fā)上。③如果硬件開(kāi)發(fā)環(huán)境不太穩(wěn)定(這種情況經(jīng)常見(jiàn)到),且對(duì)身體的硬件不是很了解,則可能在排除問(wèn)題上花費(fèi)大量不必要的時(shí)間。
對(duì)于想了解、學(xué)習(xí)一般操作系統(tǒng)的實(shí)現(xiàn)原理、Linux/μClinux操作系統(tǒng)或TCP/IP等系統(tǒng)級(jí)軟件的實(shí)現(xiàn)的人員,目前一般采用的方法是看書和讀源代碼。這是一種靜態(tài)的學(xué)習(xí)方法,但效率較低,比較枯燥,缺少一種動(dòng)態(tài)和親自實(shí)踐的感覺(jué)。要想深入分析和開(kāi)發(fā)軟件,就要?jiǎng)邮志幊蹋荒苤皇强纯磿,讀讀代碼,只有通過(guò)親手實(shí)踐才能夠掌握軟件設(shè)計(jì)的核心內(nèi)容。
上面所指出的問(wèn)題和需求促使了SkyEye項(xiàng)目的誕生。
1.2 SkyEye的目標(biāo)和意義
SkyEye是開(kāi)源軟件(OpenSource Software)項(xiàng)目,中文名字是“天目”。SkyEye的目標(biāo)是在通用的Linux和Windows平臺(tái)實(shí)現(xiàn)一個(gè)仿真集成開(kāi)發(fā)環(huán)境,模擬常見(jiàn)的嵌入式計(jì)算機(jī)系統(tǒng);可在SkyEye上運(yùn)行μClinux以及μC/OS-II等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如TCP/IP、圖形子系統(tǒng)、文件子系統(tǒng)等),并可對(duì)它們進(jìn)行源碼級(jí)的分析和測(cè)試。SkyEye的推出具有下面三方面的意義。
①通過(guò)SkyEye仿真集成環(huán)境可以很方便地進(jìn)入嵌入式系統(tǒng)軟件學(xué)習(xí)和開(kāi)發(fā)的廣闊天地中。尤其對(duì)于缺少嵌入式硬件開(kāi)發(fā)環(huán)境和軟件開(kāi)發(fā)環(huán)境的用戶來(lái)說(shuō),它將是一個(gè)非常有效的學(xué)習(xí)工具和開(kāi)發(fā)手段,因?yàn)镾kyEye的整個(gè)軟件系統(tǒng)都是Open Source的,且基于GPL協(xié)議(μC/OS-II除外)。因此,如果要學(xué)習(xí)Linux操作系統(tǒng)或者進(jìn)行嵌入式系統(tǒng)開(kāi)發(fā),但苦于沒(méi)有硬件支持,SkyEye仿真環(huán)境軟件是一個(gè)很好的選擇!
②如果想研究與具體硬件無(wú)關(guān)的系統(tǒng)軟件(如TCP/IP協(xié)議棧等),采用SkyEye可以有效地提高工作效率,因?yàn)槟憧梢灾苯釉讦藽OS-II和μClinux for SkyEye上進(jìn)行開(kāi)發(fā)和調(diào)試,而與具體硬件打交道的各種Driver已經(jīng)存在,且有源碼級(jí)調(diào)試環(huán)境,只需關(guān)心高層的邏輯設(shè)計(jì)和實(shí)現(xiàn)就可以了。
③SkyEye本身作為一個(gè)開(kāi)放式的項(xiàng)目體系,可以劃分為多個(gè)獨(dú)立的子項(xiàng)目系統(tǒng)。通過(guò)參與SkyEye的各個(gè)子項(xiàng)目,與大家共同交流、協(xié)議,可以進(jìn)一步學(xué)習(xí)、分析、精通Linux內(nèi)核,掌握ARM嵌入式CPU編程。
在32位嵌入式CPU領(lǐng)域中,ARM系列CPU所占比例相當(dāng)大,而ARM7TDMI是其中使用最廣泛的CPU之一,因此,SkyEye首先選擇了ARM7TDMI作為仿真的目標(biāo)CPU。目前,SkyEye上可運(yùn)行并進(jìn)行源碼級(jí)調(diào)試的有μClinux、μC/OS-II操作系統(tǒng)和LwIP(一個(gè)著名的嵌入式TCP/IP實(shí)現(xiàn))、ARM Linux等系統(tǒng)軟件。SkyEye可用于學(xué)習(xí)、分析、開(kāi)發(fā)這些系統(tǒng)軟件,了解ARM嵌入式CPU編程,而這一切都可在一個(gè)集成環(huán)境中完成。如果能夠改進(jìn)SkyEye本身,則大家對(duì)ARM、8019Ethernet網(wǎng)絡(luò)芯片等硬件的了解也會(huì)更深入。
SkyEye并不能完全取代開(kāi)發(fā)板等硬件的功能,但通過(guò)它可以比較容易地進(jìn)入到嵌入式軟件開(kāi)發(fā)的廣闊天地中。由于SkyEye建立在GDB基礎(chǔ)之上,使用者可以方便地使用GDB提供的各種調(diào)試手段對(duì)SkyEye仿真系統(tǒng)上的軟件進(jìn)行源碼級(jí)的調(diào)試,還可以進(jìn)行各種分析,如執(zhí)行點(diǎn)分析、程序執(zhí)行覆蓋度分析等。由于SkyEye提供了源代碼和相關(guān)文檔,有經(jīng)驗(yàn)的用戶完全可以修改和擴(kuò)展SkyEye來(lái)滿足自已的需求。
2 SkyEye的技術(shù)分析
2.1 SkyEye總體結(jié)構(gòu)
SkyEye基于GDB/ARMulator,模仿了一個(gè)完整的嵌入式系統(tǒng),目前包括CPU、內(nèi)存、I/O寄存器、時(shí)鐘、UART、網(wǎng)絡(luò)芯片、MMU、Cache,將來(lái)還會(huì)仿真LCD、USB等各種硬件。在SkyEye上運(yùn)行的操作系統(tǒng)和各種系統(tǒng)軟件“意識(shí)”不到它們是在一個(gè)虛擬的計(jì)算機(jī)系統(tǒng)上運(yùn)行。
SkyEye從總體上分為四個(gè)層次。
①用戶接口模塊:包括命令行用戶界面和圖形用戶界面,及時(shí)處理用戶的輸入命令,并把相關(guān)調(diào)試數(shù)據(jù)輸出給用戶。
②符號(hào)處理模塊:主要處理執(zhí)行文件的頭信息,解釋執(zhí)行文件中嵌的debuger調(diào)試信息,管理符號(hào)表,解析源代碼表達(dá)式,定位源代碼中的語(yǔ)句位置和機(jī)器碼的位置關(guān)系等。
③目標(biāo)控制模塊:主要完成執(zhí)行控制(如執(zhí)行斷程序,設(shè)置中斷條件等),程序棧結(jié)構(gòu)分析,對(duì)具體目標(biāo)硬件的控制(如本地調(diào)試、遠(yuǎn)程調(diào)試和仿真調(diào)試的控制)。
④目標(biāo)仿真模塊:主要是模仿計(jì)算機(jī)系統(tǒng)中的主要硬件(包括CPU、內(nèi)存和各種硬件外設(shè)等)的執(zhí)行,對(duì)執(zhí)行文件的機(jī)器指令進(jìn)行解釋,并仿真執(zhí)行每一條機(jī)器指令,產(chǎn)生相應(yīng)的硬件響應(yīng)。
2.2 SkyEye模擬的硬件介紹
目前,SkyEye仿真的CPU包含不帶MMU的AT91X40和帶MMU的ARM720T,它們都是基于ARM7TDMI CPU內(nèi)核的。SkyEye還模擬了其它硬件外設(shè),如串口、網(wǎng)絡(luò)芯片、內(nèi)存、時(shí)鐘、網(wǎng)絡(luò)HUB等。SkyEye的CPU仿真主要完成對(duì)ARM指令集處理、寄存器操作和CPU流水線處理等的仿真。
ARM720T具有MMU(Memory Management Unit),即存儲(chǔ)器管理單元,是用來(lái)管理虛擬內(nèi)存系統(tǒng)的操作。MMU的兩具主要功能是:
*將虛地址轉(zhuǎn)換成物理地址;
*控制存儲(chǔ)器存取允許,MMU關(guān)掉時(shí),虛地址直
【個(gè)開(kāi)放源碼的嵌入式仿真環(huán)境-SkyEye】相關(guān)文章:
基于嵌入式的環(huán)境試驗(yàn)設(shè)備控制系統(tǒng)設(shè)計(jì)03-21
一個(gè)嵌入式系統(tǒng)的Petri網(wǎng)模型與CPLD實(shí)現(xiàn)01-07
在仿真環(huán)境下實(shí)現(xiàn)TMS320C6000系列DSP的程序自引導(dǎo)03-20
嵌入式系統(tǒng)的應(yīng)用及發(fā)展03-05
嵌入式軟件的覆蓋測(cè)試03-18