打印
[应用相关]

关于STM32单片机DEBUG不能进入Main函数的问题

[复制链接]
367|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AD, AI, ST, UG, BUG
STM32单片机DEBUG进入不了主程序
1.上电不运行,DEBUG还进入不了主程序

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






使用特权

评论回复
沙发
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脚的设置

使用特权

评论回复
5
grfqq325|  楼主 | 2022-1-28 15:31 | 只看该作者
3.其他DEBUG模式不能进入主程序的原因
1.使用了printf函数但没有重定义printf函数。
2.没有勾选(User MicroLIB)微库。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

34

主题

326

帖子

3

粉丝