我有自己的引导加载程序应用程序,类似于 ST 提供的 IAP 示例,它运行并确定要运行 2 个主要应用程序中的哪一个,然后启动该应用程序。引导加载程序工作正常,主应用程序工作正常,但是当我将它们组合在一起时,主应用程序总是以硬故障告终。如果我从
STM32CubeMX IDE 启动主应用程序,它启动正常,但如果我重新启动整个处理器,引导加载程序运行然后启动主应用程序,但它总是在同一点出现硬故障。如果我让主应用程序从闪存开始运行,它工作正常并且没有硬故障。
我已经尝试取消初始化引导加载程序中使用的所有外围设备,这似乎没有什么区别。唯一仍在运行的是 Sys
tick 计时器。
是否有任何寄存器可以暗示为什么会发生硬故障?
如何确保主应用程序运行时一切都处于干净的状态?
我应该提一下,主应用程序是一个 FreeRTOS 项目,并且在初始化默认任务时发生硬故障。