IMX6的U-boot.imx分析及sd卡烧录详解(dd命令写入)

一、U-boot.imx的组成

IMX6solo资料地址

u-boot.imx = IVT + Boot Data + DCD + u-boot.bin

 

IVT数据格式:

IVT 包含了镜像程序的入口点、指向 DCD 的指针和一些用作其它用途的指针

名称含义
headerIVT头部,标识IVT、IVT长度、版本信息
entry
入口地址,第一条指令的入口地址,即U-boot的入口
reserved1保留,未使用
DCDDCD数据的地址,紧跟在Boot Data后面
Boot Data
启动数据,包含了镜像要拷贝到哪个地址,拷贝的大小是多少等等
self
IVT 复制到 DDR 中以后的首地址
csfCSF地址
reserved2
保留,未使用

 

Boot Data数据格式:

名称含义
start启动数据加载到内存的地址,即整个 load.imx 的起始地址,包括前面 1KByte 的地址偏移
length启动数据加载到内存的长度,即镜像大小
plugin插件

 

二、U-boot.imx的SD卡烧录

查看数据手册,找到IVT的偏移量和加载数据长度大小表:

SD加载程序大小是4K,IVT 偏移为 1Kbyte,IVT+Boot data+DCD 的总大小为 4KByte - 1KByte=3KByte。

u-boot.imx要有一个 1Kbyte 的偏移,而 SD 卡每个扇区为 512 字节,那么 load.imx 要跳过2个扇区,从第三个扇区烧写。

 

dd命令:

主用功能是用于拷贝文件,也就是用指定大小的块去拷贝一个文件,并在拷贝的同时进行指定的转换(默认从标准输入拷贝到标准输出,这意味dd可以在管道中使用)。这个拷贝过程简单理解就是读取,转换并输出数据。
用法:

dd [bs=<字节数>][cbs=<字节数>][conv=<关键字>][count=<区块数>][ibs=<字节数>][if=<文件>][obs=<字节数>][of=<文件>][seek=<区块数>][skip=<区块数>][--help][--version]

写入示例命令:

sudo dd iflag=dsync oflag=dsync if=u-boot.imx of=/dev/sdb seek=2
iflag输入(读取数据)特征
oflag输出(写入数据)特征
if输入源,即要写入的文件
of输出源 ,即要写入的设备名称
seek=2跳过2个扇区,从第三个扇区开始复制

如图,写入成功:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值