第4部分 Linux部分-3.BootLoader的移植_第1頁(yè)
第4部分 Linux部分-3.BootLoader的移植_第2頁(yè)
第4部分 Linux部分-3.BootLoader的移植_第3頁(yè)
第4部分 Linux部分-3.BootLoader的移植_第4頁(yè)
第4部分 Linux部分-3.BootLoader的移植_第5頁(yè)
已閱讀5頁(yè),還剩33頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、地址:中國(guó)深圳經(jīng)濟(jì)特區(qū)福田區(qū)中康路32號(hào)弘億大廈電話:6 傳真:9郵政編碼:518000 網(wǎng)址:http/地址:中國(guó)深圳市福田區(qū)上梅林梅林路10號(hào)申匯基大廈5樓電話: 3-672 傳真:1郵政編碼:518000 網(wǎng)址:http/1常用計(jì)算機(jī)的配置第一章Linux部分_3.BootLoader的移植第四部分2目 錄4.3.1 BootLoader 簡(jiǎn)介4.3.2 Blob 分析3系統(tǒng)的內(nèi)部結(jié)構(gòu)BootLoaderFSkernelAPPHardWare內(nèi)核代碼和各種驅(qū)動(dòng)的代碼44.3.1 BootLoader 簡(jiǎn)介BootLoader是什么?在操作系統(tǒng)內(nèi)核運(yùn)行之前運(yùn)行的一段小程序54.3.1 Bo

2、otLoader 簡(jiǎn)介BootLoader的作用初始化底層硬件建立內(nèi)存空間的映射圖調(diào)用操作系統(tǒng)內(nèi)核GPIO,Memory物理地址和虛擬地址的映射64.3.1 BootLoader 簡(jiǎn)介BootLoader的組成固件(Fireware)中boot代碼Stage1(匯編部分)Stage2(C部分)固件(Fireware)中boot代碼硬件檢測(cè)資源分配74.3.1 BootLoader 簡(jiǎn)介Stage1(匯編部分)的作用硬件設(shè)備初始化拷貝 Boot Loader 的 stage2 到 RAM 空間中為加載 Boot Loader 的 stage2 準(zhǔn)備 RAM 空間跳轉(zhuǎn)到 stage2 的 C 入口

3、點(diǎn)設(shè)置好堆棧84.3.1 BootLoader 簡(jiǎn)介Stage2(C部分)的作用初始化本階段常用的硬件設(shè)備內(nèi)存映射mmap將kernel image文件和根文件系統(tǒng)image從flash讀到RAM空間調(diào)用內(nèi)核為內(nèi)核設(shè)置啟動(dòng)參數(shù)94.3.1 BootLoader 簡(jiǎn)介BootLoader種類RedbootARMbootVIVIBlobU-Boot10Redboot介紹1、來(lái)源2、支持的處理器構(gòu)架3、特性Redhat公司隨eCos發(fā)布的一個(gè)BOOT方案發(fā)布:CPU架構(gòu): ARM,MIPS,MN10300,PowerPC, Renesas SHx,v850,x86等Redboot特性:支持ECOS,

4、Linux操作系統(tǒng)引導(dǎo)在線讀寫Flash支持串行口kermit,S-record下載代碼監(jiān)控(minitor)命令集:讀寫I/O,內(nèi)存,寄存器、 內(nèi)存、外設(shè)測(cè)試功能等Redboot4.3.1 BootLoader 簡(jiǎn)介11ARMboot介紹1、來(lái)源2、支持的處理器構(gòu)架3、特性ARMboot是一個(gè)ARM平臺(tái)的開(kāi)源固件項(xiàng)目,它特別基于PPCBoot,一個(gè)為PowerPC平臺(tái)上的系統(tǒng)提供類似功能的姊妹項(xiàng)目。發(fā)布:CPU架構(gòu):StrongARM ,ARM720T ,PXA250 等,是為基于ARM或者StrongARMCPU的嵌入式系統(tǒng)所設(shè)計(jì)的ARMboot特性:支持多種類型的FLASH 允許映像文件

5、經(jīng)由BOOTP、DHCP、TFTP從網(wǎng)絡(luò)傳輸support串口下載 Image允許內(nèi)存的顯示及修改ARMboot4.3.1 BootLoader 簡(jiǎn)介12VIVI介紹1、來(lái)源2、支持的處理器構(gòu)架3、特性vivi是由mizi公司設(shè)計(jì)為ARM處理器系列設(shè)計(jì)的一個(gè)bootloader 發(fā)布:CPU架構(gòu):ARMVIVI特性:使用串口和主機(jī)通信 VIVI4.3.1 BootLoader 簡(jiǎn)介13U_Boot介紹1、來(lái)源2、支持的處理器構(gòu)架3、特性U_boot全稱Universal Boot Loader,是遵循GPL條款的開(kāi)放源碼項(xiàng)目。從FADSROM、8xxROM、PPCBOOT逐步發(fā)展演化而來(lái)。發(fā)布

6、:CPU架構(gòu):PowerPC (MPC5xx,MPC8xx,MPC82xx,MPC7xx,MPC74xx4xx), ARM (ARM7,ARM9,StrongARM,Xscale),MIPS,x86U-boot特性:SCC/FEC以太網(wǎng)支持BOOTP/TFTP引導(dǎo)IP,MAC預(yù)置功能 在線讀寫FLASH,IIC,EEROM,RTC支持WatchDog,LCD logo等U_Boot4.3.1 BootLoader 簡(jiǎn)介14Blob介紹1、來(lái)源2、支持的處理器構(gòu)架3、特性Jan-Derk Bakker and Erik Mouw發(fā)布的,是專門為StrongARM 構(gòu)架下的LART設(shè)計(jì)的發(fā)布:CP

7、U架構(gòu):Blob支持SA1100的LART主板,但用戶也可以自行修改移植,像Xscal等Blob特性: 初始化硬件(CPU速度,存儲(chǔ)器)引導(dǎo)Linux內(nèi)核并提供ramdisk 給LART下載一個(gè)內(nèi)核或者ramdisk 給FLASH片更新內(nèi)核或者ramdisk測(cè)定存儲(chǔ)配置并通知內(nèi)核Blob4.3.1 BootLoader 簡(jiǎn)介15目 錄4.3.1 BootLoader 簡(jiǎn)介4.3.2 Blob 分析161、include2、src3、Utils包含頭文件主要源碼軟件附帶的工具集 Blob4.3.2 Blob 分析174.3.2 Blob 分析Blob啟動(dòng)流程(stage1)b start_sta

8、rt :bl define_gpiobl clock_enable bl setup_memory Main() ldrpc, =mainGPIO口的初始化GPIO口的初始化CPU主頻設(shè)置和內(nèi)存的初始化跳轉(zhuǎn)到main函數(shù)184.3.2 Blob 分析Blob啟動(dòng)流程(stage2)Main()uart_init()time_init() config_init()printf()iflash_init() eth_init()mdelay(1)_asm_(mov r0, #3; mcr p14,0,r0,c6,c0,0);autobootYautoboot_mode()Nwhile(!bExi

9、t)Nreturn 0;YDisplayMenu()iNum = getc()if(iNum =.)YbSelect = truewhile (!bSelect)NYswitch(iNum)Case.Case.N194.3.2 Blob 分析Blob啟動(dòng)流程(stage1).text.start 段.section .text.start.global _start_start :bstart段名的定義全局標(biāo)號(hào)的定義.section .textstart :bldefine_gpioblclock_enableblsetup_memory.text 段204.3.2 Blob 分析GPIO口初

10、始化 ldrr1, =GPIO_BASEldrr0, =_GPSR0strr0, r1, #GPSR0ldrr0, =_GPCR0strr0, r1, #GPCR0ldrr0, =_GAFR0Lstrr0, r1, #GAFR0Lldrr0, =_GAFR0Ustrr0, r1, #GAFR0Uldrr0, =_GPDR0strr0, r1, #GPDR0 #define GPIO_BASE0 x40E00000 #define _GPDR0 0 x00208000 | (116) #define GPDR00 x00CGPIO口的基址GPIO狀態(tài)寄存器的設(shè)置GPIO功能替換寄存器的設(shè)置GPI

11、O方向寄存器的設(shè)置214.3.2 Blob 分析GPIO口的內(nèi)部結(jié)構(gòu)圖方向寄存器功能替換寄存器狀態(tài)寄存器狀態(tài)寄存器224.3.2 Blob 分析GPIO口初始化 ldrr1, =GPIO_BASE.ldrr0, =_GPDR0strr0, r1, #GPDR0 #define GPIO_BASE0 x40E00000 #define _GPDR0 0 x00208000 | (1 8, UART_DLH);uart_put(BaudToDLV(UART_BAUDRATE) & 0 xFF, UART_DLL);.設(shè)置GPIO34為FFRXD設(shè)置串口波特率294.3.2 Blob 分析串口初始化

12、pxa_gpio_mode(GPIO34_FFRXD_MD);#define GPIO34_FFRXD_MD (34 | GPIO_ALT_FN_1_IN)#define GPIO_ALT_FN_1_IN0 x100GPIO34_FFRXD_MD=0 x122pxa_gpio_mode(0 x122);304.3.2 Blob 分析串口初始化void pxa_gpio_mode(int mode) /mode=0 x122 int gpio = mode & GPIO_MD_MASK_NR; /gpio=0 x22 int fn = (mode & GPIO_MD_MASK_FN) 8; /

13、fn= 0 x01 int gafr; if (mode & GPIO_MD_MASK_DIR) /if(0)GPDR(gpio) |= GPIO_bit(gpio); else GPDR(gpio) &= GPIO_bit(gpio); . return;#define GPIO_MD_MASK_NR 0 x07f#define GPIO_MD_MASK_FN 0 x300#define GPIO_MD_MASK_DIR 0 x080314.3.2 Blob 分析串口初始化void pxa_gpio_mode(int mode) /mode=0 x122 . / gpio=0 x22 fn=

14、 0 x01 if (mode & GPIO_MD_MASK_DIR) /if(0)GPDR(gpio) |= GPIO_bit(gpio); else GPDR(gpio) &= GPIO_bit(gpio); /(GPDR1)&=0 x04 gafr = GAFR(gpio) & (0 x3 (gpio) & 0 xf)*2); GAFR(gpio) = gafr | (fn (gpio) & 0 xf)*2); return;#define GPIO_bit(x) (1 (x) & 0 x1f) #define GPDR(x) (*(x) & 0 x7f) 3)# define _REG2(x,y)(*(volatile unsigned long *)(unsigned long)(x) + (y)324.3.2 Blob 分析串口初始化334.3.2 Blob 分析串口初始化void pxa_gpio_mode(int mode) /mode=0 x122 . / gpio=0 x22 fn= 0 x01 gafr = GAFR(gpio) & (0 x3 (gpio) & 0 xf)*2); /gafr=0 x?c? GAFR(gpio) = gafr | (fn (gpio) & 0 xf)*2); /GAFR1_L=0 x?d?

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論