arm嵌入式系統執行概述

2021-09-30 07:30:27 字數 2323 閱讀 1228

一、嵌入式系統中的儲存對映

在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、執行復位異常中斷向量。如:ldrpc,=0x0f000004

3、設定位址重對映暫存器remap=1,重新將ram對映到位址0x00開始的空間。

4、完成其他的初始化**。

二、系統初始化

系統的初始化部分包括兩個級別的操作:

系統執行環境初始化。

應用程式初始化。

a、系統執行環境初始化

對於嵌入式應用系統和具有作業系統支援的應用系統來說,相同執行環境初始化部分的工作時不同的。對於有作業系統支援的應用系統來說,在操作 系統啟動時將會初始化系統的工作環境。作業系統在載入應用程式後,將控制權轉交到應用程式的main()函式。然後,c執行時庫的_main()初始化應 用程式。而對於嵌入式應用系統來說,由於沒有作業系統的支援,存放在rom的**必須進行所有的初始化工作。

系統執行環境的初始化工作主要包括一下的內容:

1、設定初始入口點。

初始入口點是映象檔案執行時的入口點,每個映像檔案只有乙個唯一的初始入口點,它儲存在elf標頭檔案中。如果映像檔案是被作業系統載入的,作業系統正是通過跳轉到該初始入口點處執行來載入該映像檔案的。初始入口點必須滿足下面兩個條件:

a、初始入口點必須位於映像檔案的可執行區域。

b、包含初始入口點的可執行域不能被覆蓋,它的載入時位址和執行時位址必須是相同的。(這種域稱為固定域rootregion)

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(),應用程式中需要包括進行這部分應用程式的初始化。

嵌入式系統 概述 ARM指令

嵌入式系統是以應用為中心,以計算機技術為基礎,採用可裁剪軟硬體,適用於對功能 可靠性 成本 體積 功耗等有嚴格要求的專用計算機系統。它一般由嵌入式微處理器 外圍硬體裝置 嵌入式作業系統及使用者應用程式四部分組成。簡單說,網咖裡的電腦是通用計算機,而 豆漿機等內含的都有嵌入式系統。嵌入式系統的特點是功...

嵌入式系統概述

計算機的分類 按照體系結構 執行速度 結構規模和適用領域分為 大型計算機,中型計算機,小型計算機和微型計算機。按照嵌入式應用和非嵌入式應用分為 通用計算機和嵌入式計算機。通用計算機一般具有標準的硬體配置,通過安裝不同的應用軟體,以適應各種不同的應用需求 嵌入式計算機一般是以嵌入式系統的形式隱藏在各種...

嵌入式概述

1.嵌入式技術簡述 1 概念 在已有的硬體上移植作業系統,在作業系統上做層應用開發以及在作業系統之下做底層開發 2 作業系統 管理資源 包括軟體資源和硬體資源 降低耦合,起到 管家 的作用。作業系統是多工機制,提供了豐富的網路協議 開源軟體和庫。2.嵌入式軟體和非嵌入式軟體的區別 嵌入式是在作業系統...