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

1.上电不运行,DEBUG还进入不了主程序

因为本司的线路板是外包加工的,板子拿回来以后发现其中一块板子上电不运行,经检查晶振,复位脚的状态都是正常的。DEBUG模式时发现进入不了主程序,PC指针停留在如下图的(汇编)程序段。在这里插入图片描述单步执行时发现只能在这个程序段循环。
从其他途径了解到此程序段是STM32单片机得ISP程序,属于厂家内置,用于芯片整片重新编程,用的是芯片厂的自举程序。此程序段存储在(System memory)系统存储器。由boot0 和boot1 引脚状态决定是否从System memery启动进入ISP程序段。

2.总结

转载自https://blog.csdn.net/jhn199388/article/details/73770286

2.1 STM32单片机Flash分类

最后经过仔细检查boot脚,发现是加工厂家和boo0脚(接GND/VDD)的预留电阻焊错位置。
根据用途,STM32片内的FLASH分成两部分:主存储块、信息块。 主存储块用于存储程序,我们写的程序一般存储在这里。 信息块又分成两部分:系统存储器、选项字节。 系统存储器存储用于存放在系统存储器自举模式下的启动程序(BootLoader),当使用ISP方式加载程序时,就是由这个程序执行。这个区域由芯片厂写入BootLoader,然后锁死,用户是无法改变这个区域的。 选项字节存储芯片的配置信息及对主存储块的保护信息。

2.2 关于boot脚的设置

boot0boot1启动模式
0xUser Flash memory (从用户flash启动)
10System memory (从系统存储器启动)
11Embedded SRAM(从内嵌SRAM启动)

3.其他DEBUG模式不能进入主程序的原因

1.使用了printf函数但没有重定义printf函数。
2.没有勾选(User MicroLIB)微库。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值