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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 模擬器開發(fā)以及嵌入式系統(tǒng)內(nèi)核調(diào)試

          模擬器開發(fā)以及嵌入式系統(tǒng)內(nèi)核調(diào)試

          ——
          作者:lmjx 時間:2008-01-11 來源:電子產(chǎn)品世界 收藏

          一、模擬器的開發(fā)

          1.  什么是模擬器

            模擬器是一組應(yīng)用程序,它運(yùn)行于一個OS之上(linux或windows),提供對目標(biāo)板功能的模擬,包括中斷系統(tǒng),RAM,F(xiàn)LASH系統(tǒng),以及目標(biāo)OS到宿主OS任務(wù)的映射。

          2.  模擬器與虛擬機(jī)的區(qū)別

            模擬器不同于虛擬機(jī),虛擬機(jī)從設(shè)備的角度來模擬一個目標(biāo)板,微細(xì)到提供對每條處理器指令的支持,而模擬器則從功能的角度進(jìn)行模擬,重點(diǎn)在于對目標(biāo)OS運(yùn)行狀態(tài)的監(jiān)視,以及執(zhí)行邏輯的監(jiān)視。方便調(diào)試系統(tǒng)內(nèi)核,以及開發(fā)初期的可行性調(diào)研。另外模擬器是在C語言級別上提供模擬,所以無論目標(biāo)OS基于什么CPU,只要是C語言寫的,模擬器就能提供對它的模擬。

          3.  如何在windows環(huán)境下開發(fā)模擬器

          3.1.模擬器的基本構(gòu)造

            一個基本的模擬器只要提供對中斷系統(tǒng)的模擬,任務(wù)映射的模擬,內(nèi)存以及堆棧的模擬就可以在其上面運(yùn)行嵌入式實(shí)時內(nèi)核了,當(dāng)然我們還需要一個輸入輸出的設(shè)備,來干預(yù)及監(jiān)視嵌入式內(nèi)核的運(yùn)行。

          3.2.中斷系統(tǒng)

            中斷系統(tǒng)是模擬器的核心,因為任務(wù)的調(diào)度本質(zhì)上都是通過中斷完成的(非搶占式系統(tǒng)例外)。以simuos為例,有8個中斷源,包括異常、時鐘、串口、鍵盤等。為了減輕模擬器的負(fù)擔(dān),實(shí)際上只產(chǎn)生一個中斷事件,然后通過查詢的方式來進(jìn)行中斷的路由。

          3.3.任務(wù)映射

            任務(wù)映射是模擬器與虛擬機(jī)的主要區(qū)別,虛擬機(jī)不需要任務(wù)映射,因此它也不可能了解嵌入式內(nèi)核的運(yùn)行邏輯與運(yùn)行狀態(tài),只能通過觀察寄存器來推斷。而模擬器將每一個目標(biāo)OS的任務(wù)都記錄下來,然后統(tǒng)一管理它們的運(yùn)行,而達(dá)到監(jiān)視和干預(yù)的目的。

          3.4.其他

          LCD和鍵盤的模擬。

          二、實(shí)時內(nèi)核移植

          1.  移植的前提

              移植的唯一前提是我們必須擁有目標(biāo)OS的源代碼。

          2.  移植時的注意事項

          注意中斷系統(tǒng)的掛接,注意任務(wù)管理器的安裝。

          3.  以ucosii舉例(搶占式)

            ucosii為優(yōu)先級搶占式實(shí)時系統(tǒng)內(nèi)核,廣泛應(yīng)用于工控領(lǐng)域,由于其源碼開放

            所以倍受學(xué)生和廣大嵌入式愛好者的青睞。但是對于初學(xué)者而言,嵌入式系統(tǒng)就象一個黑盒子,雖然有代碼在手但卻不能感觀體驗到其運(yùn)行時所帶來的魅力。將其移植到模擬器上,我們不但能觀察ucosii的任務(wù)管理方式,還能隨時設(shè)置斷點(diǎn)來對自己的程序進(jìn)行調(diào)試。移植的源代碼及demo程序請自行下載:www.mshowtec.com

          4.  以rtke舉例(非搶占式)

            rtke是菲利普手機(jī)解決方案中應(yīng)用的實(shí)時內(nèi)核,該內(nèi)核的最大缺點(diǎn)就是非搶占式,一個task必須自己放棄CPU的使用權(quán)才能使其他高優(yōu)先級的任務(wù)得到調(diào)度。因此在其上面寫程序必須十分小心,另外通過模擬器我們可以跟蹤到每個消息發(fā)往何處,每個信號量的使用狀況,當(dāng)前內(nèi)存的狀態(tài)等等。Demo程序請自行下載:www.mshowtec.com

          三、VC環(huán)境下調(diào)試

          1.  模擬器下調(diào)試的優(yōu)缺點(diǎn)

              優(yōu)點(diǎn)是直觀方便,缺點(diǎn)是由于模擬器并不是真實(shí)的硬件環(huán)境,因此許多依賴于硬件的代碼無法進(jìn)行調(diào)試,但是對于調(diào)試系統(tǒng)內(nèi)核和普通的應(yīng)用程序已經(jīng)是夠用了,尤其是在解決系統(tǒng)死鎖的問題上是最有用的利器。

          2.  調(diào)試手段與方法

              可以利用模擬器本身提供的調(diào)試工具進(jìn)行分析系統(tǒng)狀態(tài),也可以在OS代碼中加入自己的trace信息來跟蹤系統(tǒng)的運(yùn)行,具體請參照上面提供的兩個例子。

          四、小結(jié)

             通過對模擬器simuos的開發(fā),以及對幾個實(shí)時內(nèi)核的移植,我們發(fā)現(xiàn)在嵌入式領(lǐng)域我們?nèi)狈Φ氖腔A(chǔ)教育,每個從事嵌入式開發(fā)的工程師大多都是工作以后才對嵌入式系統(tǒng)有一個比較完整和深刻的認(rèn)識的,如果每所大學(xué)能讓我們的學(xué)生在上學(xué)期間親手移植一個甚至是幾個嵌入式系統(tǒng)內(nèi)核,那么我們的畢業(yè)生的技術(shù)素質(zhì)將會有顯著的提高。Simuos這個項目就是為這個目的而開發(fā)的,希望它能給正在學(xué)習(xí)或打算學(xué)習(xí)嵌入式開發(fā)的同學(xué)或工程師帶來幫助。

           



          關(guān)鍵詞:

          評論


          相關(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); })();