【keil5调试】加断点后,进入调试断点取消

在使用Keil5进行程序调试时遇到断点失效问题,表现为断点变为‘!’并无法在C代码中停顿,只在汇编层跳转。解决方法包括:删除可执行文件名的.hex后缀,检查工程目录是否全英文,配置调试设置取消某些选项,以及处理printf重定向和优化等级设置。确保这些方面无误,能有效解决断点失效问题。

问题描述

在程序的C代码中添加断点,点击DUBUG进入调试。断点处出现“!”,断点取消了。单步调试,指针只在汇编处跳,不会在C代码中。

解决

原因是Name of Executable:AAAAj.hex
不要.hex后缀就行了在这里插入图片描述

其他原因

可能还有别的问题会导致:

  1. 把工程目录全部改为英文

  2. Edit - > configuration ->other在这里插入图片描述

  3. 魔法棒 -> debug -> settings -> download Options的两个选项(verify code download和download to flash)都不要勾选,勾选cache options下的两个选项
    在这里插入图片描述

  4. printf()重定向问题

  5. 过度优化 优化等级为0就行了
    在这里插入图片描述

  6. 勾选上Debug -> Run to main()
    在这里插入图片描述

资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 在使用 Keil 调试 STM32 程序时,若出现无法设置断点以及源代码窗口中无跳转箭头的情况,可参考以下解决办法。这两个问题虽不同,但都与 Keil 调试环境设置和硬件连接状态有关。 对于断点无法设置的问题,首先要确保仿真器连接正常,像 ST-LINK 或 JLINK 这类仿真器要能和 PC 正常通信,并成功连接 STM32 开发板。其次,要检查 STM32 开发板上 BOOT0 引脚的状态,若其为高电平(1),单片机会进入系统内存引导载程序,而非执行用户程序代码,从而导致无法调试用户代码,所以要保证 BOOT0 引脚为低电平(0),使单片机从用户 Flash 启动执行代码。 对于源代码中无跳转箭头显示的问题,先要查看 Keil调试设置,打开 “Options for Target STM32XX”(STM32XX 为项目目标名称),选择 “Debug”-“Settings”,看 “Download Options” 下的两个选项是否勾选,若勾选了,可尝试去掉,因为有时这些选项会干扰调试载源代码文件。然后要确保调试符号表完整,在 Keil 中设置编译器生成正确的调试符号,一般在项目选项 “Output” 标签页设置生成调试信息。此外,重启 Keil 和目标设备也可能有助于解决问题,因为这能清除一些临时错误状态。 在进行上述操作前,要保存好重要工作,防止数据丢失,同时确保所有驱动程序,尤其是仿真器驱动程序是最新的。如果问题依旧,可能要检查代码是否有编译错误,或者 Keil 版本与目标硬件是否兼容。按照这些步骤操作,一般能解决 STM32 在 Keil调试时的这两个问题,若仍未解决,可查阅官方文档或寻求专业技术支持。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

江邺英

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值