用STM32CubeMX新建工程,编译完成后,第一次仿真调试,可连接,运行程序后仿真器直接会断掉。后续仿真器也无法连接。

当遇到程序导致仿真器挂起的情况,可以修改板子的启动模式,清除Flash中的程序,然后在HAL_Init()函数中发现HAL_MspInit()禁用了调试功能。这通常是由于CubeMX配置选择了NoDebug导致的。为进行调试,需在CubeMX中更改DEBUG设置或手动屏蔽相关代码。
摘要由CSDN通过智能技术生成

       出现这种情况,把板子的启动模式先修改了,然后连接上仿真器,把falsh中的程序全部擦除。这样就可以重新下载程序调式,同时也说明时程序导致仿真器挂掉的。

重新下载程序,然后单步调试,使用F11逐步往下执行,发现在生成程序的第一个函数

HAL_Init()中, 调用了HAL_MspInit();/* Init the low level hardware */,而在这个函数中,有关于debug的注释/** NOJTAG: JTAG-DP Disabled and SW-DP Enabled*/,注释下面的函数就是使能JTAG和SWD功能的。不能进行调试的代码是因为着两个仿真器的设置全部都被禁用了。

 这一个函数的生成对应cubeMX中的SYS配置,如下图:

 如果选择的是No Debug,则生成的代码就会禁用调试,导致出现上述问题,故需要调试的时候,要修改DEBUG的设置。或者在生成代码后屏蔽这句代码即可!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值