假設板子設定為sd/tf卡啟動,boot rom程式會做什麼?把程式從sd/tf卡讀出來,執行。
從**讀?從sd/tf卡讀,這需要先初始化sd/tf卡:根據efuse或gpio的設定初始化sd/tf卡。
讀到**去?讀到記憶體即ddr去,這需要先初始化ddr。
除了初始化啟動裝置、初始化ddr,還需要初始化什麼?也許要初始化時鐘,讓cpu跑得更快一點。
總結起來就是:初始化cpu、時鐘等,初始化記憶體,初始化啟動裝置,從啟動裝置上把程式讀入記憶體,執行記憶體的程式。
官方的啟動流程如下,這個流程圖比較粗糙,總結起來就是:
a. 檢查cpu id
b. 檢查reset type,冷啟動、喚醒的啟動過程是不一樣的
c. 檢查啟動模式boot_mode,檢查efuse或gpio
e. 認證image
f. 啟動
IMX6ULL 晶元啟動方式筆記
概述 i.mx6ull支援多種啟動方式,比如可以從 sd emmc nand flash qspi flash等啟動從 sd 卡啟動就需要在 bin 檔案前面新增乙個資料頭,其它的啟動裝置也是需要這個資料頭。一,啟動方式選擇 boot 的處理過程是發生在 i.mx6u 晶元上電以後,晶元會根據 bo...
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 ...