IMX6ULL學習手冊之核心編譯

2021-10-05 20:00:43 字數 1585 閱讀 7274

​ 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 通過修改...