版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
UBOOT中嵌TeacherXie
1ppt課件UBOOT中嵌1ppt課件提綱理論:BootLoader介紹Uboot介紹Uboot命令Uboot工作流程Uboot移植Uboot燒寫(xiě)實(shí)驗(yàn):移植UbootUboot使用2ppt課件提綱理論:2ppt課件第一節(jié)BootLoader介紹3ppt課件3ppt課件概念什么是BootLoader?4ppt課件概念4ppt課件軟件層次一個(gè)嵌入式系統(tǒng)從軟件角度來(lái)看分為三個(gè)層次:
1.引導(dǎo)加載程序包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。
2.Linux內(nèi)核特定于嵌入式平臺(tái)的定制內(nèi)核。
3.文件系統(tǒng)包括了系統(tǒng)命令和應(yīng)用程序。
5ppt課件軟件層次一個(gè)嵌入式系統(tǒng)從軟件角度來(lái)看分為三個(gè)層次:5ppt課軟件層次
一個(gè)同時(shí)裝有BootLoader、內(nèi)核的啟動(dòng)參數(shù)、內(nèi)核映像和根文件系統(tǒng)映像的固態(tài)存儲(chǔ)設(shè)備的典型空間分配結(jié)構(gòu)圖:6ppt課件軟件層次 一個(gè)同時(shí)裝有BootLoader、內(nèi)核的啟動(dòng)參數(shù)回憶PC
PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)是一段固件程序)和位于硬盤(pán)MBR中的引導(dǎo)程序(GRUB或LILO)一起組成。BIOS在完成硬件檢測(cè)和資源分配后,將硬盤(pán)中的引導(dǎo)程序讀到系統(tǒng)內(nèi)存中然后將控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序的主要任務(wù)是將內(nèi)核從硬盤(pán)上讀到內(nèi)存中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,即啟動(dòng)操作系統(tǒng)。7ppt課件回憶PC PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)是一段固件定義
在嵌入式系統(tǒng)中,通常沒(méi)有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來(lái)完成。比如在一個(gè)基于
ARM7TDMI
core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址
0x00000000開(kāi)始執(zhí)行。而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。8ppt課件定義 在嵌入式系統(tǒng)中,通常沒(méi)有像BIOS那樣的固件程序,因此定義 簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備。9ppt課件定義 簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)運(yùn)行之前運(yùn)功能
BootLoader的主要任務(wù)是初始化硬件(如:串口,內(nèi)存),然后將內(nèi)核映象從Flash中讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也就是啟動(dòng)操作系統(tǒng)。10ppt課件功能 BootLoader的主要任務(wù)是初始化硬件(如:串口安裝
系統(tǒng)加電或復(fù)位后,所有的CPU通常都從CPU制造商預(yù)先安排地址開(kāi)始執(zhí)行。比如,S3C2410在復(fù)位后從地址0x00000000起開(kāi)始執(zhí)行。而嵌入式系統(tǒng)則將固態(tài)存儲(chǔ)設(shè)備(比如:FLASH)安排在這個(gè)地址上,而bootloader程序又安排在固態(tài)存儲(chǔ)器的最前端,這樣就能保證在系統(tǒng)加電后,CPU首先執(zhí)行BootLoader程序。11ppt課件安裝 系統(tǒng)加電或復(fù)位后,所有的CPU通常都從CPU制造商預(yù)先移植Q:什么叫bootloader移植?Q:為什么需要移植?12ppt課件移植12ppt課件移植
每種不同的CPU體系結(jié)構(gòu)都有不同的BootLoader。除了依賴(lài)于CPU的體系結(jié)構(gòu)外,BootLoader還依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置,比如板卡的硬件地址分配,外設(shè)芯片的類(lèi)型等。這也就是說(shuō),對(duì)于兩塊不同的開(kāi)發(fā)板而言,即使它們是基于同一種CPU而構(gòu)建的,但如果他們的硬件資源或配置不一致的話,要想在一塊開(kāi)發(fā)板上運(yùn)行的BootLoader程序也能在另一塊板子上運(yùn)行,還是需要作修改。13ppt課件移植
每種不同的CPU體系結(jié)構(gòu)都有不同的BootLoade流程
BootLoader的啟動(dòng)過(guò)程可分為單階段(Single-Stage)和多階段(Multi-Stage)兩種,通常多階段的BootLoader具有更復(fù)雜的功能,更好的可移植性。從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的BootLoader大多采用兩階段,即啟動(dòng)過(guò)程可以分為stage1和stage2:stage1完成初始化硬件,為stage2準(zhǔn)備內(nèi)存空間,并將stage2復(fù)制到內(nèi)存中,設(shè)置堆棧,然后跳轉(zhuǎn)到stage2。14ppt課件流程 BootLoader的啟動(dòng)過(guò)程可分為單階段(Sing流程
BootLoader的stage1通常包括以下步驟:
·硬件設(shè)備初始化
·為加載BootLoader的stage2準(zhǔn)備RAM空間
·拷貝BootLoader的stage2到RAM空間中
·設(shè)置好堆棧(why??)
·跳轉(zhuǎn)到stage2的C入口點(diǎn)15ppt課件流程 BootLoader的stage1通常包括以下步流程BootLoader的stage2
通常包括以下步驟:
·初始化本階段要使用到的硬件設(shè)備
·將內(nèi)核映像和根文件系統(tǒng)映像從flash上讀到RAM中
·調(diào)用內(nèi)核16ppt課件流程BootLoader的stage2通常包括以下步驟內(nèi)存分布17ppt課件內(nèi)存分布17ppt課件第二節(jié)UBOOT介紹18ppt課件18ppt課件作用
Uboot是德國(guó)DENX小組開(kāi)發(fā)的用于多種嵌入式CPU(MIPS、x86、ARM、XScale等)的bootloader程序,UBoot不僅支持嵌入式Linux系統(tǒng)的引導(dǎo),還支持VxWorks,QNX等多種嵌入式操作系統(tǒng)。19ppt課件作用 Uboot是德國(guó)DENX小組開(kāi)發(fā)的用于多種嵌入式CPU下載
從下面地址可以下載到uboot的源代碼:/projects/uboot
20ppt課件下載 從下面地址可以下載到uboot的源代碼:http://目錄樹(shù)進(jìn)入到UBOOT目錄,可以得到如下的目錄結(jié)構(gòu):|--
board|--
common|--
cpu|--
disk|--
doc|--
drivers|--
dtt|--
examples|--
fs|--
include21ppt課件目錄樹(shù)進(jìn)入到UBOOT目錄,可以得到如下的目錄結(jié)構(gòu):21pp目錄樹(shù)|--
lib_arm|--
lib_generic|--
lib_i386|--
lib_m68k|--
lib_microblaze|--
lib_mips|--
lib_nios|--
lib_nios2|--
lib_ppc|--
net|--
post|--
rtc`--
tools22ppt課件目錄樹(shù)|--
lib_arm22ppt課件目錄結(jié)構(gòu)(展示)Board 和開(kāi)發(fā)板有關(guān)的文件。每一個(gè)開(kāi)發(fā)板都以一個(gè)子目錄出現(xiàn)在當(dāng)前目錄中,比如:SMDK2410,子目錄中存放與開(kāi)發(fā)板相關(guān)的文件。Common 實(shí)現(xiàn)Uboot支持的命令。Cpu 與特定CPU架構(gòu)相關(guān)的代碼,每一款Uboot下支持的CPU在該目錄下對(duì)應(yīng)一個(gè)子目錄,比如有子目錄arm920t等。23ppt課件目錄結(jié)構(gòu)(展示)Board23ppt課件Disk對(duì)磁盤(pán)的支持。Doc 文檔目錄。Uboot有非常完善的文檔,推薦大家參考閱讀。
Drivers Uboot支持的設(shè)備驅(qū)動(dòng)程序都放在該目錄,比如各種網(wǎng)卡、支持CFI的Flash、串口和USB等。目錄結(jié)構(gòu)(展示)24ppt課件Disk目錄結(jié)構(gòu)(展示)24ppt課件目錄結(jié)構(gòu)(展示)Fs文件系統(tǒng)的支持。Include Uboot使用的頭文件。該目錄下configs目錄有與開(kāi)發(fā)板相關(guān)的配置頭文件,如smdk2410.h。該目錄下的asm目錄有與CPU體系結(jié)構(gòu)相關(guān)的頭文件。25ppt課件目錄結(jié)構(gòu)(展示)Fs25ppt課件目錄結(jié)構(gòu)(展示)Net 與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,例如:TFTP協(xié)議、RARP協(xié)議的實(shí)現(xiàn)。Tools 生成Uboot的工具,如:mkimage,crc等等。26ppt課件目錄結(jié)構(gòu)(展示)Net26ppt課件編譯
Uboot的Makefile從功能上可以分成兩個(gè)部分:1、執(zhí)行每種board相關(guān)的配置2、編譯生成uboot.bin文件27ppt課件編譯 Uboot的Makefile從功能上可以分成兩個(gè)部分:編譯(演示) Uboot.bin的生成也分為兩步,以smdk2410為例來(lái)說(shuō)明,如下:1. 對(duì)于board進(jìn)行配置: $makesmdk2410_config2. 進(jìn)行編譯生成u-boot.bin: $makeCROSS_COMPILE=arm-linux-
28ppt課件編譯(演示) Uboot.bin的生成也分為兩步,以smdk
第三節(jié)UBOOT命令29ppt課件29ppt課件常用命令(演示)
盡管UBOOT提供了豐富的命令集,但不同的單板所支持的命令并不一定一樣(可配置,How?后面章節(jié)),help命令可用于察看當(dāng)前單板所支持的命令。2410#helpautoscr-runscriptfrommemorybase-printorsetaddressoffsetbdinfo-printBoardInfostructureboot-bootdefault,i.e.,run'bootcmd'bootm-bootapplicationimagefrommemorybootp-bootimagevianetworkusingBootP/TFTPprotocol30ppt課件常用命令(演示) 盡管UBOOT提供了豐富的命令集,但不同的環(huán)境變量相關(guān)(演示)
Printenv打印環(huán)境變量usage:
printenv
-printvaluesofallenvironmentvariables
printenvname...
-printvalueofenvironmentvariable'name'Uboot>printenv
baudrate=115200
ipaddr=
ethaddr=12:34:56:78:9A:BC
serverip=31ppt課件環(huán)境變量相關(guān)(演示)Printenv打印環(huán)境變量31pp環(huán)境變量相關(guān)(演示)Setenv設(shè)置新的變量(修改已有變量)setenvnamevalue...
-setenvironmentvariable'name'to'value...‘setenvname
-deleteenvironmentvariable'name'Uboot>setenvmyboardAT91RM9200DK
Uboot>printenv
ethaddr=12:34:56:78:9A:BC
serverip=
myboard=AT91RM9200DK32ppt課件環(huán)境變量相關(guān)(演示)Setenv設(shè)置新的變量(修改已有變量環(huán)境變量相關(guān)(演示)Saveenv保存變量 將當(dāng)前定義的所有變量及其值存入flash中。33ppt課件環(huán)境變量相關(guān)(演示)Saveenv保存變量33ppt課件文件下載(演示)Tftp通過(guò)網(wǎng)絡(luò)下載文件*使用tftp,需要先配置好網(wǎng)絡(luò)Uboot>setenvethaddr12:34:56:78:9A:BCUboot>setenvipaddrUboot>setenvserverip54
(tftp服務(wù)器的地址)例:Uboot>tftp32000000vmlinux
把server(IP=環(huán)境變量中設(shè)置的serverip)中服務(wù)目錄
下的vmlinux通過(guò)TFTP讀入到0x32000000處。34ppt課件文件下載(演示)Tftp通過(guò)網(wǎng)絡(luò)下載文件34ppt課件內(nèi)存操作命令(演示)Md顯示內(nèi)存區(qū)的內(nèi)容。md采用十六進(jìn)制和ASCII碼兩種形式來(lái)顯示存儲(chǔ)單元的內(nèi)容。這條命令還可以采用長(zhǎng)度標(biāo)識(shí)符.l,.w和.b:md[.b,.w,.l]addressmd.w10000000100000:27051956505043426f6f7420312e312e'..VPPCBoot1.1.00100010:3520284d61722032312032303032202d5(Mar212002-00100020:2031393a35353a30342900000000000019:55:04)......35ppt課件內(nèi)存操作命令(演示)Md顯示內(nèi)存區(qū)的內(nèi)容。35ppt課件內(nèi)存操作命令(演示)Mm修改內(nèi)存,地址自動(dòng)遞增。mm[.b,.w,.l]addressMm提供了一種互動(dòng)修改存儲(chǔ)器內(nèi)容的方法。它會(huì)顯示地址和當(dāng)前值,然后提示用戶輸入。如果你輸入了一個(gè)合法的十六進(jìn)制數(shù),這個(gè)新的值將會(huì)被寫(xiě)入該地址。然后提示下一個(gè)地址。如果你沒(méi)有輸入任何值,只是按了一下回車(chē),那么該地址的內(nèi)容保持不變。如果想結(jié)束輸入,則輸入空格,然后回車(chē)。=>mm10000000100000:27051956?000100004:50504342?AABBCCDD00100008:6f6f7420?0123456736ppt課件內(nèi)存操作命令(演示)Mm修改內(nèi)存,地址自動(dòng)遞增。36pptFlash操作命令(演示)Flinfo
查看Flash扇區(qū)信息Usage:Uboot>Flinfo
37ppt課件Flash操作命令(演示)Flinfo查看Flash扇區(qū)信Flash操作命令(演示)Protect
Flash寫(xiě)保護(hù)
打開(kāi)或關(guān)閉扇區(qū)寫(xiě)保護(hù)用法:protectoffall
關(guān)閉所有扇區(qū)的寫(xiě)保護(hù)protectonall打開(kāi)所有扇區(qū)的寫(xiě)保護(hù)protectoffstartend
關(guān)閉從start到end扇區(qū)的寫(xiě)保護(hù)(start為要關(guān)閉的第1個(gè)扇區(qū)的起始地址,end為要關(guān)閉的最后一個(gè)扇區(qū)的結(jié)束地址)protectonstartend打開(kāi)從start到end扇區(qū)的寫(xiě)保護(hù)38ppt課件Flash操作命令(演示)ProtectFlash寫(xiě)保護(hù)Flash操作命令(演示)Erase擦除flash扇區(qū)用法:erasestartend擦除從start到end的扇區(qū),start為要擦除的第1個(gè)扇區(qū)的起始地址,end為要擦除的最后一個(gè)扇區(qū)的結(jié)束地址(在使用cp命令向Nor型Flash寫(xiě)入數(shù)據(jù)之前必須先使用erase命令擦除flash,因?yàn)閚orflash按字節(jié)寫(xiě)入時(shí),無(wú)法寫(xiě)入1,所以必須通過(guò)擦除來(lái)寫(xiě)入1)。例:erase300001effff。39ppt課件Flash操作命令(演示)Erase擦除flash扇區(qū)39Flash操作命令(演示)Cp數(shù)據(jù)拷貝。Cp[.b,.w,.l]saddressdaddresslenCp提供了一種內(nèi)存與內(nèi)存,內(nèi)存與Flash之間數(shù)據(jù)拷貝的方法。例:cp.b3000800020000100000
將內(nèi)存地址0x30008000處的數(shù)據(jù)(長(zhǎng)度為0x100000)拷貝到地址0x20000處(Flash中)cp.b3080000013000070000
將內(nèi)存地址0x30800000處的數(shù)據(jù)(長(zhǎng)度為0x70000)拷貝到地址0x130000處(Flash中)40ppt課件Flash操作命令(演示)Cp數(shù)據(jù)拷貝。40ppt課件程序執(zhí)行指令(演示)
Go執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)單的跳轉(zhuǎn)到指定地址goaddr[arg...]
-startapplicationataddress'addr‘,passing'arg'asarguments
41ppt課件程序執(zhí)行指令(演示) Go執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)程序執(zhí)行指令Bootm執(zhí)行內(nèi)存中的二進(jìn)制代碼bootm[addr[arg...]]
-bootapplicationimagestoredinmemory
passingarguments'arg...';whenbootingaLinuxkernel,'arg'canbetheaddressofaninitrdimage 要求二進(jìn)制代碼為制定格式的。通常為mkimage處理過(guò)的二進(jìn)制文件。42ppt課件程序執(zhí)行指令Bootm執(zhí)行內(nèi)存中的二進(jìn)制代碼42ppt課件信息類(lèi)指令bdinfo–顯示開(kāi)發(fā)板信息
bdinfo命令(簡(jiǎn)寫(xiě)為bdi)將在終端顯示諸如內(nèi)存地址和大小、時(shí)鐘頻率、MAC地址等信息。這些信息在傳遞給Linux內(nèi)核一些參數(shù)時(shí)可能會(huì)用到。43ppt課件信息類(lèi)指令bdinfo–顯示開(kāi)發(fā)板信息43ppt課件技巧(演示)設(shè)置自動(dòng)啟動(dòng)
sbc2410=>setenvbootcmdtftp30008000zImage\;go30080000sbc2410=>saveenv44ppt課件技巧(演示)設(shè)置自動(dòng)啟動(dòng)44ppt課件第四節(jié)Uboot工作流程45ppt課件45ppt課件工作模式 大多數(shù)BootLoader都包含兩種不同的操作模式:“啟動(dòng)模式”和“下載模式”,這種區(qū)別僅對(duì)于開(kāi)發(fā)人員才有意義,但從最終用戶的角度看,BootLoader的作用就是用來(lái)加載操作系統(tǒng),而不存在所謂的啟動(dòng)模式與下載模式。46ppt課件工作模式 大多數(shù)BootLoader都包含兩種不同的操作模式啟動(dòng)模式 這種模式也稱(chēng)為“自主”模式,是指BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)自動(dòng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒(méi)有用戶的介入。這種模式是BootLoader的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時(shí)侯,BootLoader顯然必須工作在這種模式下。47ppt課件啟動(dòng)模式 這種模式也稱(chēng)為“自主”模式,是指BootLoa下載模式
在這種模式下,目標(biāo)機(jī)上的BootLoader將通過(guò)串口或網(wǎng)絡(luò)等通信手段從主機(jī)(Host)下載文件,然后控制啟動(dòng)流程。48ppt課件下載模式 在這種模式下,目標(biāo)機(jī)上的BootLoader將流程參考文檔uboot啟動(dòng)流程49ppt課件流程49ppt課件第五節(jié)Uboot移植50ppt課件50ppt課件單板配置Q:為什么需要對(duì)Uboot做移植?A:BootLoader依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置Q:具體的板級(jí)設(shè)備的配置在哪里?A:單板的配置文件位于include/configs/<board_name>.h
<board_name>用相應(yīng)的BOARD定義代替(例:smdk2410.h)51ppt課件單板配置Q:為什么需要對(duì)Uboot做移植?51ppt課件單板配置Q:Uboot移植都需要做些什么?A:根據(jù)開(kāi)發(fā)板硬件特性修改配置文件是其中最重要的一項(xiàng)工作Q:配置文件中都有些什么信息?A:請(qǐng)看下頁(yè)范例(smdk2410.h)52ppt課件單板配置Q:Uboot移植都需要做些什么?52ppt課件Smdk2410.h#defineCONFIG_ARM920T 1 /*CPU類(lèi)型 */#define CONFIG_S3C24101/*MCU類(lèi)型*/#defineCONFIG_SMDK2410 1 /*開(kāi)發(fā)板型號(hào)*/53ppt課件Smdk2410.h#defineCONFIG_ARM92Smdk2410.h#defineUSE_920T_MMU1/*使用MMU*/#undefCONFIG_USE_IRQ /*不使用IRQ/FIQ*//*malloc池大小*/#defineCFG_MALLOC_LEN(CFG_ENV_SIZE+128*1024)#defineCFG_GBL_DATA_SIZE 128 /*數(shù)據(jù)段大小128字節(jié)*/54ppt課件Smdk2410.h#defineUSE_920T_MMUSmdk2410.h#defineCONFIG_DRIVER_CS8900 1 /*一個(gè)CS8900網(wǎng)卡*/#defineCS8900_BASE 0x19000300/*CS8900A基地址*/#defineCONFIG_SERIAL11 /*使用串口1*/#defineCONFIG_BAUDRATE 115200/*波特率*/55ppt課件Smdk2410.h#defineCONFIG_DRIVESmdk2410.h#defineCONFIG_COMMANDS\ (CONFIG_CMD_DFL |\ CFG_CMD_CACHE |\ /*CFG_CMD_NAND |*/\ /*CFG_CMD_EEPROM|*/\ /*CFG_CMD_I2C |*/\ /*CFG_CMD_USB |*/\ CFG_CMD_REGINFO|\ CFG_CMD_DATE |\ CFG_CMD_ELF)/*定義使用的命令,可添加額外命令,如PING*/56ppt課件Smdk2410.h#defineCONFIG_COMMASmdk2410.h#defineCONFIG_BOOTDELAY3/*啟動(dòng)等待時(shí)間*/#defineCONFIG_BOOTARGS "root=ramfsdevfs=mountconsole=ttySA0,9600“/*內(nèi)核啟動(dòng)參數(shù)*/#defineCONFIG_ETHADDR 08:00:3e:26:0a:5b#defineCONFIG_NETMASK#defineCONFIG_IPADDR10#defineCONFIG_SERVERIP 57ppt課件Smdk2410.h#defineCONFIG_BOOTDSmdk2410.h#defineCONFIG_BOOTCOMMAND "tftp;bootm"#define CFG_PROMPT "SMDK2410#" #definePHYS_SDRAM_10x30000000/*SDRAMBank#1*/#definePHYS_SDRAM_1_SIZE 0x04000000/*64MB*/#define CFG_LOAD_ADDR0x33000000/*默認(rèn)的加載地址*/#defineCFG_BAUDRATE_TABLE {9600,19200,38400,57600,115200}/*可用的波特率*/58ppt課件Smdk2410.h#defineCONFIG_BOOTCSmdk2410.h#defineCONFIG_NR_DRAM_BANKS 1 /*有一片SDRAM*/#definePHYS_FLASH_1 0x00000000/*FLASH1的基地址*/#defineCFG_FLASH_BASE PHYS_FLASH_1/*FLASH的基地址*/59ppt課件Smdk2410.h#defineCONFIG_NR_DR移植Q:怎么做Uboot的移植呢?60ppt課件移植60ppt課件移植方法
移植U-Boot工作包括添加開(kāi)發(fā)板硬件相關(guān)的文件、配置選項(xiàng),然后配置編譯。
61ppt課件移植方法移植U-Boot工作包括添加開(kāi)發(fā)板硬件相關(guān)移植方法開(kāi)始移植之前,首先要分析U-Boot已經(jīng)支持的開(kāi)發(fā)板,選擇出硬件配置最接近的開(kāi)發(fā)板。選擇的原則是,首先處理器相同,其次處理器體系結(jié)構(gòu)相同,然后是以太網(wǎng)接口等外圍接口相同。還要驗(yàn)證一下這個(gè)參考開(kāi)發(fā)板的U-Boot,至少能夠配置編譯通過(guò)。62ppt課件移植方法開(kāi)始移植之前,首先要分析U-Boot已經(jīng)支移植范例
以SBC2410開(kāi)發(fā)板為例,該開(kāi)發(fā)板采用S3c2410芯片。而UBoot-1.1.4版本支持SMDK2410開(kāi)發(fā)板,并且SMDK2410同樣采用S3c2410芯片,因此選取SMDK2410作為移植參考。63ppt課件移植范例 以SBC2410開(kāi)發(fā)板為例,該開(kāi)發(fā)板采用S3移植步驟移植U-Boot的基本步驟如下:在頂層Makefile中為開(kāi)發(fā)板添加新的配置選項(xiàng),使用已有的配置項(xiàng)目為例smdk2410_config
:
unconfig
@./mkconfig$(@:_config=)armarm920tsmdk2410NULLs3c24x0
參考上面2行,添加下面2行:sbc2410_config
:
unconfig
@./mkconfig$(@:_config=)armarm920tsbc2410NULLs3c24x064ppt課件移植步驟移植U-Boot的基本步驟如下:64ppt課件移植步驟arm:
CPU架構(gòu)arm920t:
CPU類(lèi)型,對(duì)應(yīng)cpu/arm920t目錄sbc2410:
開(kāi)發(fā)板型號(hào),對(duì)應(yīng)board/sbc2410目錄NULL:開(kāi)發(fā)者s3c24x0:
片上系統(tǒng)(SOC)65ppt課件移植步驟arm:
CPU架構(gòu)65ppt課件移植步驟2.創(chuàng)建一個(gè)新目錄存放開(kāi)發(fā)板相關(guān)的代碼,并且添加文件(如果以上文件從其他目錄copy來(lái)的,注意修改Makefile)。board/sbc2410/config.mkboard/sbc2410/flash.cboard/sbc2410/sbc2410.cboard/sbc2410/Makefileboard/sbc2410/u-boot.lds66ppt課件移植步驟2.創(chuàng)建一個(gè)新目錄存放開(kāi)發(fā)板相關(guān)的代碼,并且添加文移植步驟3.為開(kāi)發(fā)板添加新的配置文件先復(fù)制參考開(kāi)發(fā)板的配置文件,再修改。例如:$cpinclude/configs/smdk2410.h
include/configs/sbc2410.h4.配置開(kāi)發(fā)板$makesbc2410_config5.編譯U-Boot 執(zhí)行makeCROSS_COMPILE=arm-linux-命令,編譯成功可以得到U-Boot映像。67ppt課件移植步驟3.為開(kāi)發(fā)板添加新的配置文件67ppt課件移植步驟6.燒寫(xiě)Uboot
參考手冊(cè)sjf2410_v4.pdf
大功告成,啟動(dòng)開(kāi)發(fā)板!?。?8ppt課件移植步驟6.燒寫(xiě)Uboot68ppt課件常見(jiàn)問(wèn)題編譯時(shí)出現(xiàn)“invalidoptionabi=apcs-gnu”錯(cuò)誤解決辦法:make時(shí)指定CROSS_COMPILE=arm-linux-69ppt課件常見(jiàn)問(wèn)題編譯時(shí)出現(xiàn)“invalidoptionabi=實(shí)驗(yàn)一移植Uboot移植Uboot到SBC2410板具備Ping命令70ppt課件實(shí)驗(yàn)一70ppt課件實(shí)驗(yàn)二Uboot命令使用Uboot提供的命令71ppt課件實(shí)驗(yàn)二71ppt課件UBOOT中嵌TeacherXie
72ppt課件UBOOT中嵌1ppt課件提綱理論:BootLoader介紹Uboot介紹Uboot命令Uboot工作流程Uboot移植Uboot燒寫(xiě)實(shí)驗(yàn):移植UbootUboot使用73ppt課件提綱理論:2ppt課件第一節(jié)BootLoader介紹74ppt課件3ppt課件概念什么是BootLoader?75ppt課件概念4ppt課件軟件層次一個(gè)嵌入式系統(tǒng)從軟件角度來(lái)看分為三個(gè)層次:
1.引導(dǎo)加載程序包括固化在固件(firmware)中的boot代碼(可選),和BootLoader兩大部分。
2.Linux內(nèi)核特定于嵌入式平臺(tái)的定制內(nèi)核。
3.文件系統(tǒng)包括了系統(tǒng)命令和應(yīng)用程序。
76ppt課件軟件層次一個(gè)嵌入式系統(tǒng)從軟件角度來(lái)看分為三個(gè)層次:5ppt課軟件層次
一個(gè)同時(shí)裝有BootLoader、內(nèi)核的啟動(dòng)參數(shù)、內(nèi)核映像和根文件系統(tǒng)映像的固態(tài)存儲(chǔ)設(shè)備的典型空間分配結(jié)構(gòu)圖:77ppt課件軟件層次 一個(gè)同時(shí)裝有BootLoader、內(nèi)核的啟動(dòng)參數(shù)回憶PC
PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)是一段固件程序)和位于硬盤(pán)MBR中的引導(dǎo)程序(GRUB或LILO)一起組成。BIOS在完成硬件檢測(cè)和資源分配后,將硬盤(pán)中的引導(dǎo)程序讀到系統(tǒng)內(nèi)存中然后將控制權(quán)交給引導(dǎo)程序。引導(dǎo)程序的主要任務(wù)是將內(nèi)核從硬盤(pán)上讀到內(nèi)存中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,即啟動(dòng)操作系統(tǒng)。78ppt課件回憶PC PC機(jī)中的引導(dǎo)加載程序由BIOS(其本質(zhì)是一段固件定義
在嵌入式系統(tǒng)中,通常沒(méi)有像BIOS那樣的固件程序,因此整個(gè)系統(tǒng)的加載啟動(dòng)任務(wù)就完全由BootLoader來(lái)完成。比如在一個(gè)基于
ARM7TDMI
core的嵌入式系統(tǒng)中,系統(tǒng)在上電或復(fù)位時(shí)都從地址
0x00000000開(kāi)始執(zhí)行。而在這個(gè)地址處安排的通常就是系統(tǒng)的BootLoader程序。79ppt課件定義 在嵌入式系統(tǒng)中,通常沒(méi)有像BIOS那樣的固件程序,因此定義 簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)運(yùn)行之前運(yùn)行的一段小程序。通過(guò)這段小程序,可以初始化硬件設(shè)備,從而將系統(tǒng)的軟硬件環(huán)境帶到一個(gè)合適的狀態(tài),以便為最終調(diào)用操作系統(tǒng)做好準(zhǔn)備。80ppt課件定義 簡(jiǎn)單地說(shuō),BootLoader就是在操作系統(tǒng)運(yùn)行之前運(yùn)功能
BootLoader的主要任務(wù)是初始化硬件(如:串口,內(nèi)存),然后將內(nèi)核映象從Flash中讀到RAM中,然后跳轉(zhuǎn)到內(nèi)核的入口點(diǎn)去運(yùn)行,也就是啟動(dòng)操作系統(tǒng)。81ppt課件功能 BootLoader的主要任務(wù)是初始化硬件(如:串口安裝
系統(tǒng)加電或復(fù)位后,所有的CPU通常都從CPU制造商預(yù)先安排地址開(kāi)始執(zhí)行。比如,S3C2410在復(fù)位后從地址0x00000000起開(kāi)始執(zhí)行。而嵌入式系統(tǒng)則將固態(tài)存儲(chǔ)設(shè)備(比如:FLASH)安排在這個(gè)地址上,而bootloader程序又安排在固態(tài)存儲(chǔ)器的最前端,這樣就能保證在系統(tǒng)加電后,CPU首先執(zhí)行BootLoader程序。82ppt課件安裝 系統(tǒng)加電或復(fù)位后,所有的CPU通常都從CPU制造商預(yù)先移植Q:什么叫bootloader移植?Q:為什么需要移植?83ppt課件移植12ppt課件移植
每種不同的CPU體系結(jié)構(gòu)都有不同的BootLoader。除了依賴(lài)于CPU的體系結(jié)構(gòu)外,BootLoader還依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置,比如板卡的硬件地址分配,外設(shè)芯片的類(lèi)型等。這也就是說(shuō),對(duì)于兩塊不同的開(kāi)發(fā)板而言,即使它們是基于同一種CPU而構(gòu)建的,但如果他們的硬件資源或配置不一致的話,要想在一塊開(kāi)發(fā)板上運(yùn)行的BootLoader程序也能在另一塊板子上運(yùn)行,還是需要作修改。84ppt課件移植
每種不同的CPU體系結(jié)構(gòu)都有不同的BootLoade流程
BootLoader的啟動(dòng)過(guò)程可分為單階段(Single-Stage)和多階段(Multi-Stage)兩種,通常多階段的BootLoader具有更復(fù)雜的功能,更好的可移植性。從固態(tài)存儲(chǔ)設(shè)備上啟動(dòng)的BootLoader大多采用兩階段,即啟動(dòng)過(guò)程可以分為stage1和stage2:stage1完成初始化硬件,為stage2準(zhǔn)備內(nèi)存空間,并將stage2復(fù)制到內(nèi)存中,設(shè)置堆棧,然后跳轉(zhuǎn)到stage2。85ppt課件流程 BootLoader的啟動(dòng)過(guò)程可分為單階段(Sing流程
BootLoader的stage1通常包括以下步驟:
·硬件設(shè)備初始化
·為加載BootLoader的stage2準(zhǔn)備RAM空間
·拷貝BootLoader的stage2到RAM空間中
·設(shè)置好堆棧(why??)
·跳轉(zhuǎn)到stage2的C入口點(diǎn)86ppt課件流程 BootLoader的stage1通常包括以下步流程BootLoader的stage2
通常包括以下步驟:
·初始化本階段要使用到的硬件設(shè)備
·將內(nèi)核映像和根文件系統(tǒng)映像從flash上讀到RAM中
·調(diào)用內(nèi)核87ppt課件流程BootLoader的stage2通常包括以下步驟內(nèi)存分布88ppt課件內(nèi)存分布17ppt課件第二節(jié)UBOOT介紹89ppt課件18ppt課件作用
Uboot是德國(guó)DENX小組開(kāi)發(fā)的用于多種嵌入式CPU(MIPS、x86、ARM、XScale等)的bootloader程序,UBoot不僅支持嵌入式Linux系統(tǒng)的引導(dǎo),還支持VxWorks,QNX等多種嵌入式操作系統(tǒng)。90ppt課件作用 Uboot是德國(guó)DENX小組開(kāi)發(fā)的用于多種嵌入式CPU下載
從下面地址可以下載到uboot的源代碼:/projects/uboot
91ppt課件下載 從下面地址可以下載到uboot的源代碼:http://目錄樹(shù)進(jìn)入到UBOOT目錄,可以得到如下的目錄結(jié)構(gòu):|--
board|--
common|--
cpu|--
disk|--
doc|--
drivers|--
dtt|--
examples|--
fs|--
include92ppt課件目錄樹(shù)進(jìn)入到UBOOT目錄,可以得到如下的目錄結(jié)構(gòu):21pp目錄樹(shù)|--
lib_arm|--
lib_generic|--
lib_i386|--
lib_m68k|--
lib_microblaze|--
lib_mips|--
lib_nios|--
lib_nios2|--
lib_ppc|--
net|--
post|--
rtc`--
tools93ppt課件目錄樹(shù)|--
lib_arm22ppt課件目錄結(jié)構(gòu)(展示)Board 和開(kāi)發(fā)板有關(guān)的文件。每一個(gè)開(kāi)發(fā)板都以一個(gè)子目錄出現(xiàn)在當(dāng)前目錄中,比如:SMDK2410,子目錄中存放與開(kāi)發(fā)板相關(guān)的文件。Common 實(shí)現(xiàn)Uboot支持的命令。Cpu 與特定CPU架構(gòu)相關(guān)的代碼,每一款Uboot下支持的CPU在該目錄下對(duì)應(yīng)一個(gè)子目錄,比如有子目錄arm920t等。94ppt課件目錄結(jié)構(gòu)(展示)Board23ppt課件Disk對(duì)磁盤(pán)的支持。Doc 文檔目錄。Uboot有非常完善的文檔,推薦大家參考閱讀。
Drivers Uboot支持的設(shè)備驅(qū)動(dòng)程序都放在該目錄,比如各種網(wǎng)卡、支持CFI的Flash、串口和USB等。目錄結(jié)構(gòu)(展示)95ppt課件Disk目錄結(jié)構(gòu)(展示)24ppt課件目錄結(jié)構(gòu)(展示)Fs文件系統(tǒng)的支持。Include Uboot使用的頭文件。該目錄下configs目錄有與開(kāi)發(fā)板相關(guān)的配置頭文件,如smdk2410.h。該目錄下的asm目錄有與CPU體系結(jié)構(gòu)相關(guān)的頭文件。96ppt課件目錄結(jié)構(gòu)(展示)Fs25ppt課件目錄結(jié)構(gòu)(展示)Net 與網(wǎng)絡(luò)協(xié)議棧相關(guān)的代碼,例如:TFTP協(xié)議、RARP協(xié)議的實(shí)現(xiàn)。Tools 生成Uboot的工具,如:mkimage,crc等等。97ppt課件目錄結(jié)構(gòu)(展示)Net26ppt課件編譯
Uboot的Makefile從功能上可以分成兩個(gè)部分:1、執(zhí)行每種board相關(guān)的配置2、編譯生成uboot.bin文件98ppt課件編譯 Uboot的Makefile從功能上可以分成兩個(gè)部分:編譯(演示) Uboot.bin的生成也分為兩步,以smdk2410為例來(lái)說(shuō)明,如下:1. 對(duì)于board進(jìn)行配置: $makesmdk2410_config2. 進(jìn)行編譯生成u-boot.bin: $makeCROSS_COMPILE=arm-linux-
99ppt課件編譯(演示) Uboot.bin的生成也分為兩步,以smdk
第三節(jié)UBOOT命令100ppt課件29ppt課件常用命令(演示)
盡管UBOOT提供了豐富的命令集,但不同的單板所支持的命令并不一定一樣(可配置,How?后面章節(jié)),help命令可用于察看當(dāng)前單板所支持的命令。2410#helpautoscr-runscriptfrommemorybase-printorsetaddressoffsetbdinfo-printBoardInfostructureboot-bootdefault,i.e.,run'bootcmd'bootm-bootapplicationimagefrommemorybootp-bootimagevianetworkusingBootP/TFTPprotocol101ppt課件常用命令(演示) 盡管UBOOT提供了豐富的命令集,但不同的環(huán)境變量相關(guān)(演示)
Printenv打印環(huán)境變量usage:
printenv
-printvaluesofallenvironmentvariables
printenvname...
-printvalueofenvironmentvariable'name'Uboot>printenv
baudrate=115200
ipaddr=
ethaddr=12:34:56:78:9A:BC
serverip=102ppt課件環(huán)境變量相關(guān)(演示)Printenv打印環(huán)境變量31pp環(huán)境變量相關(guān)(演示)Setenv設(shè)置新的變量(修改已有變量)setenvnamevalue...
-setenvironmentvariable'name'to'value...‘setenvname
-deleteenvironmentvariable'name'Uboot>setenvmyboardAT91RM9200DK
Uboot>printenv
ethaddr=12:34:56:78:9A:BC
serverip=
myboard=AT91RM9200DK103ppt課件環(huán)境變量相關(guān)(演示)Setenv設(shè)置新的變量(修改已有變量環(huán)境變量相關(guān)(演示)Saveenv保存變量 將當(dāng)前定義的所有變量及其值存入flash中。104ppt課件環(huán)境變量相關(guān)(演示)Saveenv保存變量33ppt課件文件下載(演示)Tftp通過(guò)網(wǎng)絡(luò)下載文件*使用tftp,需要先配置好網(wǎng)絡(luò)Uboot>setenvethaddr12:34:56:78:9A:BCUboot>setenvipaddrUboot>setenvserverip54
(tftp服務(wù)器的地址)例:Uboot>tftp32000000vmlinux
把server(IP=環(huán)境變量中設(shè)置的serverip)中服務(wù)目錄
下的vmlinux通過(guò)TFTP讀入到0x32000000處。105ppt課件文件下載(演示)Tftp通過(guò)網(wǎng)絡(luò)下載文件34ppt課件內(nèi)存操作命令(演示)Md顯示內(nèi)存區(qū)的內(nèi)容。md采用十六進(jìn)制和ASCII碼兩種形式來(lái)顯示存儲(chǔ)單元的內(nèi)容。這條命令還可以采用長(zhǎng)度標(biāo)識(shí)符.l,.w和.b:md[.b,.w,.l]addressmd.w10000000100000:27051956505043426f6f7420312e312e'..VPPCBoot1.1.00100010:3520284d61722032312032303032202d5(Mar212002-00100020:2031393a35353a30342900000000000019:55:04)......106ppt課件內(nèi)存操作命令(演示)Md顯示內(nèi)存區(qū)的內(nèi)容。35ppt課件內(nèi)存操作命令(演示)Mm修改內(nèi)存,地址自動(dòng)遞增。mm[.b,.w,.l]addressMm提供了一種互動(dòng)修改存儲(chǔ)器內(nèi)容的方法。它會(huì)顯示地址和當(dāng)前值,然后提示用戶輸入。如果你輸入了一個(gè)合法的十六進(jìn)制數(shù),這個(gè)新的值將會(huì)被寫(xiě)入該地址。然后提示下一個(gè)地址。如果你沒(méi)有輸入任何值,只是按了一下回車(chē),那么該地址的內(nèi)容保持不變。如果想結(jié)束輸入,則輸入空格,然后回車(chē)。=>mm10000000100000:27051956?000100004:50504342?AABBCCDD00100008:6f6f7420?01234567107ppt課件內(nèi)存操作命令(演示)Mm修改內(nèi)存,地址自動(dòng)遞增。36pptFlash操作命令(演示)Flinfo
查看Flash扇區(qū)信息Usage:Uboot>Flinfo
108ppt課件Flash操作命令(演示)Flinfo查看Flash扇區(qū)信Flash操作命令(演示)Protect
Flash寫(xiě)保護(hù)
打開(kāi)或關(guān)閉扇區(qū)寫(xiě)保護(hù)用法:protectoffall
關(guān)閉所有扇區(qū)的寫(xiě)保護(hù)protectonall打開(kāi)所有扇區(qū)的寫(xiě)保護(hù)protectoffstartend
關(guān)閉從start到end扇區(qū)的寫(xiě)保護(hù)(start為要關(guān)閉的第1個(gè)扇區(qū)的起始地址,end為要關(guān)閉的最后一個(gè)扇區(qū)的結(jié)束地址)protectonstartend打開(kāi)從start到end扇區(qū)的寫(xiě)保護(hù)109ppt課件Flash操作命令(演示)ProtectFlash寫(xiě)保護(hù)Flash操作命令(演示)Erase擦除flash扇區(qū)用法:erasestartend擦除從start到end的扇區(qū),start為要擦除的第1個(gè)扇區(qū)的起始地址,end為要擦除的最后一個(gè)扇區(qū)的結(jié)束地址(在使用cp命令向Nor型Flash寫(xiě)入數(shù)據(jù)之前必須先使用erase命令擦除flash,因?yàn)閚orflash按字節(jié)寫(xiě)入時(shí),無(wú)法寫(xiě)入1,所以必須通過(guò)擦除來(lái)寫(xiě)入1)。例:erase300001effff。110ppt課件Flash操作命令(演示)Erase擦除flash扇區(qū)39Flash操作命令(演示)Cp數(shù)據(jù)拷貝。Cp[.b,.w,.l]saddressdaddresslenCp提供了一種內(nèi)存與內(nèi)存,內(nèi)存與Flash之間數(shù)據(jù)拷貝的方法。例:cp.b3000800020000100000
將內(nèi)存地址0x30008000處的數(shù)據(jù)(長(zhǎng)度為0x100000)拷貝到地址0x20000處(Flash中)cp.b3080000013000070000
將內(nèi)存地址0x30800000處的數(shù)據(jù)(長(zhǎng)度為0x70000)拷貝到地址0x130000處(Flash中)111ppt課件Flash操作命令(演示)Cp數(shù)據(jù)拷貝。40ppt課件程序執(zhí)行指令(演示)
Go執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)單的跳轉(zhuǎn)到指定地址goaddr[arg...]
-startapplicationataddress'addr‘,passing'arg'asarguments
112ppt課件程序執(zhí)行指令(演示) Go執(zhí)行內(nèi)存中的二進(jìn)制代碼,一個(gè)簡(jiǎn)程序執(zhí)行指令Bootm執(zhí)行內(nèi)存中的二進(jìn)制代碼bootm[addr[arg...]]
-bootapplicationimagestoredinmemory
passingarguments'arg...';whenbootingaLinuxkernel,'arg'canbetheaddressofaninitrdimage 要求二進(jìn)制代碼為制定格式的。通常為mkimage處理過(guò)的二進(jìn)制文件。113ppt課件程序執(zhí)行指令Bootm執(zhí)行內(nèi)存中的二進(jìn)制代碼42ppt課件信息類(lèi)指令bdinfo–顯示開(kāi)發(fā)板信息
bdinfo命令(簡(jiǎn)寫(xiě)為bdi)將在終端顯示諸如內(nèi)存地址和大小、時(shí)鐘頻率、MAC地址等信息。這些信息在傳遞給Linux內(nèi)核一些參數(shù)時(shí)可能會(huì)用到。114ppt課件信息類(lèi)指令bdinfo–顯示開(kāi)發(fā)板信息43ppt課件技巧(演示)設(shè)置自動(dòng)啟動(dòng)
sbc2410=>setenvbootcmdtftp30008000zImage\;go30080000sbc2410=>saveenv115ppt課件技巧(演示)設(shè)置自動(dòng)啟動(dòng)44ppt課件第四節(jié)Uboot工作流程116ppt課件45ppt課件工作模式 大多數(shù)BootLoader都包含兩種不同的操作模式:“啟動(dòng)模式”和“下載模式”,這種區(qū)別僅對(duì)于開(kāi)發(fā)人員才有意義,但從最終用戶的角度看,BootLoader的作用就是用來(lái)加載操作系統(tǒng),而不存在所謂的啟動(dòng)模式與下載模式。117ppt課件工作模式 大多數(shù)BootLoader都包含兩種不同的操作模式啟動(dòng)模式 這種模式也稱(chēng)為“自主”模式,是指BootLoader從目標(biāo)機(jī)上的某個(gè)固態(tài)存儲(chǔ)設(shè)備上將操作系統(tǒng)自動(dòng)加載到RAM中運(yùn)行,整個(gè)過(guò)程并沒(méi)有用戶的介入。這種模式是BootLoader的正常工作模式,因此在嵌入式產(chǎn)品發(fā)布的時(shí)侯,BootLoader顯然必須工作在這種模式下。118ppt課件啟動(dòng)模式 這種模式也稱(chēng)為“自主”模式,是指BootLoa下載模式
在這種模式下,目標(biāo)機(jī)上的BootLoader將通過(guò)串口或網(wǎng)絡(luò)等通信手段從主機(jī)(Host)下載文件,然后控制啟動(dòng)流程。119ppt課件下載模式 在這種模式下,目標(biāo)機(jī)上的BootLoader將流程參考文檔uboot啟動(dòng)流程120ppt課件流程49ppt課件第五節(jié)Uboot移植121ppt課件50ppt課件單板配置Q:為什么需要對(duì)Uboot做移植?A:BootLoader依賴(lài)于具體的嵌入式板級(jí)設(shè)備的配置Q:具體的板級(jí)設(shè)備的配置在哪里?A:單板的配置文件位于include/configs/<board_name>.h
<board_name>用相應(yīng)的BOARD定義代替(例:smdk2410.h)122ppt課件單板配置Q:為什么需要對(duì)Uboot做移植?51ppt課件單板配置Q:Uboot移植都需要做些什么?A:根據(jù)開(kāi)發(fā)板硬件特性修改配置文件是其中最重要的一項(xiàng)工作Q:配置文件中都有些什么信息?A:請(qǐng)看下頁(yè)范例(smdk2410.h)123ppt課件單板配置Q:Uboot移植都需要做些什么?52ppt課件Smdk2410.h#defineCONFIG_ARM920T 1 /*CPU類(lèi)型 */#define CONFIG_S3C24101/*MCU類(lèi)型*/#defineCONFIG_SMDK2410 1 /*開(kāi)發(fā)板型號(hào)*/124ppt課件Smdk2410.h#defineCONFIG_ARM92Smdk2410.h#defineUSE_920T_MMU1/*使用MMU*/#undefCONFIG_USE_IRQ /*不使用IRQ/FIQ*//*malloc池大小*/#defineCFG_MALLOC_LEN(CFG_ENV_SIZE+128*1024)#defineCFG_GBL_DATA_SIZE 128 /*數(shù)據(jù)段大小128字節(jié)*/125ppt課件Smdk2410.h#defineUSE_920T_MMUSmdk2410.h#defineCONFIG_DRIVER_CS8900 1 /*一個(gè)CS8900網(wǎng)卡*/#defineCS8900_BASE 0x19000300/*CS8900A基地址*/#defineCONFIG_SERIAL11 /*使用串口1*/#defineCONFIG_BAUDRATE 115200/*波特率*/126ppt課件Smdk2410.h#defineCONFIG_DRIVESmdk2410.h#defineCONFIG_COMMANDS\ (CONFIG_CMD_DFL |\ CFG_CMD_CACHE |\ /*CFG_CMD_NAND |*/\ /*CFG_CMD_EEPROM|*/\ /*CFG_CMD_I2C |*/\ /*CFG_CMD_USB |*/\ CFG_CMD_REGINFO|\ CFG_CMD_DATE |\ CFG_CMD_ELF)/*定義使用的命令,可添加額外命令,如PING*/127ppt課件Smdk2410.h#defineCONFIG_COMMASmdk2410.h#defineCONFIG_BOOTDELAY3/*啟動(dòng)等待時(shí)間*/#defineCONFIG_BOOTARGS "root=ramfsdevfs=mountconsole=ttySA0,9
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廣告貨幣合同
- 2025年全裝修物業(yè)服務(wù)合同
- 2025年加盟商店鋪市場(chǎng)推廣合同
- 2025年薪制勞動(dòng)合同(范本)
- 切割砂輪租賃合同
- 2025最簡(jiǎn)單租房合同寫(xiě)
- 2025玻璃幕墻清包工程施工合同玻璃幕墻分項(xiàng)工程施工合同范本玻璃幕墻工程勞務(wù)分包合同協(xié)議書(shū)下載
- 2025年三方租房轉(zhuǎn)讓合同范文(2篇)
- 2025對(duì)合同無(wú)效時(shí)仲裁條款獨(dú)立的質(zhì)疑
- 2025年度個(gè)人對(duì)醫(yī)藥企業(yè)研發(fā)貸款合同樣本4篇
- 小學(xué)六年級(jí)數(shù)學(xué)100道題解分?jǐn)?shù)方程
- 部編版五年級(jí)語(yǔ)文下冊(cè)第七單元大單元教學(xué)設(shè)計(jì)
- 社區(qū)獲得性肺炎護(hù)理查房?jī)?nèi)科
- 淺談提高中學(xué)生歷史學(xué)習(xí)興趣的策略
- 藥品儲(chǔ)存養(yǎng)護(hù)知識(shí)大全
- 新版藥品批發(fā)企業(yè)質(zhì)量管理體系文件大全
- 項(xiàng)目管理實(shí)施規(guī)劃-無(wú)錫萬(wàn)象城
- 浙大一院之江院區(qū)就診指南
- 離婚協(xié)議書(shū)電子版下載
- 相似三角形判定專(zhuān)項(xiàng)練習(xí)30題(有答案)
- 2023學(xué)年完整公開(kāi)課版mydreamjob作文教學(xué)
評(píng)論
0/150
提交評(píng)論