ZHCAEV6 December 2024 F29H850TU , F29H859TU-Q1
说明了闪存内核的基本理念以及如何进行固件升级,下一节将详细介绍该过程的第一步:通过 bootROM 将内核加载到 RAM。
开始时,器件启动,并根据引导模式决定器件是执行已编程到闪存中的代码还是使用某个 ROM 加载程序加载代码。本应用手册重点介绍未连接仿真器时的引导执行路径。
| 引导模式 | GPIO72(默认引导模式选择引脚 1) | GPIO84(默认引导模式选择引脚 0) |
|---|---|---|
| 并行 I/O | 0 | 0 |
| UART | 0 | 1 |
| CAN | 1 | 0 |
| 闪存 | 1 | 1 |
在启动 ROM 准备好使用的器件后,器件决定从哪里开始执行。如果是独立启动,器件通过检查两个 GPIO(如表 2-2 中所示,默认选择是 GPIO 72 和 84)的状态来实现此目的。在某些情况下,可以检查编程到一次性可编程 (OTP) 存储器中的两个值。在本应用手册中所述的实现方案中,使用了 UART 加载程序,因此在上电时 GPIO 84 必须强制为高电平,GPIO 72 必须强制为低电平。如果器件启动时出现这种情况,则 ROM 中的 UART 加载程序以 115200 的波特率开始执行并运行。此时,器件已准备好接收来自主机的代码。
之前基于 C28 的器件和 F29H85x 之间的主要区别在于是否包含硬件安全模块 (HSM)。所有启动流程都需要 HSM 对传入映像进行身份验证,然后才能执行启动流程。
有关启动流程的详细信息,请参阅技术参考手册 (TRM) 的 ROM 代码和外设启动 部分。有关 HSM 和 C29 CPU 在启动序列期间如何进行通信,请参阅器件启动流程图 部分。