[应用相关] 关于STM32单片机DEBUG不能进入Main函数的问题

[复制链接]
1224|4
 楼主| grfqq325 发表于 2022-1-28 15:28 | 显示全部楼层 |阅读模式
AD, AI, ST, UG, BUG
STM32单片机DEBUG进入不了主程序
1.上电不运行,DEBUG还进入不了主程序

因为本司的线路板是外包加工的,板子拿回来以后发现其中一块板子上电不运行,经检查晶振,复位脚的状态都是正常的。DEBUG模式时发现进入不了主程序,PC指针停留在如下图的(汇编)程序段。


4569361f39b2d158c1.png





 楼主| grfqq325 发表于 2022-1-28 15:29 | 显示全部楼层
单步执行时发现只能在这个程序段循环。
从其他途径了解到此程序段是STM32单片机得ISP程序,属于厂家内置,用于芯片整片重新编程,用的是芯片厂的自举程序。此程序段存储在(System memory)系统存储器。由boot0 和boot1 引脚状态决定是否从System memery启动进入ISP程序段。
 楼主| grfqq325 发表于 2022-1-28 15:30 | 显示全部楼层
2.1 STM32单片机Flash分类
最后经过仔细检查boot脚,发现是加工厂家和boo0脚(接GND/VDD)的预留电阻焊错位置。
根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。 选项字节存储芯片的配置信息及对主存储块的保护信息。
 楼主| grfqq325 发表于 2022-1-28 15:31 | 显示全部楼层
2.2 关于boot脚的设置

2438961f39bb97e5ca.png
 楼主| grfqq325 发表于 2022-1-28 15:31 | 显示全部楼层
3.其他DEBUG模式不能进入主程序的原因
1.使用了printf函数但没有重定义printf函数。
2.没有勾选(User MicroLIB)微库。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

65

主题

687

帖子

4

粉丝
快速回复 在线客服 返回列表 返回顶部