您好,NXP团队:
我正在使用 AB_SWAP 和 HSE_B 进行 S32K328 内存布局,我需要澄清 IVT 位置应该如何处理。
摘自S32K3xx参考手册:
在 S32K328 的内存映射表中,我看到:
静脉输液
AB_SWAP 中的多个 IVT 地址
使用辅助/备用区域
最佳实践
1.在任何可用的已定义地址处,一个 IVT 就足够了。它不一定要是像 0x40_0000 这样的主要位置。SBAF 负责按给定顺序搜索有效的 IVT。
如果在 IVT 更新期间出现问题,可以选择使用第二个 IVT 作为备份。这通常是在 IVT 的启动配置字中的 BOOT_SEQ 位启用安全启动时发生的。
2. S32K328 在 AB_SWAP 模式下有三个可能的 IVT 位置:0x40_0000、0x60_0000、0x1000_0000。SBAF 按此顺序搜索有效的 IVT。地址越靠下,优先级越高。例如,如果 0x40_0000 处存在有效的 IVT,SBAF 将使用此 IVT,而不会检查其他位置。
3. 不必保留该区域,您可以将其用于您的代码或数据。
4. 对于此用例,如前所述,其他 IVT 位置可用作备份。安全启动应用笔记的“6.2 更新 IVT”部分也对此进行了讨论。
可从以下网址下载:
https://www.nxp.com/products/S32K3
应用笔记请点击此处查看:
文档 -> 安全文件 -> 安全启动应用笔记 v0.1.1.0(AN744511)
相关演示项目可在此处下载:
设计资源 -> 软件 -> 安全文件 -> SecureBootAppNoteDemo (SW745310)
问候,
卢卡斯