新聞中心

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

        嵌入式系統中引導程序的實現

        作者: 時間:2013-04-12 來源:網絡 收藏

        的開發過程中,技術難點主要在于系統的編寫,為此本文將詳細論述在ARM7基礎上開發的實現。

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

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

        2 引導程序流程

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

        3 詳細步驟

        (1)設置人口指針

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


        (2)設置

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


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵山县| 托克托县| 夏河县| 崇信县| 永登县| 革吉县| 霍林郭勒市| 桂阳县| 米林县| 阜城县| 建阳市| 夏邑县| 敖汉旗| 大庆市| 从化市| 嘉禾县| 新密市| 巩义市| 东海县| 无锡市| 新竹市| 天峨县| 甘南县| 交城县| 叙永县| 邹平县| 耿马| 怀化市| 分宜县| 黄平县| 桦川县| 旬阳县| 闽清县| 平南县| 江华| 怀来县| 山阴县| 建宁县| 茂名市| 增城市| 卢氏县|