imx6ull裸機開發學習
以下內容是我在學習正點原子imx6ull
開發板alpha
中記錄的筆記,部分摘錄自正點原子imx6ull開發手冊
。
bin檔案前面要新增頭部(ivt+boot data+dcd資料),由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1024.
頭部大小是3kb,加上偏移的1kb,一共是4kb,因此在sd卡中bin檔案起始位址為4096。ivt大小為32b/4=8條。
ivt資料格式:
ivt結構
資料描述
header
0x402000d1
ivt頭部資訊
entry
0x87800000
儲存著程式入口位址,也就是映象第一行指令所在的位置
reserved1
0x00000000
保留,未使用
dcd0x877ff42c
儲存著dcd資料的起始位址,0x87800000-0xc00(ivt+boot data+dcd=3kb)=0x877ff400(load.imx起始位址),所以dcd相對於load.imx起始位址偏移了0x2c(44byte,ivt=32byte,boot bata=12byte)
boot data
0x877ff420
儲存著boot資料起始位址,ivt=32byte,0x877ff400+0x20(32byte)=0x877ff420
self
0x877ff400
ivt複製到ddr中以後的首位址
csf0x00000000
csf位址
reserved2
0x00000000
保留,未使用
boot data資料格式:
boot data結構
資料描述
start
0x877ff000
整個load.imx的起始位址,包括前面的1kbyte位址偏移
length
0x00200000
映象大小,這裡設定2mbyte。因此映象大小不能超過2mbyte
plugin
0x00000000
外掛程式dcd資料格式:
header (tag+length+version)
[cmd]
[cmd]
……dcd cmd資料格式:
header (tag+length+parameter)
address
value/mask
[address]
[value/mask]
……[address]
[value/mask]
dcd資料整體舉例:
dcd結構
資料描述
header
0x40e801d2
header 格式,第乙個位元組 tag 為 0xd2,第二和三這兩個位元組為 dcd 大小,為大端模式,所以 dcd 大小為 0x01e8=488 位元組。第四個位元組為 0x40。
write data command
0x04e401cc
第乙個為 tag,固定為 0xcc,第二和三這兩個位元組是大端模式的命令總長度,為 0x01e4=484 個位元組。第四個位元組是 parameter,為 0x04,表示目標位置寬度為 4 個位元組。
address
0x020c4068
暫存器 ccgr0 位址
value
0xffffffff
要寫入暫存器 ccgr0 的值,表示開啟 ccgr0 控制的所有外設時鐘。
…………
ccgr1~ccgr5 這些暫存器的位址和值。
ivt、boot data和dcd資料address
0x020c4080
暫存器 ccgr0 位址
bin檔案前面要新增頭部(ivt+boot data+dcd資料),由官方手冊可知要燒寫到sd卡中的load.imx檔案在sd卡中的起始位址是0x400,也就是1024. value
0xffffffff
要寫入暫存器 ccgr6 的值,表示開啟 ccgr6 控制的所有外設時鐘。
頭部大小是3kb,加上偏移的1kb,一共是4kb,因此在sd卡中bin檔案起始位址為4096。ivt大小為32b/4=8條。……
…………
ivt資料格式: check data command
…………
ivt結構
資料……
描述……
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 通過修改...
正點原子 IMX6ULL學習
啟動檔案.global start 全域性標號 描述 start函式,程式從此函式開始執行,此函式主要功能是設定c 執行環境。start 進入svc模式 mrs r0,cpsr bic r0,r0,0x1f 將r0暫存器中的低5位清零,也就是cpsr的m0 m4 orr r0,r0,0x13 r0或...