你好
在使用 Cyclone 编程器对 S32K312 MCU 编程时,我们遇到了一些问题。我们的流程需要使用内存交换功能,我们的 Cyclone 脚本按以下顺序写入图像:
在刷新过程中,我们经常会遇到"无法访问内存" 错误,有时 MCU 会被锁定。这个问题似乎尤其发生在 HSE 映像编程之后。
我们想问
如果您能提供任何官方指南、推荐编程顺序或故障排除建议,我们将不胜感激。
谢谢!
对 HSE 映像进行编程后,并不严格要求进行完整的电源循环;标准 RESET 通常就足够了。但是,在安装了 HSE 固件的 A/B 交换版本后,需要进行两次 RESET 才能将固件自动复制到主动和被动分区。"无法访问内存" 错误和 MCU 锁定问题通常是由于 Cyclone 编程器使用了不正确的闪存算法造成的。您必须选择与配置相对应的特定闪存算法(例如,如果启用了内存交换,则选择 nxp_s32k312_1x32x424k_ab_swap.arp),以确保编程器不会覆盖 HSE 固件保留的内存区域。使用内存交换功能时,必须等到 HSE 固件在交换后完成对被动分区的备份,这可能需要长达一秒钟的时间。这由 HSE_STATUS_INIT_OK 标志指示。如果 MCU 被锁定,恢复方法取决于特定的锁定状态(例如,如果配置了安全启动)。安全启动恢复工具是一种选择,但成功与否取决于锁定的确切原因 pay byplatema
你好,@HaileyByun
"在刷新过程中,我们经常会遇到"无法访问内存" 错误,有时 MCU 会被锁定。"
- 这似乎是最重要的一点。安装 HSE 固件后,是否选择了正确的闪存算法?您可以访问:
https://www.pemicro.com/arm/device_support/NXP_Automotive/S32K3xx/S32K312/index.cfm
有三种算法:
nxp_s32k312_1x32x500k_hse_disabled.arp
nxp_s32k312_1x32x424k_ab_swap.arp
nxp_s32k312_1x32x456k_hse_enabled.arp
对UTEST 中的 HSE 功能闪存编程时,将从内存映射中删除为 FULL_MEM 版本固件保留的闪存区域。一旦安装了 AB_SWAP 固件,内存中就会为活动块预留额外区域。
Pemicro 程序员需要了解这一点--有必要选择正确的算法。那么它就不会触及这些保留区域。
这难道不是根本原因吗?
回答你的问题
- 在对 HSE 映像进行编程后,是否严格要求完全的电源循环(完全断电和开机)?
不,RESET 就足够了。请注意,安装 AB_SWAP 版本后需要进行两次 RESET,因为需要将固件复制到主动和被动分区(自动完成)。
- 在为 S32K312 使用 Cyclone 脚本时,是否有推荐的闪存顺序或注意事项,尤其是有关 HSE 和内存交换的内容?
如上所述,有必要选择正确的闪光算法。
- 使用内存交换功能时还有其他注意事项吗?
每次交换后,将 HSE 固件备份到被动分区大约需要 1 秒钟。应用程序(此处也包括闪存编程器)应等待该操作完成(直到 HSE_STATUS_INIT_OK 被设置)。
-如果 MCU 被锁定,推荐的恢复方法是什么(例如,安全启动恢复工具)?
这取决于"锁定" 的含义。您的应用程序是否配置了安全启动?是否设置了 ADKP,生命周期是否提前?您能通过调试器建立连接吗?
问候,
Lukas