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

          新聞中心

          EEPW首頁 > 測試測量 > 設(shè)計應(yīng)用 > 嵌入式系統(tǒng)中引導(dǎo)程序的實現(xiàn)

          嵌入式系統(tǒng)中引導(dǎo)程序的實現(xiàn)

          作者: 時間:2013-04-12 來源:網(wǎng)絡(luò) 收藏

          的開發(fā)過程中,技術(shù)難點主要在于系統(tǒng)的編寫,為此本文將詳細(xì)論述在ARM7基礎(chǔ)上開發(fā)的實現(xiàn)。

          引導(dǎo)加載程序是系統(tǒng)加電后運行的第一段軟件代碼。當(dāng)一個微處理器最初啟動時,他首先執(zhí)行預(yù)定地址處的指令。通常這個位置是只讀內(nèi)存,其中存放著系統(tǒng)初始化或。在PC系統(tǒng)中,引導(dǎo)加載程序由BIOS(其本質(zhì)就是一段固件程序)和位于硬盤MBR中的操作系統(tǒng)BootLoader(比如,LILO和GRUB等)一起組成。BIOS進(jìn)行CPU初始化、配置其他硬件,并完成硬件檢測和資源分配。然后,BIOS判斷出哪一個磁盤包含有操作系統(tǒng),再把硬盤MBR中的Boot Loader讀到系統(tǒng)的RAM中,然后將控制權(quán)交給操作系統(tǒng)BootLoader。BootLoader的主要運行任務(wù)就是將內(nèi)核映象從硬盤上讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點去運行,也即開始啟動操作系統(tǒng),并把控制權(quán)交給操作系統(tǒng),再由操作系統(tǒng)引導(dǎo)其他應(yīng)用程序。

          中,通常并沒有像BIOS那樣的固件程序(注:有的嵌入式CPU也會內(nèi)嵌一段短小的啟動程序),因此整個系統(tǒng)的加載啟動任務(wù)就完全由BootLoader來完成。比如在一個基于ARM7TDMIcore的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時通常都從地址0x00000000處開始執(zhí)行,而在這個地址處安排的通常就是系統(tǒng)的BootLoader程序。

          2 引導(dǎo)程序流程

          嵌入式系統(tǒng)的資源有限,程序通常都是固化在ROM中運行。ROM中程序執(zhí)行前,需要對系統(tǒng)硬件和軟件運行環(huán)境進(jìn)行初始化,這些工作由用匯編語言編寫的引導(dǎo)程序完成。引導(dǎo)程序是嵌入式程序的開頭部分,應(yīng)與應(yīng)用程序一起固化在ROM中,并首先在系統(tǒng)上運行。他應(yīng)包含各模塊中可能出現(xiàn)的所有段類,并合理安排他們的次序。寫好引導(dǎo)程序是設(shè)計好嵌入式程序的關(guān)鍵,系統(tǒng)引導(dǎo)程序所執(zhí)行的操作依賴于正在開發(fā)其軟件的系統(tǒng),一般流程包括:初始化端口,屏蔽中斷,把程序拷貝到SRAM中;完成代碼的重映射;配置中斷句柄,連接到C語言人口,進(jìn)入應(yīng)用程序主循環(huán)。

          3 詳細(xì)步驟

          (1)設(shè)置人口指針

          引導(dǎo)程序首先必須定義人口指針,而且整個應(yīng)用程序只有一個入口指針。


          (2)設(shè)置

          ARM7要求表必須設(shè)置在從。地址開始,連續(xù)8X4B的空間。在0x0一Ox000000lc位置放置7條跳轉(zhuǎn)指令,分別實現(xiàn)各種異常處理程序,包括0x00000000:Reset_Handler(復(fù)位),0x00000004:Undefined-Handler(未定義指令錯誤),Ox00000008:SWI_Handler(軟件中斷),0x0000000C:Prefetch_Handier(預(yù)取指令錯誤),0x00000010:Abort_Handler(數(shù)據(jù)存取錯誤),0x00000014:保留的,0x00000018:IRQ_Handier,


          上一頁 1 2 下一頁

          評論


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