<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)仿真環(huán)境—SkyEye

          嵌入式系統(tǒng)仿真環(huán)境—SkyEye

          作者:清華大學(xué)計算機系高性能計算所 陳渝 楊曄 李明 王利明 時間:2005-04-27 來源:EAW 收藏

          摘    要: 本文全面分析了開放源碼的仿真集成開發(fā)環(huán)境,并對上已經(jīng)移植成功的操作系統(tǒng)、典型應(yīng)用進(jìn)行了介紹,最后講述了正在開展的工作和將來的發(fā)展方向。
          關(guān)鍵詞:;;SkyEye;;

          本文引用地址:http://www.ex-cimer.com/article/5262.htm

          SkyEye
          SkyEye是一個在和 Windows平臺上實現(xiàn)純軟件仿真的集成開發(fā)環(huán)境,它基于GPL協(xié)議,可在SkyEye上運行、以及 等多種嵌入式操作系統(tǒng)和各種系統(tǒng)軟件(如TCP/IP、圖形子系統(tǒng)、文件子系統(tǒng)等),并可對它們進(jìn)行源碼級的分析和測試。
          SkyEye作為指令級仿真器,可以仿真多種嵌入式開發(fā)板,支持多種CPU指令集,在SkyEye上運行的操作系統(tǒng)意識不到它是在一個虛擬環(huán)境中運行,而且開發(fā)人員可以通過SkyEye調(diào)試操作系統(tǒng)和系統(tǒng)軟件。由于SkyEye的目標(biāo)不是驗證硬件邏輯,而是協(xié)助開發(fā)、調(diào)試和學(xué)習(xí)系統(tǒng)軟件,所以在實現(xiàn)上SkyEye與真實的硬件環(huán)境相比有一定差別。在時鐘節(jié)拍的時序上,SkyEye不保證與硬件完全相同,并簡化了對軟件透明的一些硬件仿真,這樣可以提高SkyEye的執(zhí)行效率。
          在32位嵌入式CPU領(lǐng)域中,ARM系列CPU所占比重相當(dāng)大,因此SkyEye首先選擇了ARM CPU核作為仿真目標(biāo)CPU核。SkyEye可用于學(xué)習(xí)、分析、開發(fā)Linux、、操作系統(tǒng)內(nèi)核和TCP/IP實現(xiàn),了解ARM嵌入式CPU編程,而這一切都可在一個集成環(huán)境中完成。如果能夠改進(jìn)SkyEye本身,則大家對ARM、8019 ethernet網(wǎng)絡(luò)芯片等硬件的了解也會更深入。由于SkyEye與GDB可以無縫結(jié)合,開發(fā)者可以方便地使用GDB提供的各種調(diào)試手段對SkyEye仿真系統(tǒng)上的軟件進(jìn)行源碼級調(diào)試,還可以進(jìn)行各種分析,如執(zhí)行熱點分析、程序執(zhí)行覆蓋度分析等。

          SkyEye技術(shù)分析
          SkyEye實現(xiàn)的硬件仿真
          * CPU和開發(fā)板系列
          目前SkyEye可以仿真的CPU主要是基于ARM內(nèi)核的CPU,包括ARM7TDMI、StrongARM、ARM720T、ARM9TDMI、ARM9xx、ARM10xx、Xscale、Ateml91x40、EP7312等。
          各硬件開發(fā)公司可以根據(jù)它們的需求在上述CPU核上加上特定的擴展,形成基于各種ARM基本核心的特定CPU,如Atmel91X40和 EP7312,則分別擴展了ARM7TDMI和ARM720T的內(nèi)存控制和各種I/O控制器,簡化了開發(fā)板的邏輯設(shè)計,增強了開發(fā)板的功能。
          目前SkyEye仿真的開發(fā)板包括基于Atmel91x40、EP7312和StrongARM的adsbitsy開發(fā)板,以及基于XScale PXA250的lubbock開發(fā)板。主要仿真了對應(yīng)各個開發(fā)板的串口、時鐘、RAM、ROM等硬件外設(shè)。
          * 存儲器管理單元和緩存單元
          MMU即存儲器管理單元,是用來管理虛擬內(nèi)存系統(tǒng)的硬件。MMU的兩個主要功能是:將虛擬地址轉(zhuǎn)換成物理地址;控制存儲器的存取權(quán)限。MMU關(guān)掉時,虛擬地址直接輸出到物理地址總線。MMU本身有少量存儲空間存放從虛擬地址到物理地址的匹配表,此表稱作TLB。為了支持仿真多種類型CPU的MMU/Cache,SkyEye包含了一個通用的MMU/Cache仿真實現(xiàn)。通過對一些參數(shù)的調(diào)整可以支持仿真多種類型的MMU/cache物理結(jié)構(gòu)和邏輯行為。
          * 網(wǎng)絡(luò)芯片
          目前SkyEye仿真了8019as網(wǎng)絡(luò)芯片,其特點是:NE2000兼容,內(nèi)建 16K RAM緩沖區(qū),10MB傳輸速率。開發(fā)板上可以加入網(wǎng)絡(luò)芯片8019as,再加上不同操作系統(tǒng)上的8019as驅(qū)動程序,可以完成各種網(wǎng)絡(luò)應(yīng)用設(shè)計開發(fā)。目前已經(jīng)在在基于Atmel91x40的開發(fā)板上實現(xiàn)了網(wǎng)絡(luò)芯片8019as擴展,并增加了mC/OS-II和mClinux的網(wǎng)絡(luò)驅(qū)動程序,支持大量的網(wǎng)絡(luò)應(yīng)用程序,如lwip、nfs server/clinet、http server/client、telnet server/client、ftp server/client等。
          SkyEye總體結(jié)構(gòu)
          SkyEye基于GDB /armulator,可以仿真完整的嵌入式計算機系統(tǒng),目前包括CPU、內(nèi)存、I/O寄存器、時鐘、UART、網(wǎng)絡(luò)芯片,將來還會有MMU、Cache、LCD、USB等各種硬件。
          SkyEye從總體上分為以下四個層次。
          用戶接口模塊:處理用戶的輸入命令,并把相關(guān)調(diào)試數(shù)據(jù)輸出給用戶。
          符號處理模塊:主要處理執(zhí)行文件的頭信息,解釋執(zhí)行文件中內(nèi)嵌的debuger調(diào)試信息,以及對符號表的管理和對源代碼表達(dá)式的解析,并定位源代碼中的語句位置和機器碼的位置關(guān)系等。
          目標(biāo)控制模塊:主要完成執(zhí)行控制(如中斷執(zhí)行,中斷條件的設(shè)置等)、程序棧結(jié)構(gòu)分析,以及對具體目標(biāo)硬件的控制(如本地調(diào)試、遠(yuǎn)程調(diào)試和仿真調(diào)試的控制)。
          目標(biāo)仿真模塊:仿真主要硬件的執(zhí)行,對執(zhí)行文件的機器指令進(jìn)行解釋,并仿真執(zhí)行每一條機器指令,產(chǎn)生相應(yīng)的硬件響應(yīng)。

          SkyEye上運行的應(yīng)用
          由于已經(jīng)實現(xiàn)多種軟件的移植,目前在SkyEye的仿真硬件上可以運行多種操作系統(tǒng)、驅(qū)動程序、網(wǎng)絡(luò)協(xié)議棧和各種應(yīng)用軟件。
          ARM Linux
          Linux原本被設(shè)計為桌面系統(tǒng),現(xiàn)在廣泛應(yīng)用于服務(wù)器領(lǐng)域,而更大的影響在于它正逐漸應(yīng)用于嵌入式設(shè)備。由于SkyEye仿真的CPU基本上基于ARM核,所以目前可以支持面向ARM核的Linux操作系統(tǒng)-ARM Linux。
          mClinux
          mClinux主要針對沒有MMU的處理器,而標(biāo)準(zhǔn)的Linux只支持帶MMU的CPU。為了減少OS的尺寸,mClinux采用了如下做法:刪除不需要的內(nèi)核功能,重新配置內(nèi)核;mClinux的根(root)文件系統(tǒng)采用romfs文件系統(tǒng);mClinux的應(yīng)用程序庫為精簡的uClibc,而不是龐大的glibc。
          mC/OS-II
          無論是通過學(xué)習(xí) mC/OS-II 來了解實時操作系統(tǒng)的構(gòu)造,或者是直接使用它來針對具體應(yīng)用進(jìn)行開發(fā),都是非常方便和可行的。目前在SkyEye上可以運行mC/OS-II 2.51版。
          更多的 OS 移植
          基于 SkyEye,開發(fā)者可以驗證自行開發(fā)的OS,也可將更多的OS,如MINIX等,移植到SkyEye上。
          mClinux上的TCP/IP
          mClinux上面有完整的TCP/IP協(xié)議棧,但缺少對SkyEye網(wǎng)絡(luò)仿真芯片的驅(qū)動程序。SkyEye實現(xiàn)了簡化的8019as驅(qū)動程序,它主要包括了初始化、中斷處理、接收數(shù)據(jù)包和發(fā)送數(shù)據(jù)包的處理等工作。
          基于mC/OS-II的LwIP
          通過把開放源代碼的LwIP移植到mC/OS-II上來,可獲得了一套免費的嵌入式網(wǎng)絡(luò)軟件平臺。系統(tǒng)示意圖如圖1所示。
          LwIP是瑞士計算機科學(xué)院Adam Dunkels等開發(fā)的一套用于的開放源代碼TCP/IP協(xié)議棧,其含義是Light Weight(輕型)IP協(xié)議。LwIP可以移植到操作系統(tǒng)上,也可以在無操作系統(tǒng)的情況下獨立運行,目前使用的是LwIP最新穩(wěn)定版V0.5.3。除了LwIP之外,還有很多開源的嵌入式TCP/IP協(xié)議棧,其中的代表有tinyTCP、mcIP、mIP等。
          Lwip上的echo服務(wù)器
          在Lwip上實現(xiàn)了一個TCP echo服務(wù)器,監(jiān)聽7號端口,實現(xiàn)了RFC中最簡單的echo協(xié)議:收到什么,就往回發(fā)同樣的內(nèi)容。編譯運行后,用ping ip地址 命令可以得到ICMP reply響應(yīng)。用telnet ip地址 7(登錄7號端口) 命令可以看到echo服務(wù)器的回顯效果。說明ARP、ICMP、IP、TCP協(xié)議都已正確運行。
          mC/OS-II下的人機界面
          實現(xiàn)人機界面(shell)的本質(zhì)思想是:Shell作為一個mC/OS-II下的任務(wù),工作于內(nèi)核之外,占用一個任務(wù)號。它接收用戶輸入的字符,存儲到緩沖區(qū),并回顯在屏幕上,以回車鍵為用戶輸入的結(jié)束信號,隨后解析用戶輸入的命令名稱、參數(shù),調(diào)用相應(yīng)的命令函數(shù)。一直到這個命令函數(shù)運行返回,才繼續(xù)Shell的人機交互界面,本文稱之為Genie Shell。其流程圖如圖2所示。
          Genie Shell實現(xiàn)了最基本的命令輸入、解析參數(shù)、調(diào)用命令函數(shù)功能,以及兩條示例性的命令,其特色是采用了面向?qū)ο蟮乃悸穪韺崿F(xiàn)Shell的各種命令。
          mClinux和ARM Linux上的應(yīng)用
          目前已經(jīng)在mClinux上成功地執(zhí)行了shell、ping、ifconfig、telnet server/client、ftp client/server、nfs server等大量應(yīng)用程序。絕大多數(shù)mClinux或ARM Linux應(yīng)用級程序完全不用修改源碼就可以在SkyEye上運行。

          SkyEye發(fā)展
          在大學(xué)的嵌入式課程試驗和嵌入式項目研究中,已把SkyEye作為一個重要的嵌入式系統(tǒng)開發(fā)的實踐工具,在清華大學(xué)、國防科技大學(xué)等院校得到了應(yīng)用。今后,skyEye將支持仿真更多的CPU、開發(fā)板和各種外設(shè),并提供詳細(xì)的設(shè)計文檔。除了對SkyEye進(jìn)一步完善以外,本課題組正在進(jìn)行以下方面的工作。
          LCD仿真
          作為單片機系統(tǒng)重要的輸出設(shè)備,LCD應(yīng)用非常廣泛。Skyeye中將加入LCD控制器設(shè)備仿真,并使用GTK+圖形函數(shù)庫在Xwindow中仿真出一個LCD屏幕。Skyeye的LCD仿真實現(xiàn)的示意圖如圖3所示。
          IDE 集成開發(fā)環(huán)境
          IDE集成開發(fā)環(huán)境是SkyEye的一個重要組成部分。所有支持GDB的IDE集成開發(fā)環(huán)境都可以很容易地移植為SkyEye的IDE集成開發(fā)環(huán)境。將來可能會采用功能強大、可擴展性強的Eclipse集成開發(fā)環(huán)境作為SkyEye的IDE集成開發(fā)環(huán)境?!?/p>

          參考文獻(xiàn)
          1. SkyEye Web Site:http://hpclab.cs.tsinghua.edu.cn/~SkyEye/
          2. ARM System-on-Chip Architecture,second edition,Steve Furber,Pearson Education Published
          3. ARM Architecture Reference Manual,ARM Ltd

          linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)

          tcp/ip相關(guān)文章:tcp/ip是什么




          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();