RK U-Boot 基于開(kāi)源的 U-Boot 進(jìn)行開(kāi)發(fā),工作模式有啟動(dòng)加載模式和下載模式。啟動(dòng)加載模式是 U-Boot 的正常工作模式,嵌入式產(chǎn)品發(fā)布時(shí),U-Boot 都工作在此模式下,主要用于開(kāi)機(jī)時(shí)把內(nèi)存中的內(nèi)核加載到內(nèi)存中,啟動(dòng)操作系統(tǒng);下載模式主要用于將固件下載到閃存,開(kāi)機(jī)時(shí)長(zhǎng)按 Recovery 鍵可進(jìn)入下載模式。本文簡(jiǎn)單說(shuō)明 U-Boot 的使用,更多相關(guān)文檔請(qǐng)看 SDK 下面的 RKDocs/common/uboot/RockChip_Uboot開(kāi)發(fā)文檔V3.0.pdf。
編譯 U-Boot 與編譯內(nèi)核類似,編譯前把默認(rèn)配置寫(xiě)入 .config,執(zhí)行:
cd SDK/u-boot make rk3288_defconfig
如果需要修改相關(guān)選項(xiàng),也可以用:
make menuconfig
編譯:
make
編譯后生成:
RK3288Loader_uboot_Vx.xx.xx.bin
打開(kāi)燒錄工具,板子接好 USB OTG 線,接通電源時(shí)按住 Recovery 鍵,使開(kāi)發(fā)板進(jìn)入 U-Boot 的下載模式,在燒錄工具中選擇編譯好的 Loader 文件,點(diǎn)擊執(zhí)行即可,如下圖:
如果你已經(jīng)成功燒寫(xiě)你最新編譯的 Loader,在開(kāi)機(jī)的串口輸出中可以看到類似如下信息:
#Boot ver: 2015-01-05#2.19
如果打印的時(shí)間及版本與你編譯的一致,說(shuō)明你成功更新了Loader。
一般情況下無(wú)需進(jìn)入 U-Boot 的命令行模式。但如果需要調(diào)度 U-Boot,可以修改 include/configs/rk32plat.h:
/* mod it to enable console commands. */ #define CONFIG_BOOTDELAY 0
將 0 改成 3 即可在開(kāi)機(jī)時(shí)有 3 秒的時(shí)延,在此時(shí)間內(nèi)在串口輸入任意鍵即可進(jìn)入u-boot命令行模式,0 即默認(rèn)不進(jìn)入命令行模式。
由于Firefly開(kāi)發(fā)板沒(méi)有用nand flash,所以默認(rèn)不用二級(jí)Loader,這里只是簡(jiǎn)單說(shuō)明二級(jí)Loader RK3288Loader_uboot_Vx.xx.xx.bin 是一級(jí)Loader模式,只支持 emmc。 RK3288Loader_uboot_Vx.xx.xx.bin 和uboot.img 組合是二級(jí)loader模式,同時(shí)支持emmc和nand flash,二級(jí)Loader模式需要在rk32xx.h配置文件中添加以下定義:
#define CONFIG_SECOND_LEVEL_BOOTLOADER
添加后重新編譯Uboot,可以生成: RK3288Loader_uboot_Vx.xx.xx.bin和uboot.img 把RK3288Loader_uboot_Vx.xx.xx.bin和uboot.img燒入板子即可。
-
嵌入式主板
+關(guān)注
關(guān)注
7文章
6096瀏覽量
36135 -
Firefly
+關(guān)注
關(guān)注
2文章
541瀏覽量
7395
發(fā)布評(píng)論請(qǐng)先 登錄
U-Boot介紹
U-boot的基本介紹

U-Boot的啟動(dòng)及移植分析
Porting U-Boot to the Control
嵌入式U-BOOT的啟動(dòng)流程及移植
基于S3C2440的U-Boot開(kāi)機(jī)logo的設(shè)計(jì)

u-boot簡(jiǎn)介
fireflyAIO-3399C主板U-Boot介紹
fireflyAIO-3288J主板U-Boot使用簡(jiǎn)介

Linux U-Boot開(kāi)發(fā)指南

評(píng)論