您好,
我读了很多关于它的帖子。
在每次功能 RESET 之前,我可以通过修改 DCM-DCRWP1 或(更不安全)触发 IPMC_RGM->FREC= 0xF 来禁用 RESET。
但我从 RM 32.12 恢复模式中读到,例如 " SBAF 无法启动应用程序 " 或列出的其他案例导致 VTOR = 2040_0100 地址。
在这种情况下,我注意到 PC = 0x2040_012E 和堆栈指针 SP= 0x2040_200 都是错误的,它们位于我的 sram 内存中间!而且 PC 在 0x2040_012e 上无休止地循环!
我不知道是否需要在 2040_0100 上填写任何 VT 代码,但一切都卡住了!
跳过 HSE,sbaf 直接加载我的程序代码。
你能帮我吗?
致以最崇高的敬意
法比奥
你好@FabioG
这就是所谓的基于 JTAG 的恢复模式。您不应该将自己的代码加载到 RAM 中,WFI 和无尽循环是由 SBAF 写入的。这种恢复模式的目的是在允许用户连接调试器并采取适当的操作(例如重新编程应用程序、检查闪存内容、更改配置或其他任何操作)时,将设备置于某种定义的状态。
如果想在这种情况下自动执行自己的代码,可以使用 HSE 及其安全恢复模式。有关详细信息,请参阅 HSE 固件参考手册。
或者类似的东西--如果您想在应用程序损坏时执行特定代码,请参阅:
https://community.nxp.com/t5/S32K/How-to-enable-the-rollback-function-of-Hse-AB-SWAP-on-S32K3/m-p/21...
问候,
Lukas