一起嗨,
我正在尝试使用
STM32G031 开始一个新项目。MCU 的最终决定尚未做出,因此我目前正在测试 Nucleo STM32G031K8 板的可能性。我正在使用板载 USB 调试接口。
我启动了一个新的 Keil uVision 项目,一切都按预期工作,直到我在主循环的末尾添加 WFI()。添加后,我启动调试会话,一切正常。但是在离开第一个调试会话并尝试再次启动它之后,我收到了错误消息“Invalid ROM table”。
从那时起,不可能使用 uVision 调试甚至刷写 MCU。我必须使用存储引导加载程序复制一个十六进制文件(奇怪的是它是同一个源),然后就可以开始一个新的调试会话。不幸的是,结果相同,离开它并再次尝试调试后,我收到了此错误消息。
我检查了我在这里找到的所有想法和提示,检查了不同的“连接和重置选项”,因为这看起来可以解决一些其他用户的“无效 ROM 表”错误,但没有成功。
所有程序和界面都更新到当前版本。目前我正在阅读有关 DBGMCU_CR 寄存器选项的信息,但我没有使用待机或停止模式,所以我认为这不会改变这种情况。目前,该寄存器处于初始状态。
第二个奇怪的是,如果我使用ST提供的示例软件,也会出现同样的情况。如果我使用
STM32Cube_FW_G0_V1.4.0ProjectsNUCLEO-G031K8Examples_LLPWRPWR_EnterStandbyMode
并删除“LL_LPM_EnableDeepSleep();” 在第 273 行,我得到了相同的结果。
可能存在时钟或中断问题。目前我正在使用 HSI。
有没有人有想法或暗示从哪里开始?当然,我可以尝试在调试模式下关闭 WFI(),但这只是一个快速且肮脏的修复。
我对任何想法都很满意。太感谢了。