新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于ARM體系的嵌入式系統(tǒng)BSP的程序設計

基于ARM體系的嵌入式系統(tǒng)BSP的程序設計

作者: 時間:2012-10-22 來源:網(wǎng)絡 收藏

公司在32位RISC的CPU開發(fā)領域不斷取得突破,其結構已經(jīng)從V3發(fā)展到V6。

(Board SupPORT Package)板級支持包介于主板硬件和操作系統(tǒng)之間,其功能與PC機上的BIOS相類似,主要完成硬件初始化并切換到相應的操作系統(tǒng)。是相對于操作系統(tǒng)而言的,不同的操作系統(tǒng)對應于不同定義形式的,例如VxWorks的BSP和Linux的BSP相對于某一CPU來說,盡管實現(xiàn)的功能一樣,可是寫法和接口定義是完全不同的。另外,仔細研究所用的芯片資料也十分重要,例如盡管在內(nèi)核上兼容,但每家芯片都有自己的特色。所以這就要求BSP程序員對硬件、軟件和操作系統(tǒng)都要有一定的了解。

本文介紹基于體系的嵌入式應用系統(tǒng)初始化部分BSP的程序設計。本文引用的源碼全部是基于HMS320C7202芯片設計,并已成功運行。

1 初始化過程

盡管各種嵌入式應用系統(tǒng)的結構及功能差別很大,但其系統(tǒng)初始化部分完成的操作有很大一部分是相似的。的啟動流程如圖1所示。

1.1 設置入口指針

啟動程序首先必須定義指針,而且整個應用程序只有一個入口指針。一般地,程序在編譯鏈接時將異常中斷向量表鏈接在0地址處,并且作為整個程序入口點。入口點代碼如下:

ENTRY(_start) ;開始

1.2 設置異常中斷向量表

ARM要求中斷向量表必須放置在從0開始、連續(xù)8×4字節(jié)的空間內(nèi)。各異常中斷向量地址以及中斷的算是優(yōu)先級如表1:

每當一個中斷發(fā)生后,ARM處理器便強制把程序計數(shù)器(PC)指針置為向量表中對應中斷類型的地址值。因為每個中斷向量僅占據(jù)放置1條ARM指令的空間,所以通常放置1條跳轉指令或向程序計數(shù)器(PC)寄存器賦值的數(shù)據(jù)訪問指令,使程序跳轉到相應的異常中斷處理程序執(zhí)行。如果異常中斷處理程序起始地址小于32MB,使用B跳轉指令;如果跳轉范圍大于32MB,使用LDR指令。


上一頁 1 2 3 下一頁

評論


相關推薦

技術專區(qū)

關閉