嵌入式應用程序設計的基本知識 OHY 2006-11-13 一、嵌入式系統中的存儲映射 在ARM體系結構中,系統復位后將跳轉到地址0x00x處執行,該處存放的是復位異常中斷的中斷向量。對于嵌入式系統來說,在系統復位時RAM中是不存在代碼和數據的。因此在系統復位時,地址0x00處應為ROM,即系統復位后應該首先從ROM開始執行。這時,根據系統在其后運行過程中地址0x00處存儲器的類型,有下面兩種情況。 1、地址0x00處為ROM 這里說的地址0x00為ROM,是指在系統運行過程中,地址0x00為ROM。對于嵌入式系統來說,在系統復位時地址0x00處總為ROM。這種情況非常簡單,在地址0x00存存放著復位異常中斷向量,根據此中斷向量,程序跳轉到相應的位置開始進行系統初始化等操作。 這種情況有種缺點,通常相對于RAM來說,ROM的數據寬度較小,速度較慢,這會使系統響應異常中斷的速度較慢。而且如果異常中斷向量表放在ROM中,則中斷向量表內容不能修改。 2、地址0x00處為RAM 同樣,這里說的地址是指系統運行時地址為0x00,而嵌入式系統在系統復位時的地址0x00處總為ROM。因此,對于運行時地址處0x00為RAM的系統,為了保證系統復位后從ROM中開始執行,在系統復位時,系統中的映射機構將ROM映射到地址0x00處,然后在程序運行初幾條指令中,系統中的存儲機構進行地址重映射(remap)重新將RAM映射到地址0x00處。 相對于ROM來說,RAM的數據寬度較大,速度較快,這會使系統響應異常中斷的速度更快。而且如果異常中斷向量表放在RAM中,程序在運行中可以修改中斷向量表內容,使系統更為靈活。 如果系統正常運行過程中,地址0x00處為RAM,則在系統復位時需要執行下面操作序列。 1、系統復位時,ROM被映射到地址0x00處,程序從這里獲得復位異常中斷向量。 2、執行復位異常中斷向量。如:LDR PC,=0x0f000004 3、設置地址重映射寄存器REMAP=1,重新將RAM映射到地址0x00開始的空間。 4、完成其他的初始化代碼。 二、系統初始化 系統的初始化部分包括兩個級別的操作: 系統運行環境初始化。 應用程序初始化。 A、系統運行環境初始化 對于嵌入式應用系統和具有操作系統支持的應用系統來說,相同運行環境初始化部分的工作時不同的。對于有操作系統支持的應用系統來說,在操作系統啟動時將會初始化系統的工作環境。操作系統在加載應用程序后,將控制權轉交到應用程序的main()函數。然后,C運行時庫的_main()初始化應用程序。而對于嵌入式應用系統來說,由于沒有操作系統的支持,存放在ROM的代碼必須進行所有的初始化工作。 系統運行環境的初始化工作主要包括一下的內容: 1、設置初始入口點。 初始入口點是映象文件運行時的入口點,每個映像文件只有一個的初始入口點,它保存在ELF頭文件中。如果映像文件是被操作系統加載的,操作系統正是通過跳轉到該初始入口點處執行來加載該映像文件的。初始入口點必須滿足下面兩個條件: a、初始入口點必須位于映像文件的可執行區域。 b、包含初始入口點的可執行域不能被覆蓋,它的加載時地址和運行時地址必須是相同的。(這種域稱為固定域root region) 2、設置中斷向量表 如果系統運行時,地址0x00處為ROM,則相同的異常中斷向量表是固定的,程序在運行過程中不能修改異常中斷向量表。 如果系統運行時,地址0x00處為RAM,則系統初始化時必須重建異常中斷向量表。 3、初始化存儲系統 4、初始化數據棧指針 5、初始化關鍵的IO設備 指那些必須在使能IRQ和IFQ之前進行初始化的IO設備。 6、設置中斷昔日需要的RAM變量 7、使能異常中斷 通過清楚CPSR寄存器的中斷禁止位實現。 8、切換處理器模式 直到目前為止,系統還處于特權模式。如果下面要運行的應用程序是在用戶模式下運行,就需要將處理器切換到用戶模式。 9、切換程序狀態 所有的RAM內核都是從ARM狀態開始執行的。 B、應用程序初始化 1、將已經初始化的數據搬運到可寫的數據區。 在嵌入式系統中,已經初始化的數據在映像文件運行之前通常保存在ROM中,在程序運行過程中這些數據可能需要被修改。因而,在映像文件運行之前需要將這些數據搬運到可寫的數據區。這部分數據就是映像文件中的RW屬性的數據。 2、在可寫存儲區建立ZI屬性的可寫數據區。 通常在映像文件運行之前,也就是保存在ROM時,映像文件中沒有包含ZI屬性的數據。在運行映像文件時,在系統的可寫的數據區建立ZI屬性的數據區。 如果應用程序中包含了函數main(),編譯器在編譯該函數時,將引言符號_main。這樣,連接器在連接時將包含C運行時庫中的相應內容。_main可以完成這部分應用程序的初始化。 如果應用程序中沒有包含函數main(),應用程序中需要包括進行這部分應用程序的初始化
嵌入式應用程序設計的基本知識
更新時間: 2007-05-24 11:21:20來源: 粵嵌教育瀏覽量:1080