




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、.:.;3.3 基于S3C2410開發(fā)板的BootLoader實(shí)現(xiàn)本節(jié)將以實(shí)例講述基于S3C2410開發(fā)板的BootLoader的詳細(xì)實(shí)現(xiàn),主要分兩個(gè)方面進(jìn)展引見(jiàn),一是引見(jiàn)基于U-Boot的移植,二是引見(jiàn)DIY方式開發(fā)BootLoader。要移植或開發(fā)BootLoader首先要清楚詳細(xì)的硬件系統(tǒng),在這里就是要了解我們運(yùn)用的目的板S3C2410開發(fā)板。3.3.1 S3C2410開發(fā)板引見(jiàn)本書中所設(shè)計(jì)的開發(fā)板相關(guān)的實(shí)例都是基于S3C2410開發(fā)板設(shè)計(jì)和測(cè)試的。S3C2410開發(fā)板是非常通用的一款A(yù)RM 9開發(fā)板,讀者運(yùn)用任何類型的ARM 9開發(fā)板都能參考書中的實(shí)例。S3C2410開發(fā)板的根本配置如
2、下: CPU采用三星的S3C2410 ARM920T,主頻203MHz。集成有SDRAM內(nèi)存控制器、NAND Flash控制器、SD卡控制器、USB Host和USB Device控制器、LCD控制器、IIC總線控制器、IIS控制器、SPI接口等多種接口。 存儲(chǔ)器64MB的SDRAM;64MB的NAND Flash注1。* 以太網(wǎng)控制器10MB網(wǎng)口、CS8900Q3、帶聯(lián)接和傳輸指示燈。 串行接口系統(tǒng)提供兩個(gè)串行收發(fā)DB9母口銜接器,上面分別表示COM0、COM1。 USB Host接口兩個(gè)USB1.1HOST接口;一個(gè)USB 1.1Device接口。 存儲(chǔ)接口一個(gè)SD卡接口;一個(gè)十針的AD接
3、口;一個(gè)IDE接口。 LCD和觸摸屏接口 一個(gè)50芯LCD接口引出了LCD控制器和觸摸屏的全部信號(hào)。提供TFT真彩LCD的接口,LCD模塊不需求外接電源等,插入該接口直接可以運(yùn)用。接口另外還帶觸摸屏的接口。 調(diào)試及下載接口20針Multi-ICE規(guī)范JTAG接口,支持SDT2.51和ADS1.2調(diào)試。 音頻接口采用IIS接口芯片UDA1341,一路立體聲音頻輸出接口可接耳機(jī)或音箱;支持錄音,開發(fā)板自帶主機(jī)體話筒可直接錄音,另有一路話筒輸入接口可接麥克風(fēng)。 電源接口5V電源供電,帶電源開關(guān)和指示燈。 操作系統(tǒng)支持Linux 2.4或以上系統(tǒng),支持Windows CE。開發(fā)板上包括1片64M8位數(shù)
4、據(jù)寬度的NAND FlashK9F1208和2片16M16位數(shù)據(jù)寬度的SDRAM,地址范圍為 0 x300000000 x34000000。S3C2410將系統(tǒng)的存儲(chǔ)空間分為8組Bank,每組大小為128MB,共1GB。Bank0到Bank5之間的開場(chǎng)地址是固定的,用于ROM 或SRAM;Bank6和Bank7用于ROM、SRAM或SDRAM,這兩個(gè)組是可編程且大小一樣的。S3C2410具有3種啟動(dòng)方式,經(jīng)過(guò)OM1:0管腳進(jìn)展選擇。 OM1:0 = 00時(shí),處置器經(jīng)過(guò)NAND Flash啟動(dòng); OM1:0 = 01時(shí),處置器經(jīng)過(guò)16位寬的ROM啟動(dòng); OM1:0 = 10時(shí),處置器經(jīng)過(guò)32位寬
5、的ROM啟動(dòng)。由于NAND Flash有容量大,比Nor Flash廉價(jià)等優(yōu)勢(shì),所以經(jīng)常選擇NAND Flash啟動(dòng)。當(dāng)從Nor Flash啟動(dòng)時(shí),要把Flash芯片的首地址映射到0 x00000000位置,系統(tǒng)啟動(dòng)后,啟動(dòng)程序本身把本人從Flash搬運(yùn)到RAM中去。當(dāng)從NAND Flash啟動(dòng)時(shí),S3C2410會(huì)自動(dòng)把NAND Flash的前4KB數(shù)據(jù)搬到本人內(nèi)部的RAM中去,并把內(nèi)部RAM的首地址設(shè)為0 x00000000,CPU從0 x00000000地址開場(chǎng)運(yùn)轉(zhuǎn)。本章選擇的實(shí)現(xiàn)啟動(dòng)方式就是經(jīng)過(guò)NAND Flash啟動(dòng)。如圖3.1所示為經(jīng)過(guò)Nor Flash啟動(dòng)和NAND Flash啟動(dòng)
6、兩種方式存儲(chǔ)空間的分配,圖a是nGCS0片選 的Nor Flash啟動(dòng)方式存儲(chǔ)分配圖;圖b是NAND Flash啟動(dòng)方式的存儲(chǔ)分配圖。其中SFR為Special Function Register的縮寫,即特殊功能存放器。3.3.2 U-Boot分析與移植本節(jié)以運(yùn)用非常廣泛的U-Boot為例講述基于S3C2410開發(fā)板的BootLoader分析與移植。解壓u-boot-1.1.6.tar.bz2包,查看其目錄構(gòu)造如下所示:# tree L 1 -d.|- board|- common|- cpu|- disk|- doc|- drivers|- dtt|- examples|- fs|- in
7、clude|- lib_arm|- lib_avr32|- lib_blackfin|- lib_generic|- lib_i386|- lib_m68k|- lib_microblaze|- lib_mips|- lib_nios|- lib_nios2|- lib_ppc|- nand_spl|- net|- post|- rtc- tools26 directories(a) (b)圖3.1 兩種啟動(dòng)方式內(nèi)存映射的比較(a) Not using NAND Flash for booting ROM; (b) Using NAND Flash for booting ROM大多數(shù)Boot
8、Loader都包含“啟動(dòng)加載方式和“下載方式,U-Boot作為一款強(qiáng)大的Boot- Loader也支持這兩種任務(wù)方式,并且允許用戶在這兩種方式之間切換。同時(shí)U-Boot也分為Stage1和Stage2兩個(gè)階段,其中依賴于CPU體系構(gòu)造的代碼通常都放在Stage1里,并且通常用匯編言語(yǔ)實(shí)現(xiàn);Stage2通常用C言語(yǔ)實(shí)現(xiàn),可以實(shí)現(xiàn)更復(fù)雜的功能,并且有更好的移植性和可讀性。1U-Boot Stage1分析U-Boot的Stage1通常是在start.S文件中實(shí)現(xiàn)的,并且都是用匯編言語(yǔ)編寫的。一個(gè)可執(zhí)行性image文件必需有一個(gè)入口點(diǎn),并且只能有一個(gè)全局入口點(diǎn),通常這個(gè)入口點(diǎn)的地址放在ROMFlash
9、0 x0位置,因此必需使編譯器知道這個(gè)入口地址,該過(guò)程通常經(jīng)過(guò)修正銜接器的腳本文件來(lái)完成。由于S3C2410開發(fā)板與smdk2410開發(fā)板的配置接近,所以此處參考smdk2410的U-Boot實(shí)現(xiàn)程序。翻開board/smdk2410/ u-boot.lds文件,該腳本文件的內(nèi)容如下所示:OUTPUT_FORMAT(elf32-littlearm, elf32-littlearm, elf32-littlearm)OUTPUT_ARCH(arm)ENTRY(_start)SECTIONS . = 0 x00000000; . = ALIGN(4); .text : cpu/arm920t/st
10、art.o (.text) *(.text) . = ALIGN(4); .rodata : *(.rodata) . = ALIGN(4); .data : *(.data) . = ALIGN(4); .got : *(.got) . = .; _u_boot_cmd_start = .; .u_boot_cmd : *(.u_boot_cmd) _u_boot_cmd_end = .; . = ALIGN(4); _bss_start = .; .bss : *(.bss) _end = .;其中,ENTRY(_start)在cpu/arm920t/start.S文件定義了入口點(diǎn),入口地
11、址為0 x00000000。在cpu/arm920t/config.mk文件中定義了代碼區(qū)基地址TEXT_BASE = 0 x33F80000。接下來(lái)分析U-Boot的Stage1的中心文件start.S。1設(shè)置異常向量表ARM處置器普通包括復(fù)位、未定義指令、SWI、預(yù)取終止、數(shù)據(jù)終止、IRQ、FIQ等異常,關(guān)于ARM處置器這些異常在后面會(huì)有專門的引見(jiàn),其中U-Boot中關(guān)于異常向量的定義如下,當(dāng)發(fā)生異常時(shí)執(zhí)行cpu/arm920t/ interrupts.c文件。.globl _start_start: b reset ldr pc, _undefined_instruction ldr p
12、c, _software_interrupt ldr pc, _prefetch_abort ldr pc, _data_abort ldr pc, _not_used ldr pc, _irq ldr pc, _fiq2設(shè)置CPU方式為SVC方式Reset即復(fù)位,在系統(tǒng)中經(jīng)常會(huì)用到,該操作是異常處置的第一個(gè)操作,其主要目的是設(shè)置CPU方式為SVC方式。在此有必要引見(jiàn)一下ARM處置器的7種任務(wù)方式。 用戶方式usr ARM處置器正常的程序執(zhí)行形狀; 快速中斷方式fiq 用于高速數(shù)據(jù)傳輸或通道處置; 外部中斷方式irq 用于通用的中斷處置; 管理方式svc 操作系統(tǒng)運(yùn)用的維護(hù)方式; 數(shù)據(jù)訪問(wèn)終止
13、方式abt 當(dāng)數(shù)據(jù)或指令預(yù)取終止時(shí)進(jìn)入該方式,可用于虛擬存儲(chǔ)及存儲(chǔ)維護(hù); 系統(tǒng)方式sys 運(yùn)轉(zhuǎn)具有特權(quán)的操作系統(tǒng)義務(wù); 未定義指令中止方式und 當(dāng)未定義的指令執(zhí)行時(shí)進(jìn)入該方式,可用于支持協(xié)處置器的軟件仿真。ARM微處置器共有37個(gè)32位存放器,其中31個(gè)為通用存放器,6個(gè)為形狀存放器。但是這些存放器不能被同時(shí)訪問(wèn),詳細(xì)哪些存放器是可編程訪問(wèn)的,取決于微處置器的任務(wù)形狀及詳細(xì)的運(yùn)轉(zhuǎn)方式。但在任何時(shí)候,通用存放器R0R14、程序計(jì)數(shù)器PC、一個(gè)或兩個(gè)形狀存放器都是可訪問(wèn)的。通用存放器包括R0R15,可以分為3類。 未分組存放器R0R7 在一切的運(yùn)轉(zhuǎn)方式下,未分組存放器都指向同一個(gè)物理存放器,它們
14、未被系統(tǒng)用作特殊的用途。因此,在中斷或異常處置進(jìn)展運(yùn)轉(zhuǎn)方式轉(zhuǎn)換時(shí),由于不同處置器的運(yùn)轉(zhuǎn)方式均運(yùn)用一樣的物理存放器,能夠會(huì)呵斥存放器中數(shù)據(jù)的破壞,這一點(diǎn)在進(jìn)展程序設(shè)計(jì)時(shí)應(yīng)引起留意。 分組存放器R8R14 對(duì)于分組存放器,它們每一次所訪問(wèn)的物理存放器與處置器當(dāng)前的運(yùn)轉(zhuǎn)方式有關(guān)。對(duì)于R8R12來(lái)說(shuō),每個(gè)存放器對(duì)應(yīng)兩個(gè)不同的物理存放器,當(dāng)運(yùn)用fiq方式時(shí),訪問(wèn)存放器R8_fiqR12_fiq;當(dāng)運(yùn)用除fiq方式以外的其他方式時(shí),訪問(wèn)存放器R8_usrR12_usr。對(duì)于R13、R14來(lái)說(shuō),每個(gè)存放器對(duì)應(yīng)6個(gè)不同的物理存放器,其中的一個(gè)是用戶方式與系統(tǒng)方式共用,另外5個(gè)物理存放器對(duì)應(yīng)于其他5種不同的運(yùn)轉(zhuǎn)
15、方式。 程序計(jì)數(shù)器PC(R15) 在ARM形狀下,位1:0為0,位31:2用于保管PC;在Thumb形狀下,位0為0,位31:1用于保管PC。雖然可以用作通用存放器,但是有一些指令在運(yùn)用R15時(shí)有一些特殊限制,假設(shè)不留意,執(zhí)行的結(jié)果將是不可預(yù)料的。在ARM形狀下,PC的0和1位是0,在Thumb形狀下,PC的0位是0。留意,Thumb形狀下的存放器集是ARM形狀下存放器集的一個(gè)子集,程序可以直接訪問(wèn)8個(gè)通用存放器R7R0、程序計(jì)數(shù)器PC、堆棧指針SP、銜接存放器LR和CPSR。同時(shí),在每一種特權(quán)方式下都有一組SP、LR和SPSR。設(shè)置CPU方式為SVC方式操作的詳細(xì)實(shí)現(xiàn)代碼如下,其中CPSR是
16、Current Program Status Register的縮寫,即當(dāng)前程序形狀存放器,存放器 R16 用作CPSR,CPSR可在任何運(yùn)轉(zhuǎn)方式下被訪問(wèn),它包括條件標(biāo)志位、中斷制止位、當(dāng)前處置器方式標(biāo)志位,以及其他一些相關(guān)的控制和形狀位。每一種運(yùn)轉(zhuǎn)方式下又都有一個(gè)公用的物理形狀存放器,稱為SPSR是Saved Program Status Register的縮寫,即備份程序形狀存放器,當(dāng)異常發(fā)生時(shí),SPSR用于保管CPSR的當(dāng)前值,從異常退出時(shí)那么可由SPSR來(lái)恢復(fù)CPSR。與CPU相關(guān)的存放器設(shè)置需求參考S3C2410的用戶手冊(cè)來(lái)實(shí)現(xiàn)。mrs r0,cpsrbic r0,r0,#0 x1forr r0,r0,#0 xd3msr cpsr,r03封鎖看門狗看門狗即watchdog timer,是一個(gè)定時(shí)器電路,普通有一個(gè)輸入叫喂狗,一個(gè)輸出到MCUMicro Controller Unit,多點(diǎn)控制單元的RST端復(fù)位端。MCU正常任務(wù)的時(shí)候,每隔一段時(shí)間輸出一個(gè)信號(hào)到喂狗端,給 WDTwatchdog timer的簡(jiǎn)寫清零,假設(shè)超越規(guī)定的時(shí)間不喂狗,普通在程序跑飛時(shí)WDT 定時(shí)超越,就會(huì)給出一個(gè)復(fù)位信號(hào)到MCU,然后MCU復(fù)位
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五股東協(xié)議補(bǔ)充協(xié)議-股東對(duì)公司可持續(xù)發(fā)展戰(zhàn)略的承諾
- 二零二五年度跨境拖車服務(wù)及關(guān)稅代理合同
- 二零二五年度商業(yè)廣場(chǎng)購(gòu)物中心房屋租賃與商業(yè)數(shù)據(jù)分析服務(wù)合同
- 2025年度閑置校舍租賃合同及校園內(nèi)環(huán)保能源利用合作協(xié)議
- 2025年度美容美發(fā)加盟合同解除書
- Unit 4 Did You Have a Nice Trip?單元基礎(chǔ)知識(shí)復(fù)習(xí)(含答案)
- 2025年度高校學(xué)生實(shí)習(xí)就業(yè)雙選協(xié)議書
- 二零二五年度企業(yè)員工社保權(quán)益自愿放棄協(xié)議范本
- 二零二五年度海洋地質(zhì)調(diào)查海域使用權(quán)租賃與研究開發(fā)協(xié)議
- 二零二五年度交通事故私了賠償處理協(xié)議
- 七年級(jí)數(shù)學(xué)蘇科版下冊(cè) 101 二元一次方程 課件
- 《財(cái)務(wù)風(fēng)險(xiǎn)的識(shí)別與評(píng)估管理國(guó)內(nèi)外文獻(xiàn)綜述》
- 海口市存量房買賣合同模板(范本)
- ZL50裝載機(jī)工作裝置設(shè)計(jì)
- 經(jīng)典文學(xué)作品中的女性形象研究外文文獻(xiàn)翻譯2016年
- 高爐煤氣安全知識(shí)的培訓(xùn)
- 2008 年全國(guó)高校俄語(yǔ)專業(yè)四級(jí)水平測(cè)試試卷
- 需求供給與均衡價(jià)格PPT課件
- 金融工程鄭振龍課后習(xí)題答案
- 時(shí)間單位換算表
- DTSD342-9N說(shuō)明書(精編版)
評(píng)論
0/150
提交評(píng)論