bootloder uboot 簡介 make menuconfig

一個嵌入式系統從軟件角度分爲三個層次

1,引導加載程序  包含固化在固件中的boot程序(如BIOS),和Bootloader(如grub或lilo)兩個部分。linux

2,linux內核服務器

3,文件系統:包含應用程序和系統命令spa

BIOS在完成硬件檢測和資源分配後,Bootloader將硬盤中的引導程序讀到系統內存中,而後跳轉到內存運行。
orm

嵌入式系統通常沒有boot,只須要bootloader,一種bootloader從新上電會跳到內存Flash 0x00000000開始執行。另外一種bootloader 會進行一些硬件設備初始化,而後,跳轉到bootloader指定的flash位置啓動os內核。內存

編譯bootloader 經常使用的指令 

通常用        arm-linux-gcc  hello.c -o hello    編譯文件ci

反彙編命令   arm-linux-objdump -D -S hello >hello.txt (>hello.txt 把結果重定向到 hello.txt)資源

ELF文件查看 arm-linux-readelf -a hello (能夠查看大段小段模式,及運行平臺)開發

                arm-linux-readeld -d hello (查看hello使用的動態連接庫)
flash

編譯uboot的源文件boot中的主要目錄

board 和開發板相關的文件 如board/samsung/smdk6410it

common uboot命令

cpu 處理器對應的文件

uboot經常使用命令 

help查看全部命令

printfenv: 查看當前環境變量

setenv : 添加環境變量    如setenv test 123 (添加環境變量 值123) setenv test (刪除環境變量)

saveenv:保存當前環境變量 這樣重啓本身添加的環境變量就不消失了

tftp 下載文件

tftp c0000000  zImage (zImage 存在與宿主機tftp服務器的目錄下)

nand 

nand info 查看nandflash 大小

nand erase 100000 700000 擦除 100000 到700000數據

go addr 運行addr(地址)的應用


make menuconfig

打開以後會出現選項,y 爲*   n爲空  m爲M

(*) a.c  --- a.o ----- zImage 既編譯又鏈接

(*) b.c  --- b.o ----- zImage 既編譯又鏈接


(M) d.c ---  d.o  只編譯不鏈接

( )  e.c              不編譯

至於內核選項該如何配置,能夠Google下Linux內核配置詳解。因爲太多不列舉。

平時配置時,能夠到/arch/arm/configs找到和開發板相近的config進行修改配置

cp /arch/arm/xxx_config /forlinux/linux3.0.1 也就是.config所在的目錄(ls -a查看)


make  zImage V = 1會列出詳細的編譯信息,便於查找出錯

生成的文件在 arch/arm/boot/ 下zImage

相關文章
相關標籤/搜索