- 操作系统版本:Windows 11(226.31.4169)
- 操作系统平台(x86/x64):x64
- VsCode 版本: August 2024 (version 1.93)
- EIDE 插件版本:v3.19.9
- C/C++ 插件版本:1.21.6
- 何种编译器:ARMCC V5
@admin
我在EIDE中配合cortex debug插件来对STM32H750XB进行调试。我并没有编写多少代码,仅仅是使用CubeMX生成了SPI、GPIO等相关外设的初始化代码。在main函数的while循环中,我使用HAL_SPI_Transmit_IT来制造一个中断,使得连接LED的一个GPIO口可以发生反转。当我编译并烧录至开发板后,现象和我预想的一样,LED灯每隔1s亮灭。
随后我根据cortex debug的教程配置了launch.json 和settings.json文件,并且成功启动了调试器。
问题发生了:
我并没有设置断点,所以我按下继续(F5)按钮,此时程序理应正常允许,但是开发板上的LED并没有正常闪烁。我随后进行了逐步调试,发现在main函数的SystemClock_Config函数中触发了Error_Handler,使得程序没有进入我编写的while循环中。
这说明调试发生的问题和我编写的代码无关,在运行到我所编写的代码之前,程序就触发了Error_Handler。
我又使用了keil5的debugger,结果在keil5中,调试的结果和直接烧录的结果是一样的。
我又检查了我的launch.json文件,可是相关项并没有出错(我使用的是一块叫ART-Pi的开发板,板载STlinkv2-1和STM32H750XBH6)。
我也会去Cortex debug的Github下提问,如果有人遇到过和我类似的现象,或者有任何可能的线索,希望您能和我交流。
为了更好地描述现象,我录制了两段视频
cortex debug 调试录像
keil5 调试录像