基于arm9的bootloader啟動(dòng)設(shè)計(jì)

基于arm9的bootloader啟動(dòng)設(shè)計(jì)

ID:854508

大小:165.51 KB

頁數(shù):13頁

時(shí)間:2017-09-20

基于arm9的bootloader啟動(dòng)設(shè)計(jì)_第1頁
基于arm9的bootloader啟動(dòng)設(shè)計(jì)_第2頁
基于arm9的bootloader啟動(dòng)設(shè)計(jì)_第3頁
基于arm9的bootloader啟動(dòng)設(shè)計(jì)_第4頁
基于arm9的bootloader啟動(dòng)設(shè)計(jì)_第5頁
資源描述:

《基于arm9的bootloader啟動(dòng)設(shè)計(jì)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫

1、長(zhǎng)治學(xué)院課程設(shè)計(jì)報(bào)告課程名稱:嵌入式系統(tǒng)原理與應(yīng)用技術(shù)設(shè)計(jì)題目:Bootloader程序設(shè)計(jì)系別:計(jì)算機(jī)系專業(yè):計(jì)算機(jī)科學(xué)與技術(shù)組別:第7組(韓偉偉、王富涌)學(xué)生姓名:韓偉偉學(xué)號(hào):08407106起止日期:2011年12月15日-2011年12月22日指導(dǎo)教師:劉麗麗目錄第一章概述11.1課程設(shè)計(jì)名稱11.2課程設(shè)計(jì)目的11.3要求1第二章背景分析12.1BootLoader的概念12.2BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架1第三章BOOTLOADER串口驅(qū)動(dòng)程序的設(shè)計(jì)24.1UART寄存器簡(jiǎn)介24.2UART串口工作原理54.3UART驅(qū)動(dòng)程序詳細(xì)設(shè)計(jì)5第四章總結(jié)9參考文獻(xiàn)10第一章

2、概述1.1課程設(shè)計(jì)名稱BootLoader程序設(shè)計(jì)1.2課程設(shè)計(jì)目的串口驅(qū)動(dòng)和網(wǎng)口驅(qū)動(dòng)程序的設(shè)計(jì),可以通過串口或網(wǎng)口接收數(shù)據(jù)或文件,并且可以寫到flash中1.3要求編寫B(tài)ootLoader程序uart.huart.c串口驅(qū)動(dòng)測(cè)試程序main.c第二章背景分析2.1BootLoader的概念簡(jiǎn)單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)內(nèi)核準(zhǔn)備好正確的環(huán)境。2.2BootLoader的主要任務(wù)與典型結(jié)構(gòu)框架從操作系統(tǒng)的角度看,BootLoader

3、的總目標(biāo)就是正確地調(diào)用內(nèi)核來執(zhí)行。另外,由于BootLoader的實(shí)現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此大多數(shù)BootLoader都分為stage1和stage2兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實(shí)現(xiàn),以達(dá)到短小精悍的目的。而stage2則通常用C語言來實(shí)現(xiàn),這樣可以實(shí)現(xiàn)更復(fù)雜的功能,而且代碼會(huì)具有更好的可讀性和可移植性。BootLoader的stage1通常包括一下步驟(以執(zhí)行的先后順序):(1)硬件設(shè)備初始化。(2)為加載BootLoader的stage2準(zhǔn)備RAM空間。(3)復(fù)制BootLoader的stage2到RAM

4、空間中。11(1)設(shè)置好堆棧。(2)跳轉(zhuǎn)到stage2的C入口點(diǎn)。BootLoader的stage2通常包括一下步驟(以執(zhí)行的先后順序):(1)初始化本階段要使用的硬件設(shè)備。(2)檢測(cè)系統(tǒng)內(nèi)存映射。(3)將kernel映像和根文件系統(tǒng)映像從Flash上獨(dú)到RAM空間中。(4)為內(nèi)核設(shè)置啟動(dòng)參數(shù)。(5)調(diào)用內(nèi)核。第三章BootLoader串口驅(qū)動(dòng)程序的設(shè)計(jì)3.1UART寄存器簡(jiǎn)介S3C2440AUART控制器,提供3個(gè)獨(dú)立的異步串行I/O端口,每個(gè)端口都可以在中斷模式或DMA模式下工作。UART可以產(chǎn)生中斷請(qǐng)求或DMA請(qǐng)求,以便在CPU和UART之間傳輸數(shù)據(jù)。在使用系統(tǒng)時(shí)鐘的情況下,UART可以

5、支持最高115.2Kbps的傳輸速率。如果外部設(shè)備通過UEXTCLK為UART提供時(shí)鐘,那么UART的傳輸速率可以更高。每個(gè)UART通道包含兩個(gè)用于接收和發(fā)送數(shù)據(jù)的16字節(jié)的FIFO緩沖寄存器。由于UART是串行異步通信方式,因此在UART通信過程中每次只能傳輸1位(bit),若干位組成一個(gè)數(shù)據(jù)幀(frame),幀是UART通信中最基本單元,它主要包含開始位、數(shù)據(jù)位、校驗(yàn)位(如果開啟了數(shù)據(jù)校驗(yàn),要包含校驗(yàn)位)和停止位。UART在通信之前要在發(fā)送端和接受端約定好幀的結(jié)構(gòu),也就是約定好傳輸數(shù)據(jù)幀格式。(1)開始位:必須包含在數(shù)據(jù)幀中,表示一個(gè)幀的開始。(2)數(shù)據(jù)位:可選5、6、7、8位,該長(zhǎng)度可由

6、編程人員指定。(3)校驗(yàn)位:如果在開啟了數(shù)據(jù)校驗(yàn)時(shí),該位必須指定。(4)停止位:可選1、2位,該位長(zhǎng)度可由編程人員指定。通信雙方約定好幀格式后,指定同一波特率,以保證雙方數(shù)據(jù)傳輸?shù)耐?。UART串口驅(qū)動(dòng)需要設(shè)置的寄存器及其具體特性如表4-1~表4-8所示:表3-1UART0串行控制寄存器(ULCON0)11寄存器名地址是否讀寫描述復(fù)位默認(rèn)值ULCON00x50000000R/W串口0串行控制寄存器0x00ULCON0位描述初始值保留70紅外模式6選擇串口0是否使用紅外模式:0=正常通信模式1=紅外通信模式0校驗(yàn)?zāi)J?:3設(shè)置串口0在數(shù)據(jù)接收和發(fā)送時(shí)采用的校驗(yàn)方式:0xx=無校驗(yàn)100=奇校驗(yàn)1

7、01=偶校驗(yàn)110=強(qiáng)制校驗(yàn)/檢測(cè)是否為1111=強(qiáng)制校驗(yàn)/檢測(cè)是否為0000停止位2設(shè)置串口0停止位數(shù):0=每個(gè)數(shù)據(jù)幀一個(gè)停止位1=每個(gè)數(shù)據(jù)幀二個(gè)停止位0數(shù)據(jù)位1:0設(shè)置串口0數(shù)據(jù)位數(shù):00=5個(gè)數(shù)據(jù)位01=6個(gè)數(shù)據(jù)位10=7個(gè)數(shù)據(jù)位11=8個(gè)數(shù)據(jù)位00表3-2UART0串口控制寄存器(UCON0)寄存器名地址是否讀寫描述復(fù)位默認(rèn)值UCON00x50000004R/W串口0控制寄存器0x00UC

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。