基于arm9的bootloader啟動設(shè)計

基于arm9的bootloader啟動設(shè)計

ID:854508

大?。?65.51 KB

頁數(shù):13頁

時間:2017-09-20

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

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

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

2、概述1.1課程設(shè)計名稱BootLoader程序設(shè)計1.2課程設(shè)計目的串口驅(qū)動和網(wǎng)口驅(qū)動程序的設(shè)計,可以通過串口或網(wǎng)口接收數(shù)據(jù)或文件,并且可以寫到flash中1.3要求編寫B(tài)ootLoader程序uart.huart.c串口驅(qū)動測試程序main.c第二章背景分析2.1BootLoader的概念簡單地說,BootLoader就是在操作系統(tǒng)內(nèi)核運行之前運行的一段小程序。通過這段小程序,可以初始化硬件設(shè)備、建立內(nèi)存空間的映射圖,從而將系統(tǒng)的軟硬件環(huán)境帶到一個合適的狀態(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的實現(xiàn)依賴于CPU的體系結(jié)構(gòu),因此大多數(shù)BootLoader都分為stage1和stage2兩大部分。依賴于CPU體系結(jié)構(gòu)的代碼,比如設(shè)備初始化代碼等,通常都放在stage1中,而且通常都用匯編語言來實現(xiàn),以達(dá)到短小精悍的目的。而stage2則通常用C語言來實現(xiàn),這樣可以實現(xiàn)更復(fù)雜的功能,而且代碼會具有更好的可讀性和可移植性。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入口點。BootLoader的stage2通常包括一下步驟(以執(zhí)行的先后順序):(1)初始化本階段要使用的硬件設(shè)備。(2)檢測系統(tǒng)內(nèi)存映射。(3)將kernel映像和根文件系統(tǒng)映像從Flash上獨到RAM空間中。(4)為內(nèi)核設(shè)置啟動參數(shù)。(5)調(diào)用內(nèi)核。第三章BootLoader串口驅(qū)動程序的設(shè)計3.1UART寄存器簡介S3C2440AUART控制器,提供3個獨立的異步串行I/O端口,每個端口都可以在中斷模式或DMA模式下工作。UART可以產(chǎn)生中斷請求或DMA請求,以便在CPU和UART之間傳輸數(shù)據(jù)。在使用系統(tǒng)時鐘的情況下,UART可以

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

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

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

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

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

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