<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 測試測量 > 設計應用 > 嵌入式系統中引導程序的實(shí)現

嵌入式系統中引導程序的實(shí)現

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

的開(kāi)發(fā)過(guò)程中,技術(shù)難點(diǎn)主要在于系統的編寫(xiě),為此本文將詳細論述在A(yíng)RM7基礎上開(kāi)發(fā)時(shí)的實(shí)現。

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

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

2 引導程序流程

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

3 詳細步驟

(1)設置人口指針

引導程序首先必須定義人口指針,而且整個(gè)應用程序只有一個(gè)入口指針。


(2)設置

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


上一頁(yè) 1 2 下一頁(yè)

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>