IMX6ULL學習筆記(一)

2021-10-09 15:12:57 字數 2281 閱讀 6097

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或...