当前位置:   article > 正文

IMX6ULL学习笔记(一)_imx6ull dcd

imx6ull dcd

IMX6ULL裸机开发学习

以下内容是我在学习正点原子IMX6ULL开发板alpha中记录的笔记,部分摘录自正点原子IMX6ULL开发手册

IMX6UL裸机开发bin文件头部信息分析

IVT、Boot Data和DCD数据

Bin文件前面要添加头部(IVT+Boot Data+DCD数据),由官方手册可知要烧写到SD卡中的load.imx文件在SD卡中的起始地址是0x400,也就是1024.

头部大小是3KB,加上偏移的1KB,一共是4KB,因此在SD卡中bin文件起始地址为4096。IVT大小为32B/4=8条。

IVT数据格式:

IVT结构数据描述
header0X402000D1IVT头部信息
entry0X87800000保存着程序入口地址,也就是镜像第一行指令所在的位置
reserved10X00000000保留,未使用
dcd0x877FF42C保存着DCD数据的起始地址,0X87800000-0XC00(IVT+Boot Data+DCD=3KB)=0X877FF400(load.imx起始地址),所以DCD相对于load.imx起始地址偏移了0X2C(44Byte,IVT=32Byte,Boot Bata=12Byte)
boot data0X877FF420保存着Boot数据起始地址,IVT=32Byte,0X877FF400+0X20(32Byte)=0X877FF420
self0X877FF400IVT复制到DDR中以后的首地址
csf0X00000000CSF地址
reserved20X00000000保留,未使用

Boot Data数据格式:

Boot Data结构数据描述
start0X877FF000整个load.imx的起始地址,包括前面的1KByte地址偏移
length0X00200000镜像大小,这里设置2MByte。因此镜像大小不能超过2MByte
plugin0X00000000插件

DCD数据格式:

Header (Tag+Length+Version)
[CMD]
[CMD]
……

DCD CMD数据格式:

Header (Tag+Length+Parameter)
Address
Value/Mask
[Address]
[Value/Mask]
……
[Address]
[Value/Mask]

DCD数据整体举例:

DCD结构数据描述
header0X40E801D2header 格式,第一个字节 Tag 为 0XD2,第二和三这两个字节为 DCD 大小,为大端模式,所以 DCD 大小为 0X01E8=488 字节。第四个字节为 0X40。
Write Data Command0X04E401CC第一个为 Tag,固定为 0XCC,第二和三这两个字节是大端模式的命令总长度,为 0X01E4=484 个字节。第四个字节是 Parameter,为 0X04,表示目标位置宽度为 4 个字节。
Address0X020C4068寄存器 CCGR0 地址
Value0XFFFFFFFF要写入寄存器 CCGR0 的值,表示打开 CCGR0 控制的所有外设时钟。
…………CCGR1~CCGR5 这些寄存器的地址和值。
IVT、Boot Data和DCD数据Address0X020C4080寄存器 CCGR0 地址
Bin文件前面要添加头部(IVT+Boot Data+DCD数据),由官方手册可知要烧写到SD卡中的load.imx文件在SD卡中的起始地址是0x400,也就是1024. Value0XFFFFFFFF要写入寄存器 CCGR6 的值,表示打开 CCGR6 控制的所有外设时钟。
头部大小是3KB,加上偏移的1KB,一共是4KB,因此在SD卡中bin文件起始地址为4096。IVT大小为32B/4=8条。………………
IVT数据格式: Check Data Command…………
IVT结构数据……描述……
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/521700
推荐阅读
相关标签
  

闽ICP备14008679号