ARM學習筆記之驅動程序篇----U-boot

一,U-boot入門

1.1.1 編譯U-boot

1,解壓uboot文件,我學習用的是tiny6410的開發板,所以解壓uboot_tiny6410.tar.gz,進入uboot_tiny6410目錄。

tar xvzf uboot_tiny6410.tar.gz
cd uboot_tiny6410

2,配置並編譯

make tiny6410_config
make ARCH=arm CROSS_COMPILE=arm-linux-

3,使用dnw下載uboot.bin

4,下載完成後,將開發板從nand flash啓動,並迅速按任意鍵,進入uboot命令行模式。

1.1.2 U-boot命令集

1,help

     查看當前開發板運行的uboot所支持的命令

2,環境變量

(1)printenv(print)

        查看環境變量

(2)setenv(set)

         修改環境變量

setenv name value

setenv name

(3) saveenv(save)

      保存環境變量,將當前定義的所有變量及其值存入flash中。

3,文件下載

      使用tftp通過網絡下載文件,需要配置好網絡。

//(1)設置開發板mac地址
setenv ethaddr 12:34:56:78:9A:BC

//(2)設置開發板ip地址,須和主機(tftp服務器)在同一個網段
setenv ipaddr 192.168.3.115

//(3)設置主機(tftp服務器)ip地址
setenv serverip 192.168.3.111

//(4)在開發板上ping主機(tftp服務器)
ping 192.168.3.111
//如果Ping不通,關閉windows和linux的防火牆

//(5)把主機(tftp服務器)上的內核文件下載到開發板
tftp 0xc0008000 uImage

//(6)啓動linux內核
bootm 0xc0008000
//bootm執行固定格式的二進制文件。固定格式指的是在內核文件開頭有固定格式的信息(如cpu信息).

4,內存

(1)查看內存內容-md

格式:md[.l/.w/.b] address

採用十六進制和ASCII碼兩種形式來顯示存儲單元的內容。這條命令還可以採用長度標識符.l(雙字),.w(字),.b(字節)。

(2)修改內存內容-mm

格式:mm[.b/.w/.l] address

修改內存,地址自動遞增。mm提供了一種互動修改存儲器內容的方法。它會顯示地址和當前值,然後提示用戶輸入。如果你輸入了一個合法的十六進制數,這個新的值將會被寫入到該地址。然後提示下一個地址。如果你沒有輸入任何值,只是按下了回車,那麼該地址的內容保持不變。如果想結束輸入,則輸入空格,然後回車。

5,Nand Flash

(1)擦除nand flash

nand erase [addr] [len]

擦除addr處開始的,長度爲len的區域。

(2)讀/寫nand flash

nand write [mem_addr] [flash_addr] [len]

將mem_addr地址處,長度爲len的數據,寫入flash_addr地址處。

nand read [mem_addr] [flash_addr] [len]

將flash_addr地址處,長度爲len的數據,讀到mem_addr地址處。

6,設置自動啓動

(1)設置從nand flash自動啓動

tftp c0008000 uImage
nand write c0008000 4000000 5000000
setenv bootcmd nand read c0008000 4000000 5000000 \;bootm c0008000
#saveenv

(2)設置自動下載內核到內存後自動啓動

setenv tftp c0008000 uImage \;bootm c0008000
saveenv

     

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章