Boot过程相关镜像详解:IVT、DCD、App Boot镜像到底是什么?

本文围绕S32系列芯片启动所需的程序镜像展开,介绍了IVT、DCD、Self - Test、App Bootloader、Serial Boot等镜像。阐述了各镜像的结构、功能及相关指令,如IVT的GMAC用于验证完整性,DCD的写数据、检查数据指令等,还提及启动条件、流程及注意事项,助力理解芯片启动机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


  博主已开通同名公众号,通过文末或主页二维码关注博主,将为你推送最新、最细、最硬核的车载系统知识和嵌入式开发知识!公众号主页设有交流群作为同行江湖朋友们相互交流学习的驿站。

学习更多Boot相关内容,获取HSE基于IVT安全启动方案?
>>>>>>>>> 返回专栏总目录 《S32系列芯片——Boot详解》<<<<<<<<<

Tip📌:鼠标悬停双虚线关键词/句,可获得更详细的描述

一、概述

  S32系列芯片的正常启动需要一份有效的程序镜像,主要包括以下部分:

  • Image Vector Table (IVT):这是BootROM从启动设备读取的第一个镜像。IVT包含了启动过程中BootROM使用的必要数据,如各个镜像的入口点、指向设备配置数据(DCD)的指针和其他指针。
  • Device Configuration Data (DCD):提供了对设备进行配置的数据。
  • Self-Test DCD:用于执行自测。
  • Application boot image:用于启动应用程序的镜像(BootLoader),通常芯片使用方会自行开发这个镜像,可以把它类比为linux中的uboot。
  • Serial boot image:包含通过串行接口启动时需要的数据,实际上就是能跑在SRAM里面的App数据。

  在详细认识每个镜像前,先简单了解主分区和备份区的概念

  在S32系列芯片中,镜像的存储结构设计采用了主分区(Primary Partition)和备份区(Backup Partition)的概念,旨在增强系统的可靠性和故障恢复能力。主分区包含当前运行的系统镜像,它是系统启动和运行时主要读取和执行的代码和数据区域。而备份区则存储了系统镜像的一个副本,用于在主分区损坏或更新失败时恢复系统。

  这种设计允许系统在遇到软件故障或损坏时,自动或通过用户指令切换到备份区的镜像,从而快速恢复到一个已知良好的状态,减少系统的停机时间。此外,这也支持了更为安全和灵活的软件更新机制,因为更新可以首先在备份区进行,只有当新更新被验证无误后,才将其作为主要运行镜像。这大大降低了软件更新导致系统不稳定或不可用的风险。

二、 IVT镜像

  IVT的位置在BootROM中是有固定要求的,BootROM启动后会直接从这个固定的特殊地址读取这个IVT镜像。对于不同类型的启动设备,IVT距离设备基地址的偏移如下所示:

在这里插入图片描述

  BootROM在执行引导时,根据启动设备的不同(QuadSPI启动或μSDHC启动),对于指向设备配置数据(DCD)、自检DCD、应用程序镜像以及HSE_H固件镜像的指针有不同的对齐要求。对于QuadSPI启动,这些指针需要是8字节对齐的;而对于μSDHC启动,这些指针则需要是512字节块对齐的。

  在S32系列芯片的启动过程中,IVT包含了重要的启动配置信息和指向各镜像代码入口指针。IVT镜像的结构如下所示:

地址 大小(字节) 字段名称 备注
0h 4 IVT header 4字节镜像头标识,常称为镜像的Magic number
4h 4 保留未使用 保留未使用
8h 4 Self-Test DCD pointer(primary) Self-Test DCD镜像的位置(主区)
Ch 4 Self-Test DCD pointer (backup) Self-Test DCD镜像的位置(备份区)
10h 4 DCD pointer(primary) DCD镜像位置(主分区)
14h 4 DCD pointer (backup) DCD镜像位置(备份区)
18h 4 HSE_H firmware flash memory start pointer(primary) HSE_H固件的位置(主分区)
1Ch 4 HSE_H firmware flash memory start pointer (backup) HSE_H固件的位置(备份区)
20h 4 Application boot code flash memory start pointer(primary) 应用程序bootloader的位置(主分区)
24h 4 Application boot code flash memory start pointer (backup) 应用程序bootloader的位置(备份区)
28h 4 Boot configuration word boot的配置信息
2Ch 4 Life cycle configuration word LC配置信息
30h 4 保留未使用 保留未使用
34h 32 Reserved for HSE_H firmware 专门为HSE_H固件保留的字段
54h 156 保留未使用 保留未使用
F0h 16
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

车载系统攻城狮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值