AM1808 平台編譯 U-Boot,`u-boot` 和 `u-boot.bin` 均生成成功,但燒寫後板卡無法啟動,懷疑是程序入口點或加載地址配置錯誤。編譯器為 `arm-none-linux-gnueabi-`。
U-Boot 運行地址由 Makefile 中的 `CONFIG_SYS_TEXT_BASE`(即 `TEXT_BASE`)決定。若該值與 JTAG/TFTP/NAND 燒寫的實際加載地址不一致,CPU 跳轉到錯誤地址導致無法啟動。
grep TEXT_BASE include/configs/am1808_evm.h
# 或
grep CONFIG_SYS_TEXT_BASE .config
典型值如 `0xC0700000` (DDR) 或 `0x00000000` (SRAM)。# boards/am1808_evm/Makefile 或 configs/am1808_evm_defconfig
CONFIG_SYS_TEXT_BASE=0xC0700000 # 與實際加載地址一致
# U-Boot 命令行
tftpboot 0xC0700000 u-boot.bin # 地址必須與 TEXT_BASE 一致
nand erase 0x0 0x80000
nand write 0xC0700000 0x0 0x80000
make distclean
make am1808_evm_defconfig
make -j4
U-Boot 編譯成功但不運行,90% 是TEXT_BASE 與實際加載地址不匹配。務必做到:配置文件、編譯輸出、燒錄命令、JTAG 腳本 四處地址完全一致。建議在板級 README 中固化該地址,避免後續維護踩坑。