OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 8547|回复: 5

STM32不管软件复位还是硬件复位,PC指针都会跑飞(程序跑飞)

[复制链接]

11

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-1-13
在线时间
18 小时
发表于 2016-5-1 13:43:40 | 显示全部楼层 |阅读模式
5金钱
一开始进入SWD调试的时候,PC指针是指针是指向一个未知的地址。过一段时间,对其进行软件复位,PC指针会指向正常的地址,如下图

这个时候程序可以跑起来,但是如果再来一次复位,程序指针又不知道到哪里去了

未能成功复位

未能成功复位

成功复位

成功复位
WCG.png

最佳答案

查看完整内容[请看2#楼]

终于知道了。。。下面给结个题。 其实,从实际来说,是很简单的问题,就是BOOT的问题。 以前我BOOT0和BOOT1从来都是什么都不接,都可以成功运行,但是现在这款单片机如果让BOOT0和BOOT1悬空的话,BOOT0上的电平很不稳定,有时候是高有时候是低,所以才会出现有时候复位能成功,有时候不能复位成功的情况。能成功的时候,就是BOOT0的电平是低的时候,此时PC指针指向0x0800xxxx(Flash的地址)。 复位不成功的时候,PC指针0x1Fxxx ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

11

主题

23

帖子

0

精华

初级会员

Rank: 2

积分
78
金钱
78
注册时间
2016-1-13
在线时间
18 小时
 楼主| 发表于 2016-5-1 13:43:41 | 显示全部楼层
终于知道了。。。下面给结个题。
其实,从实际来说,是很简单的问题,就是BOOT的问题。
以前我BOOT0和BOOT1从来都是什么都不接,都可以成功运行,但是现在这款单片机如果让BOOT0和BOOT1悬空的话,BOOT0上的电平很不稳定,有时候是高有时候是低,所以才会出现有时候复位能成功,有时候不能复位成功的情况。能成功的时候,就是BOOT0的电平是低的时候,此时PC指针指向0x0800xxxx(Flash的地址)。
复位不成功的时候,PC指针0x1Fxxxxxx(System Memory的地址)。
其实,我把BOOT0引脚给接地之后,就可以每次都成功复位了
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165537
金钱
165537
注册时间
2010-12-1
在线时间
2117 小时
发表于 2016-5-4 22:43:40 | 显示全部楼层
帮顶
回复

使用道具 举报

3

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
116
金钱
116
注册时间
2015-10-17
在线时间
19 小时
发表于 2016-5-5 16:35:08 | 显示全部楼层
学习了
回复

使用道具 举报

1

主题

7

帖子

0

精华

初级会员

Rank: 2

积分
66
金钱
66
注册时间
2016-4-20
在线时间
6 小时
发表于 2016-5-5 16:40:57 | 显示全部楼层
帮顶
回复

使用道具 举报

9

主题

34

帖子

0

精华

初级会员

Rank: 2

积分
114
金钱
114
注册时间
2015-1-13
在线时间
8 小时
发表于 2016-6-14 12:07:41 | 显示全部楼层

原子哥,之前你提到的,战舰提供的“系统软复位函数”是哪一个函数,在哪里可以找到呢?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-15 02:31

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表