MX6U启动方式IVT和BootData详解

系列文章目录



前言

MX6U的启动方式中有SD卡启动,但是SD卡的启动涉及一个头文件的问题。即可执行程序烧写进SD卡与可执行程序直接存储在SD卡的区别在于特定地址的头文件。因此需要讲解头文件的意义及其内容和制作。即头文件是什么?为什么?怎么做?


一、头文件(Boot Header / Head : 引导头)是什么?

名词解释

问:BootROM是什么?

答:BootROM是MX6U芯片内置的启动引导程序,它在芯片上电或复位时开始执行。BootROM程序根据外部BOOT_MODE[1:0]引脚的状态,决定芯片是内部启动模式还是串口启动模式。

在这里插入图片描述
图1. MX6U内部ROM和内部RAM映射表

问:BootROM有什么用?

答:

  • 当BT_FREQ=0时,主频(ARM PLL)为396KHz,系统频率(System PLL)为528MHz,USB频率(USB PLL)为480MHz,余者见图2。反之见图2第5列。
  • 内部BootROM为了加快执行速度会打开MMU和Cache;
  • 下载镜像的时候L1 ICache会打开;
  • 验证镜像的时候L1 DCache、L2 Cache和MMU都会打开;
  • 当完成镜像验证后,BootROM会关闭L1 DCache、L2 Cache和MMU;
  • 之后,BootROM启动用户代码后就可以重新设置中断向量偏移,一般会设置到用户代码开始的地址。
在这里插入图片描述
图2. BootROM系统时钟设置

问:头文件由什么组成?

答:如图3所示,由IVT和BootData组成。

在这里插入图片描述
图3. 启动存储器映射表,Initial Load Region(初始化加载区)即头文件(head)

问:IVT由什么组成?

答:如图4所示。

在这里插入图片描述
图4. IVT(Image Vector Table)的结构内容(最后一行应当还有一个reserved2没有列出)

问:IVT数据长度是多少?

答:IVT有8条内容,如图4所示,每条4字节,共32字节。

问:Boot Data由什么组成?

答:如图5所示。

在这里插入图片描述
图5. Boot Data的结构内容

问:头文件数据长度是多少?

答:4K字节

问:.bin文件和.imx文件之间的关系是怎样的?当我使用SD卡作为启动设备的时候。

答:

.bin文件和.imx文件之间的关系是:.bin文件是.imx文件的前身,.bin文件经过一些处理后才能得到.imx文件。

具体来说,.bin文件是裸机代码编译后得到的目标文件,它包含了嵌入式系统所需的FSBL、SSBL和其他必要的参数和镜像等信息。

而.imx文件是在.bin文件的基础上添加了一个image header而得到的,这个header主要包含IVT header、Boot data、DCD header等,整个header的大小限制为3Kbyte。这个image header主要用于在嵌入式系统中标识FSBL、SSBL和其他参数和镜像等信息的起始位置和大小,以便系统正确加载和解析这些信息。

当使用SD卡作为启动设备时,可以将.bin文件放在SD卡的FAT分区下,然后在嵌入式系统的启动过程中,通过读取SD卡中的.bin文件并解析其中的FSBL和SSBL等信息,将控制权交给SSBL来加载操作系统或者其他更高级别的应用程序。

二、为什么需要头文件

引导头提供关键启动信息:

  1. IVT(Image Vector Table):镜像向量表,包含了用于芯片启动的向量地址信息。
  2. Boot Data:包含了一些启动相关的数据,如load.imx起始地址、镜像大小等。
  3. 其它。

这些关键启动信息在引导头中被定义和存储,用于指导芯片正确地启动和加载系统程序。

三、怎么制作头文件(如何烧写代码时添加头文件进SD卡)?

参考正点原子“手把手教你学LINUX之ARM(MX6U)”第6.5讲“汇编LED驱动实验-烧写bin文件到SD卡”


小结

  1. 烧写程序给MX6U要设置启动方式
  2. 启动方式为SD卡时,除了要执行的主程序还要附加一段头引导程序
  3. 头引导程序由IVT(Image Vector Table)和BootData构成(后面还有DCD,这小节没有讲),头引导程序总共大小是4K字节
  4. IVT由8条4字节的数据构成,共32字节。IVT记录了一些数据段的偏移地址。
  5. BootData记录了load.imx的起始地址和镜像大小。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值