S32系列芯片Boot流程详解!


  博主已开通同名公众号,通过文末或主页二维码关注博主,将为你推送最新、最细、最硬核的车载系统知识和嵌入式开发知识!

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

Tip📌:
  鼠标悬停双虚线关键词/句,可获得更详细的描述;
  阅读本文前建议先阅读以下文章了解相关背景知识:
《Boot过程相关镜像详解:IVT、DCD、App Boot镜像到底是什么?》
《S32系列芯片Boot过程涉及的寄存器有哪些?》

一、预先了解

  在学习Boot流程之前,先简单了解两种不同类型的系统重置方式——“破坏性重置”和“功能性重置”

破坏性重置(Destructive Reset):
  破坏性重置是一种彻底的重置方式,它会导致芯片内大部分寄存器和逻辑单元恢复到它们的初始复位状态。这种重置通常会丢失未保存的数据,因为它会清除大多数内存和寄存器的内容。破坏性重置被用于芯片的初始上电阶段,或者当系统需要从严重错误或不稳定状态中恢复时。例如,遇到无法通过其他手段恢复的硬件错误或系统挂起时,可能会执行破坏性重置。

功能性重置(Functional Reset):
  功能性重置则是一种较为温和的重置方式,它主要影响特定功能相关的寄存器和逻辑单元,而不会影响整个系统状态。这种重置的目的是刷新特定部分的系统配置或状态,而不是完全重启系统。功能性重置可以在不完全破坏系统运行状态的情况下解决一些运行时问题,例如,当特定外设或功能模块不正常工作时,可以对该部分进行功能性重置,以期恢复其正常工作。

  下面是手册中给出的具体描述:

在这里插入图片描述

  下面是从手册中找到的两种复位方式触发后芯片状态的区别,可以看到主要区别在于RAM的内容是否还会保存

在这里插入图片描述

二、Boot流程概述

  在NXP S32芯片中,BootROM是负责在设备加电后首先运行的一段程序。它的主要任务是启动硬件环境并加载必要的固件或者应用代码以便设备能够正常运行。简单来说BootROM的启动流程是这样的:

  1. 首先,BootROM会检查一些自测项和其他的检查项,来决定启动流程是分三个阶段完成还是一次性完成。这主要看设备的自测配置数据(Self-Test DCD)是怎样设置的。

  2. 接下来,BootROM会根据一个叫做BOOT_SEQ的值,决定是要启动应用程序代码还是HSE_H固件。启动哪个部分,还得看启动向量表(IVT)中的镜像指针是否有效。

  3. 此外,BootROM还支持所谓的备份镜像机制,不仅仅是对应用程序代码和HSE_H固件,也包括自测配置数据(Self-Test DCD)和配置数据(DCD)。基本上,如果主镜像指针有效,BootROM就会先尝试执行主镜像。只有当指针指向0地址(这被认为是无效的位置),或者主镜像头格式不正确,或者认证失败的情况下,BootROM才会尝试执行备份镜像。

  4. 如果HSE_H固件在更新时失败了,BootROM允许从备份镜像回滚到之前的版本。失败的情况可能是这样的:更新后的HSE_H主固件镜像通过了所有的头检测和BootROM的认证过程,但在它获得控制权并开始执行,能够启动应用程序代码和提供服务之前,它可能因为各种原因崩溃了。
    Tip📌:如果尝试启动主HSE_H

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

车载系统攻城狮

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

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

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

打赏作者

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

抵扣说明:

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

余额充值