我正在 S32K344 中执行引导加载程序,在跳转到应用固件后遇到了一些问题。
1 - 我已验证跳转正确,但在 MCU 初始化过程中出现了问题,它进入了 HardFault。然而,这种情况并不总是发生;通常情况下,跳转到生产固件时不会出现任何问题。在 MCU 初始化的以下阶段会出现这种问题:
引导加载程序初始化使用的外设包括:
MCU、OsIf、Siul2_Port_Ip_Init、IntCtrl_Ip、Gpt、Spi、Sbc_fs26、Wdg_43_fs26、Lpuart_Uart、flash_c40。
引导程序中的 deinit 功能:
如何在 MCU 功能中执行去初始化?
我还需要采取什么额外步骤吗?也许在 .mex 中?
2) 我使用 PTE13 端口作为输入。我已经使用了禁用 LMBCTLEN 寄存器的解决方案,而且在生产固件中也起了作用。但是,当生产固件由引导加载程序初始化时,该寄存器仍被选中。换句话说,当我在生产固件中调用 Mcu_Init / Mcu_InitClock / Mcu_SetMode 时,引导加载程序中的 MCU 初始化不会重做。我该怎么办?
3) 与问题 2 一样,PTA24 和 PTA25 引脚也出现了同样的问题。在生产固件中,它们的配置正确,工作正常。不过,在由引导加载程序初始化时,SOSC 源配置会丢失。 我该怎么办?
抱歉耽搁了。
解决办法是将引导程序 fw 的 .mex 配置放到应用程序 fw 上。不要在应用程序 fw 中初始化 MUC,只在引导加载器 fw 中初始化。
提示:不要在启动代码上进行优化
我很高兴您的回复。
1.我们将识别故障异常。
2& 3.RTD 5.0
嗨,@myst、
1.
重要的是要识别故障异常。根本原因可能有很多。
请遵循这些文件:
https://community.nxp.com/t5/S32K-Knowledge-Base/How-To-Debug-A-Fault-Exception-On-ARM-Cortex-M-V7M-...
https://community.nxp.com/t5/S32K-Knowledge-Base/Fault-handling-on-S32K14x/ta-p/1114447
2& 3.
这是哪个 RTD 版本?
谢谢!
BR,丹尼尔