嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第12章 嵌入式應(yīng)用程序設(shè)計舉例_第1頁
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第12章 嵌入式應(yīng)用程序設(shè)計舉例_第2頁
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第12章 嵌入式應(yīng)用程序設(shè)計舉例_第3頁
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第12章 嵌入式應(yīng)用程序設(shè)計舉例_第4頁
嵌入式系統(tǒng)原理與應(yīng)用 第3版 課件 第12章 嵌入式應(yīng)用程序設(shè)計舉例_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

第12章嵌入式應(yīng)用程序設(shè)計舉例1第12章嵌入式應(yīng)用程序設(shè)計舉例

嵌入式處理器的應(yīng)用主要有兩種方式:

一是進(jìn)行裸機(jī)開發(fā),要求開發(fā)者既要設(shè)計微處理器硬件系統(tǒng)的啟動引導(dǎo)程序、又要編寫低層接口硬件的初始化程序,還要編寫高層的應(yīng)用程序。因此開發(fā)人員需要花費大量的時間熟悉微處理器的硬件系統(tǒng),編寫啟動程序和低層接口硬件程序,難度大,開發(fā)周期長,但是系統(tǒng)的運行效率極高。

二是基于嵌入式操作系統(tǒng)之上的開發(fā),一般是在成功地移植了系統(tǒng)的Bootloader啟動引導(dǎo)程序、嵌入式操作系統(tǒng)之后的平臺上進(jìn)行開發(fā),涉及的低層硬件少,開發(fā)周期短,系統(tǒng)的運行效率相對較低。本設(shè)計實例是在FL2440開發(fā)板上進(jìn)行的裸機(jī)開發(fā),完成的主要功能就是實時監(jiān)測環(huán)境溫度。212.1系統(tǒng)啟動引導(dǎo)程序的功能嵌入式的啟動引導(dǎo)程序是和處理器的體系結(jié)構(gòu)緊密聯(lián)系在一起的,是嵌入式系統(tǒng)開發(fā)的難點之一,它既要求開發(fā)者對微處理器的硬件體系結(jié)構(gòu)熟悉,又要求熟練掌握微處理器的匯編語言與編程,還有C語言編程等。它是微處理器運行時必要的基本條件,沒有這段與硬件緊密聯(lián)系的程序代碼,多么精悍的微處理器也發(fā)揮不了它極其強(qiáng)大的作用。312.1.1啟動引導(dǎo)程序的作用啟動引導(dǎo)代碼是系統(tǒng)上電運行的首段代碼。1、在x86的PC機(jī)體系結(jié)構(gòu)中,引導(dǎo)程序由主板上的基本輸入輸出系統(tǒng)BIOS(BasicInput/OutputSystem)和位于磁盤主引導(dǎo)記錄MBR(MasterBootingRecord)區(qū)的啟動代碼組成。MBR位于磁盤介質(zhì)的0柱面0扇區(qū)0磁道。系統(tǒng)上電后,首先執(zhí)行主板上BIOS,完成系統(tǒng)基本硬件設(shè)置、檢測和資源分配后,轉(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)核的入口點運行,即開始啟動操作系統(tǒng)。2、在嵌入式系統(tǒng)中,由于微處理器的種類繁多,它們各自有自己的匯編語言,通常沒有像PC機(jī)那樣的固件程序,因此整個系統(tǒng)的加載啟動引導(dǎo)程序需要開發(fā)人員來設(shè)計。對于一個應(yīng)用的嵌入式系統(tǒng)來講,有的需要在操作系統(tǒng)之上開發(fā),有的需要進(jìn)行裸機(jī)開發(fā),但是系統(tǒng)啟動時都需要引導(dǎo)程序為它們建立一個良好的系統(tǒng)環(huán)境。412.1.2啟動引導(dǎo)程序任務(wù)

啟動程序是依賴于硬件而實現(xiàn)的,特別是嵌入式系統(tǒng),為它們設(shè)計一個通用的啟動引導(dǎo)程序幾乎是不可能的,因為這段代碼需要使用各自的匯編語言來編寫。但是可以歸納一些通用的程序任務(wù)還是可以的。嵌入式系統(tǒng)的啟動引導(dǎo)程序主要有以下任務(wù):●設(shè)置異常向量入口程序。當(dāng)CPU發(fā)生異常時,進(jìn)入到其程序的入口地址處,執(zhí)行完具體任務(wù)后返回。●關(guān)閉看門狗定時器和屏蔽中斷。防止在初始化過程中,中斷和看門狗定時中斷對其初始化過程的影響。●設(shè)置CPU的工作頻率、USB的工作頻率、HCLK和PCLK的工作頻率?!馬AM芯片的配置。由于ARM可以外接不同數(shù)據(jù)長度、不同訪問速度的RAM存儲器,為了能使CPU正確的訪問RAM,必須根據(jù)RAM的數(shù)據(jù)線寬度、訪問時的時延配置RAM芯片。●設(shè)置各種異常的堆棧指針。用于進(jìn)入異常時的現(xiàn)場數(shù)據(jù)保護(hù),包括以后使用的C語言程序?!裨O(shè)置中斷(有普通中斷IRQ和快速中斷FIQ)指針的傳遞。由于ARM沒有為它的32個中斷源配置固定的中斷向量地址,而且中斷服務(wù)函數(shù)的入口地址是在內(nèi)存RAM中,所以中斷函數(shù)的入口地址要通過指針傳遞到固定的異常(中斷)向量地址處0x00000018(普通中斷IRQ)或0x0000001C(快速中斷FIQ)?!駥龑懺贐ANK0區(qū)中的NandFlash或NorFlash存儲器的代碼段搬移到內(nèi)存RAM中。還有等等?!裉紺語言入口處,開始執(zhí)行由C語言編寫的硬件初始化程序、應(yīng)用程序等或進(jìn)入操作系統(tǒng)中。512.1.3引導(dǎo)程序的啟動流程啟動流程分為stage1和stage2兩個階段:

一般依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達(dá)到短小精悍且啟動快的目的;

而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)各種復(fù)雜的功能(比如串口、以太網(wǎng)接口的支持等)。

61.stage1的主要工作①硬件設(shè)備初始化。包括屏蔽所有中斷;關(guān)閉看門狗;設(shè)置CPU的速度與時鐘;RAM初始化;關(guān)閉CPU內(nèi)部指令/數(shù)據(jù)cache等。②為加載stage2的代碼準(zhǔn)備RAM空間。③拷貝stage2的代碼到RAM空間中。④設(shè)置好堆棧。這一步也可以放在stage2階段去做。⑤跳轉(zhuǎn)到stage2的C入口點Main()函數(shù)處。72.stage2的主要工作①使用C語言編程初始化本階段要使用到的硬件設(shè)備。②檢測系統(tǒng)內(nèi)存映射(memorymap)。③從flash存儲器拷貝文件到內(nèi)存RAM中。或如不移植操作系統(tǒng)則結(jié)束,否則替換做以下工作③④⑤:③將kernel映像和根文件系統(tǒng)映像從flash上讀到RAM空間中。④為內(nèi)核設(shè)置啟動參數(shù)。⑤調(diào)用內(nèi)核。812.2系統(tǒng)啟動引導(dǎo)程序的設(shè)計在開發(fā)ARM應(yīng)用系統(tǒng)時,必須使用匯編語言編寫的程序就是在啟動引導(dǎo)程序的stage1階段,本節(jié)仍以S3C2410A微處理器作為設(shè)計對象,S3C2440微處理器與S3C2410A微處理器的啟動代碼相同。啟動引導(dǎo)匯編代碼的文件名為2410init.s。912.3應(yīng)用程序Main函數(shù)的實現(xiàn)在上一節(jié)對ARM系統(tǒng)的初始化程序進(jìn)行了設(shè)計

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論