ARM的嵌入式Linux移植體驗之基本概念
ARM是Advanced RISC Machines(高級精簡指令系統(tǒng)處理器)的縮寫,是ARM公司提供的一種微處理器知識產(chǎn)權(quán)(IP)核。
ARM的應(yīng)用已遍及工業(yè)控制、消費類電子產(chǎn)品、通信系統(tǒng)、網(wǎng)絡(luò)系統(tǒng)、無線系統(tǒng)等各類產(chǎn)品市場。基于ARM 技術(shù)的微處理器應(yīng)用約占據(jù)了32位RISC 微處理器75%以上的市場份額。揭開你的手機、MP3、 PDA,嘿嘿,里面多半藏著一個基于ARM的微處理器!
ARM內(nèi)核的數(shù)個系列(ARM7、ARM9、ARM9E、ARM10E、SecurCore、Xscale、StrongARM),各自滿足不同應(yīng)用領(lǐng)域的需求,無孔不入的滲入嵌入式系統(tǒng)各個角落的應(yīng)用。這是一個ARM的時代!
有人的地方就有江湖(《武林外傳》),有嵌入式系統(tǒng)的地方就有ARM。
構(gòu)建一個復(fù)雜的嵌入式系統(tǒng),僅有硬件是不夠的,我們還需要進行操作系統(tǒng)的移植。我們通常在ARM平臺上構(gòu)建Windows CE、Linux、Palm OS等操作系統(tǒng),其中Linux具有開放源代碼的優(yōu)點。
日前,筆者作為某嵌入式ARM(硬件)/Linux(軟件)系統(tǒng)的項目負責(zé)人,帶領(lǐng)項目組成員進行了下述工作:
(1)基于ARM920T內(nèi)核S3C2410A CPU的電路板設(shè)計;
(2)ARM處理下底層軟件平臺搭建:
a.Bootloader的移植;
b.嵌入式Linux操作系統(tǒng)內(nèi)核的移植;
c.嵌入式Linux操作系統(tǒng)根文件系統(tǒng)的創(chuàng)建;
d.電路板上外設(shè)Linux驅(qū)動程序的編寫。
本文將真實地再現(xiàn)本項目開發(fā)過程中作者的心得,以便與廣大讀者共勉。第一章將簡單地介紹本ARM開發(fā)板的硬件設(shè)計,第二章分析Bootloader的移植方法,第三章敘述嵌入式mizi Linux的移植及文件系統(tǒng)的構(gòu)建方法,第四章講解外設(shè)的驅(qū)動程序設(shè)計,第五章給出一個已構(gòu)建好的軟硬件平臺上應(yīng)用開發(fā)的實例。
如果您有嵌入式系統(tǒng)的開發(fā)基礎(chǔ),您將非常容易領(lǐng)會本文講解地內(nèi)容。即便是您從來沒有嵌入式系統(tǒng)的開發(fā)經(jīng)歷,本文讀起來也不會生澀。
2.ARM體系結(jié)構(gòu)
作為一種RISC體系結(jié)構(gòu)的微處理器,ARM微處理器具有RISC體系結(jié)構(gòu)的典型特征。還具有如下增強特點:
(l)在每條數(shù)據(jù)處理指令當(dāng)中,都控制算術(shù)邏輯單元(ALU)和移位器,以使ALU和移位器獲得最大的利用率;
(2)自動遞增和自動遞減的尋址模式,以優(yōu)化程序中的循環(huán);
(3)同時Load和Store多條指令,以增加數(shù)據(jù)吞吐量;
(4)所有指令都條件執(zhí)行,以增大執(zhí)行吞吐量。
ARM體系結(jié)構(gòu)的字長為32位,它們都支持Byte(8位)、Halfword(16位)和Word(32位)3種數(shù)據(jù)類型。
大部分應(yīng)用程序都在User模式下運行。當(dāng)處理器處于User模式下時,執(zhí)行的程序無法訪問一些被保護的系統(tǒng)資源,也不能改變模式,否則就會導(dǎo)致一次異常。對系統(tǒng)資源的使用由操作系統(tǒng)來控制。
User模式之外的其它幾種模式也稱為特權(quán)模式,它們可以完全訪問系統(tǒng)資源,可以自由地改變模式。其中的FIQ、IRQ、supervisor、Abort和undefined 5種模式也被稱為異常模式。在處理特定的異常時,系統(tǒng)進入這幾種模式。這5種異常模式都有各自的額外的寄存器,用于避免在發(fā)生異常的時候與用戶模式下的程序發(fā)生沖突。
還有一種模式是system模式,任何異常都不會導(dǎo)致進入這一模式,而且它使用的寄存器和User模式下基本相同。它是一種特權(quán)模式,用于有訪問系統(tǒng)資源請求而又需要避免使用額外的寄存器的操作系統(tǒng)任務(wù)。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論