STM32 无法正常debug的解决方法

近日工程中遇到了STM32无法Dubug 也无法正常运行的问题,现象如下:
在这里插入图片描述
程序一直在反汇编中循环运行,无法将程序运行至main函数,更不用说断点调试了。查看了网上的说法,可能的原因有
1、output 设置没有选中 debug information;
2、debug 选项 run to main() 没有选中;
3、程序中使用了printf 并通过fputc进行了重定向,但未选择“use microLib”选项;
4、debug 设置中 reset 选择为autodetect,导致无法调试。我这里选为SYSRESETREQ;
5、Boot0 引脚没有拉低,导致程序不是从flash中运行;

1)
在这里插入图片描述
2)
在这里插入图片描述
3)
在这里插入图片描述

在这里插入图片描述

综上几种可能的原因进行逐一排除,发现本项目的问题是BOOT0引脚没有拉低处理,通过导线将该引脚接地后,程序从FLASH中启动,并能进行debug调试。

由于硬件工程师将BOOT0引脚只进行悬空处理,让我浪费了很长时间排查问题。所以还是应该严谨一些呀。

援引大牛的说法: “boot0不能悬空的,必须要接地,否则有时候根本就不会工作,而且要加上拉,否则ISP不能烧录程序”
me:使用STLINK下载可以将BOOT0直接接地。

在这里插入图片描述
有些芯片没有boot1引脚,改用内部寄存器代替,这样就节省了一个引脚的空间。

参考:
https://blog.csdn.net/dddxxxx/article/details/77877051
http://bbs.eeworld.com.cn/thread-249822-1-1.html
https://www.eefocus.com/uniquecndzz1880742/blog/17-08/423551_35c3e.html?shenhe=0?shenhe=0
http://bbs.eeworld.com.cn/thread-329347-1-1.html
https://blog.csdn.net/qlexcel/article/details/51007482
https://www.amobbs.com/thread-5588543-1-1.html

  • 7
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值