版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第12章嵌入式應(yīng)用程序設(shè)計(jì)舉例1第12章嵌入式應(yīng)用程序設(shè)計(jì)舉例
嵌入式處理器的應(yīng)用主要有兩種方式:
一是進(jìn)行裸機(jī)開(kāi)發(fā),要求開(kāi)發(fā)者既要設(shè)計(jì)微處理器硬件系統(tǒng)的啟動(dòng)引導(dǎo)程序、又要編寫低層接口硬件的初始化程序,還要編寫高層的應(yīng)用程序。因此開(kāi)發(fā)人員需要花費(fèi)大量的時(shí)間熟悉微處理器的硬件系統(tǒng),編寫啟動(dòng)程序和低層接口硬件程序,難度大,開(kāi)發(fā)周期長(zhǎng),但是系統(tǒng)的運(yùn)行效率極高。
二是基于嵌入式操作系統(tǒng)之上的開(kāi)發(fā),一般是在成功地移植了系統(tǒng)的Bootloader啟動(dòng)引導(dǎo)程序、嵌入式操作系統(tǒng)之后的平臺(tái)上進(jìn)行開(kāi)發(fā),涉及的低層硬件少,開(kāi)發(fā)周期短,系統(tǒng)的運(yùn)行效率相對(duì)較低。本設(shè)計(jì)實(shí)例是在FL2440開(kāi)發(fā)板上進(jìn)行的裸機(jī)開(kāi)發(fā),完成的主要功能就是實(shí)時(shí)監(jiān)測(cè)環(huán)境溫度。212.1系統(tǒng)啟動(dòng)引導(dǎo)程序的功能嵌入式的啟動(dòng)引導(dǎo)程序是和處理器的體系結(jié)構(gòu)緊密聯(lián)系在一起的,是嵌入式系統(tǒng)開(kāi)發(fā)的難點(diǎn)之一,它既要求開(kāi)發(fā)者對(duì)微處理器的硬件體系結(jié)構(gòu)熟悉,又要求熟練掌握微處理器的匯編語(yǔ)言與編程,還有C語(yǔ)言編程等。它是微處理器運(yùn)行時(shí)必要的基本條件,沒(méi)有這段與硬件緊密聯(lián)系的程序代碼,多么精悍的微處理器也發(fā)揮不了它極其強(qiáng)大的作用。312.1.1啟動(dòng)引導(dǎo)程序的作用啟動(dòng)引導(dǎo)代碼是系統(tǒng)上電運(yùn)行的首段代碼。1、在x86的PC機(jī)體系結(jié)構(gòu)中,引導(dǎo)程序由主板上的基本輸入輸出系統(tǒng)BIOS(BasicInput/OutputSystem)和位于磁盤主引導(dǎo)記錄MBR(MasterBootingRecord)區(qū)的啟動(dòng)代碼組成。MBR位于磁盤介質(zhì)的0柱面0扇區(qū)0磁道。系統(tǒng)上電后,首先執(zhí)行主板上BIOS,完成系統(tǒng)基本硬件設(shè)置、檢測(cè)和資源分配后,轉(zhuǎn)入系統(tǒng)硬盤MBR中讀取引導(dǎo)程序到系統(tǒng)的內(nèi)存RAM,然后將控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序的功能就是將內(nèi)核映像從硬盤讀到內(nèi)存RAM中,然后跳到內(nèi)核的入口點(diǎn)運(yùn)行,即開(kāi)始啟動(dòng)操作系統(tǒng)。2、在嵌入式系統(tǒng)中,由于微處理器的種類繁多,它們各自有自己的匯編語(yǔ)言,通常沒(méi)有像PC機(jī)那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)引導(dǎo)程序需要開(kāi)發(fā)人員來(lái)設(shè)計(jì)。對(duì)于一個(gè)應(yīng)用的嵌入式系統(tǒng)來(lái)講,有的需要在操作系統(tǒng)之上開(kāi)發(fā),有的需要進(jìn)行裸機(jī)開(kāi)發(fā),但是系統(tǒng)啟動(dòng)時(shí)都需要引導(dǎo)程序?yàn)樗鼈兘⒁粋€(gè)良好的系統(tǒng)環(huán)境。412.1.2啟動(dòng)引導(dǎo)程序任務(wù)
啟動(dòng)程序是依賴于硬件而實(shí)現(xiàn)的,特別是嵌入式系統(tǒng),為它們?cè)O(shè)計(jì)一個(gè)通用的啟動(dòng)引導(dǎo)程序幾乎是不可能的,因?yàn)檫@段代碼需要使用各自的匯編語(yǔ)言來(lái)編寫。但是可以歸納一些通用的程序任務(wù)還是可以的。嵌入式系統(tǒng)的啟動(dòng)引導(dǎo)程序主要有以下任務(wù):●設(shè)置異常向量入口程序。當(dāng)CPU發(fā)生異常時(shí),進(jìn)入到其程序的入口地址處,執(zhí)行完具體任務(wù)后返回?!耜P(guān)閉看門狗定時(shí)器和屏蔽中斷。防止在初始化過(guò)程中,中斷和看門狗定時(shí)中斷對(duì)其初始化過(guò)程的影響?!裨O(shè)置CPU的工作頻率、USB的工作頻率、HCLK和PCLK的工作頻率?!馬AM芯片的配置。由于ARM可以外接不同數(shù)據(jù)長(zhǎng)度、不同訪問(wèn)速度的RAM存儲(chǔ)器,為了能使CPU正確的訪問(wèn)RAM,必須根據(jù)RAM的數(shù)據(jù)線寬度、訪問(wèn)時(shí)的時(shí)延配置RAM芯片?!裨O(shè)置各種異常的堆棧指針。用于進(jìn)入異常時(shí)的現(xiàn)場(chǎng)數(shù)據(jù)保護(hù),包括以后使用的C語(yǔ)言程序。●設(shè)置中斷(有普通中斷IRQ和快速中斷FIQ)指針的傳遞。由于ARM沒(méi)有為它的32個(gè)中斷源配置固定的中斷向量地址,而且中斷服務(wù)函數(shù)的入口地址是在內(nèi)存RAM中,所以中斷函數(shù)的入口地址要通過(guò)指針傳遞到固定的異常(中斷)向量地址處0x00000018(普通中斷IRQ)或0x0000001C(快速中斷FIQ)?!駥龑懺贐ANK0區(qū)中的NandFlash或NorFlash存儲(chǔ)器的代碼段搬移到內(nèi)存RAM中。還有等等?!裉紺語(yǔ)言入口處,開(kāi)始執(zhí)行由C語(yǔ)言編寫的硬件初始化程序、應(yīng)用程序等或進(jìn)入操作系統(tǒng)中。512.1.3引導(dǎo)程序的啟動(dòng)流程啟動(dòng)流程分為stage1和stage2兩個(gè)階段:
一般依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,都放在stage1中,而且通常都用匯編語(yǔ)言來(lái)實(shí)現(xiàn),以達(dá)到短小精悍且啟動(dòng)快的目的;
而stage2則通常用C語(yǔ)言來(lái)實(shí)現(xiàn),這樣可以實(shí)現(xiàn)各種復(fù)雜的功能(比如串口、以太網(wǎng)接口的支持等)。
61.stage1的主要工作①硬件設(shè)備初始化。包括屏蔽所有中斷;關(guān)閉看門狗;設(shè)置CPU的速度與時(shí)鐘;RAM初始化;關(guān)閉CPU內(nèi)部指令/數(shù)據(jù)cache等。②為加載stage2的代碼準(zhǔn)備RAM空間。③拷貝stage2的代碼到RAM空間中。④設(shè)置好堆棧。這一步也可以放在stage2階段去做。⑤跳轉(zhuǎn)到stage2的C入口點(diǎn)Main()函數(shù)處。72.stage2的主要工作①使用C語(yǔ)言編程初始化本階段要使用到的硬件設(shè)備。②檢測(cè)系統(tǒng)內(nèi)存映射(memorymap)。③從flash存儲(chǔ)器拷貝文件到內(nèi)存RAM中?;蛉绮灰浦膊僮飨到y(tǒng)則結(jié)束,否則替換做以下工作③④⑤:③將kernel映像和根文件系統(tǒng)映像從flash上讀到RAM空間中。④為內(nèi)核設(shè)置啟動(dòng)參數(shù)。⑤調(diào)用內(nèi)核。812.2系統(tǒng)啟動(dòng)引導(dǎo)程序的設(shè)計(jì)在開(kāi)發(fā)ARM應(yīng)用系統(tǒng)時(shí),必須使用匯編語(yǔ)言編寫的程序就是在啟動(dòng)引導(dǎo)程序的stage1階段,本節(jié)仍以S3C2410A微處理器作為設(shè)計(jì)對(duì)象,S3C2440微處理器與S3C2410A微處理器的啟動(dòng)代碼相同。啟動(dòng)引導(dǎo)匯編代碼的文件名為2410init.s。912.3應(yīng)用程序Main函數(shù)的實(shí)現(xiàn)在上一節(jié)對(duì)ARM系統(tǒng)的初始化程序進(jìn)行了設(shè)計(jì)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 養(yǎng)老院入住老人醫(yī)療費(fèi)用結(jié)算制度
- 企業(yè)市場(chǎng)營(yíng)銷策劃制度
- 會(huì)議發(fā)言與討論規(guī)范制度
- 2026年順豐快遞管理咨詢崗位筆試題集及策略
- 2026年高級(jí)經(jīng)濟(jì)師考試題庫(kù)與答案解析
- 2026年游戲設(shè)計(jì)基礎(chǔ)訓(xùn)練游戲美術(shù)與關(guān)卡設(shè)計(jì)實(shí)踐題集
- 2026年6S管理與企業(yè)形象塑造預(yù)測(cè)模擬題
- 2026年新版免疫重建協(xié)議
- 檢驗(yàn)科化學(xué)試劑泄漏的應(yīng)急處理流程及制度
- 道路客運(yùn)企業(yè)乘客安全管理及隱患排查制度
- 安全生產(chǎn)目標(biāo)及考核制度
- (2026版)患者十大安全目標(biāo)(2篇)
- 2026年北大拉丁語(yǔ)標(biāo)準(zhǔn)考試試題
- 臨床護(hù)理操作流程禮儀規(guī)范
- 2025年酒店總經(jīng)理年度工作總結(jié)暨戰(zhàn)略規(guī)劃
- 空氣栓塞課件教學(xué)
- 2025年國(guó)家市場(chǎng)監(jiān)管總局公開(kāi)遴選公務(wù)員面試題及答案
- 肌骨康復(fù)腰椎課件
- 患者身份識(shí)別管理標(biāo)準(zhǔn)
- 2025年10月自考04184線性代數(shù)經(jīng)管類試題及答案含評(píng)分參考
- 2025年勞動(dòng)保障協(xié)理員三級(jí)技能試題及答案
評(píng)論
0/150
提交評(píng)論