1.uboot是乙個複雜的裸機程式。
2.uboot是乙個bootloader,用於啟動linux系統,主要是用來初始化ddr的,引導linux核心的啟動,因為linux是執行在ddr中的。但是imx是個例外。
uboot是通用的,支援多種架構。
1.uboot有乙個原始碼官網,但是你的晶元是由不同的生產商設計的,但是那麼多版本的晶元肯定不在uboot官網,就需要在生產商官網上尋找。其中imx晶元就需要去nxp官網找。(缺點支援燒,某一款具體晶元的驅動不完善,由soc的nxp去製作)
3.做開發版的廠商,野火會參考nxp的那個版本。開發版必然會與官方板子不一樣,因此開發版廠商優惠修改soc廠商做好的uboot,以適應自己的板子。
拿到開發版的uboot原始碼以後
pintitus@ubuntu:~/imx6ull/uboot$ export cross_compile=arm-linux-gnueabihf-
pintitus@ubuntu:~/imx6ull/uboot$ export arch=arm
pintitus@ubuntu:~/imx6ull/uboot$ make mx6ul_14x14_ddr3_arm2_emmc_defconfig
pintitus@ubuntu:~/imx6ull/uboot$ make
就可以編譯成功了。
uboot編譯成功以後會公升成u-boot.bin檔案,它不能直接放到sd卡里。必須向u-boot新增頭部資訊。uboot編譯後悔通過/tools/mkimage軟體新增頭部資訊(6ul是這樣的)
將imx工具替換到
編譯原始碼,獲取linux核心原始碼解壓以後
1.make ***_defconfig
關於***_defconfig檔案在configs目錄中尋找。目的是將開發板的相關配置配置,相當於改開發板設定好的menuconfig。
2.修改makefile
-->arch = arm
-->cross_compile=arm-linux-gnueabihf-
3.make j10
j10代表使用10個執行緒進行編譯,如果不用j10,那麼就預設在乙個執行緒中編譯,速度就非常慢。
成功以後就能拿到uimage在./arch/arm/boot中
make dtbs以後找到裝置樹檔案的二進位制dtb
imx6ull-14x14-evk-emmc.dtbshell
ke dtbs以後找到裝置樹檔案的二進位制dtb
imx6ull-14x14-evk-emmc.dtbshell
IMX6ULL學習筆記(一)
imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。bin檔案前面要新增頭部 ivt boot data dcd資料 由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1...
IMX6ULL學習筆記(三)
imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。鏈結指令碼的例子 sections rodata align 4 data align 4 bss start bss align 4 bss end bss ...
IMX6ULL學習筆記(六)
imx6ull裸機開發學習 以下內容是我在學習正點原子imx6ull開發板alpha中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊。首先使用預設配置檔案,編譯下測試linux能否在板子上執行。配置檔案所在路徑arch arm configs imx v7 mfg defconfig 通過修改...