express_ca9x4 uboot分析
1.vexpress-ca9x4和qemu介紹
vexpress-ca9x4是arm公司的模擬開發板,
官方資料是:
ARM? CoreTile Express A9×4 Technical Reference Manual Cortex?-A9 MPCore (V2P-CA9)
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0448i/index.html
RealView? Platform Baseboard Explore for Cortex?-A9 User Guide HBI-0182 (baseboard) and HBI0183 (daughterboard)
http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.home/index.html
qemu是一個模擬器
2.環境搭建
編譯器,qemu,uboot,
詳見這篇文章:http://blog.chinaunix.net/uid-21273033-id-3276237.html
uboot(2017.07)編譯:
CROSS_COMPILE=arm-linux-gnueabi- make mrproper O=../t
CROSS_COMPILE=arm-linux-gnueabi- make vexpress_ca9x4_defconfig O=../t
CROSS_COMPILE=arm-linux-gnueabi- make vexpress_ca9x4_defconfig all O=../t
運行:
qemu-system-arm -M vexpress-a9 -m 256M -nographic -kernel u-boot
3.makefile分析
閱讀readme,CONFIG_,CONFIG_SYS_,make <board_name>_defconfig
CONFIG_SYS:depend on the hardware etc,
info命令輸出和man一樣,需要安裝doc。u跳到上層的小節 “p”跳到上一節,按鍵“n”跳到下一節。
LC_ALL=C 是為了去除所有本地化的設置,讓命令能正確執行。
shell中,文件分界符(通常寫成EOF,你也可以寫成FOE或者其他任何字符串)緊跟在<<符號後,意思是分界符後的內容將被當做標準輸入傳給<<前面的命令,直到再次在獨立的一行遇到這個文件分界符(EOF或者其他任何字符
MAKEFLAGS += -rR --no-print-directory
#-r禁止使用build-in規則
#--no-print-directory是:不要再屏幕上打印"Entering directory.."
有一個 make 的環境變量叫“MAKECMDGOALS”,這個變量中會存放你所指定的終極目標的列表,如果在命令行上,你沒有指定目標,那麽,這個變量是空值
linux頂層Makefile(不錯)
Kernel頂層Makefile文件分析
http://blog.csdn.net/hushup/article/details/26105333
http://www.cnblogs.com/heaad/archive/2010/07/17/1779806.html
http://www.cnblogs.com/amanlikethis/archive/2013/11/17/3427682.html
4.代碼分析
vexpress-ca9x4
express_ca9x4 uboot分析