大家好,
我正在参与S32K114 (AN12323)项目。最初,我在禁用 CSEC 的情况下烧录了网关项目,并且编程成功了。
之后,我尝试刷写CAN 示例应用程序,但遇到了以下错误:
“设备当前安全,擦除后将变为不安全状态。”
为了解决这个问题,我还尝试使用“紧急 Kinetis 设备恢复”选项,但没有成功。
请问如何恢复设备或移除安全状态,以便我可以刷写 CAN 示例程序?
嗨@Senlent ,
您好@ Pranathi06
如果复位信号周期不是~118µs,而是大于200µs,例如500µs甚至更长,
使用批量擦除命令,无法通过 SWD/JTAG 调试接口解密和恢复 MCU。
谢谢!
“S32K144_FOTA_GATEWAY”命令不涉及任何CSEc或闪存网络安全相关操作,因此我不确定你对MCU做了什么。
你可以测量 RESET 引脚的波形,告诉我它的复位周期。
复位周期可以用来判断芯片是否能够恢复正常工作。
嗨@Senlent ,
是的,已成功刷入“S32K144_FOTA_Gateway”,当我尝试刷入Can_example项目时,出现“设备已保护”的提示,之后就无法刷入任何软件了。
谢谢!
您好@ Pranathi06
您的问题是在下载“S32K144_FOTA_Gateway”程序时出现,还是您已经成功刷写了“S32K144_FOTA_Gateway”?
谢谢。
您好@ Pranathi06
在刷写我的 GATEWAY_PROJECT 之前,我已经刷写了“重置闪存状态”
我不明白你的意思。
AN12323SW 没有“将闪存重置到状态”程序。
根据你的描述,你修改了“S32K144_FOTA_Gateway”?
您只需要检查您的程序是否已启用 CSEc 模块并分配了密钥,以及您是否考虑过在应用程序中将 CSEc 模块恢复到出厂状态。
否则,这种情况就无法挽回了。
我没有刷写 Memory_partition 项目。
在刷写我的 GATEWAY_PROJECT 之前,我已经刷写了“重置闪存状态”
有什么办法可以恢复吗?
谢谢。
您好@ Pranathi06
这个问题与“S32K144_FOTA_Gateway”中是否启用“CSEC”无关,因为在测试 AN12323SW 时,第一步应该是下载并运行“S32K144_Memory_Partition”来执行分区,这默认情况下已经启用了 CSEC 并分配了一个密钥。
Senlent_0-1783587478752.png
AN12130:
Senlent_1-1783587519720.png
这就是MCU被锁定的原因;
由于该解决方案没有提供重置 CSEC 操作,因此无法恢复。
下次记得修改“S32K144_Memory_Partition”使其仅进行分区,而不启用 CSEC 或密钥。
您好@ Pranathi06
这是根据经验得出的结论,你的情况与此非常相似:CSEc 硬件加密模块已启用,阻止了 CSEc 加密密钥的批量擦除,从而导致了问题。
虽然芯片已死锁,MCU 无法再下载程序或进行调试,但只要芯片的电源正常,仍然可以使用 J-LINK 调试器通过 SWD/JTAG 调试接口连接到 S32K1xx 系列 MCU ARM Cortex M4F/M0+ 的 CoreSight DAP 调试访问接口,读取 MDM-AP 状态寄存器。
因此,您可以根据读取 MDM-AP 状态寄存器值来确定芯片死锁的根本原因。
如果您需要我帮助您找出死锁的原因,您可以尝试使用J-LINK读取MDM-AP 状态寄存器。