OpenEdv-开源电子网

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

STM32 的 软件复位

[复制链接]

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
发表于 2013-8-9 14:51:22 | 显示全部楼层 |阅读模式
可以调用此函数实现系统复位:

NVICVectorTable 是你定义 的向量表地址, 一般 0x08000000

void SystemReset()
{
__MSR_MSP(*(vu32*) NVICVectorTable);
(*(void (*)())(*(vu32*)(NVICVectorTable +4)))();
}

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2013-8-9 17:45:53 | 显示全部楼层
有点IAP跳转的味道啊.
这样子做,IO口寄存器等还会保持原来的状态,不算是软复位吧.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
 楼主| 发表于 2013-8-10 07:59:22 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
然后又重新初始化了 包括时钟、IO等
回复 支持 反对

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2246
金钱
2246
注册时间
2010-12-16
在线时间
202 小时
发表于 2013-8-10 08:10:06 | 显示全部楼层
有隐患.

比如使用了端口锁定,除了复位无法解锁.

比如时钟树,串口,DMA,之类,使能状态是不能修改一些寄存器的,如果初始化代码没有先取消使能,对这些寄存器的修改无效.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

36

主题

1263

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1612
金钱
1612
注册时间
2012-6-15
在线时间
39 小时
 楼主| 发表于 2013-8-10 22:11:27 | 显示全部楼层
回复【4楼】shihantu:
---------------------------------
嗯 谢谢提醒 , 可以 把时钟、已经开的一些功能全部关闭 再重启
回复 支持 反对

使用道具 举报

2

主题

1446

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2246
金钱
2246
注册时间
2010-12-16
在线时间
202 小时
发表于 2013-8-10 22:29:13 | 显示全部楼层
说了嘛,这是隐患,不是必然发生.

什么时候忘了这回事,或者交接不好,就会出现问题,而且没有足够直接明确的提示.

对其他代码提出诸多要求的代码不是好代码.首当其冲的是死循环delay.
技术讨论请发帖 , 需要我回复请点左下的 < 回复 > 让系统通知我 . 本人不通过其他方式返回任何参数.
回复 支持 反对

使用道具 举报

8

主题

36

帖子

0

精华

初级会员

Rank: 2

积分
173
金钱
173
注册时间
2016-8-18
在线时间
30 小时
发表于 2018-5-7 16:51:09 | 显示全部楼层
你这样做会埋下隐患的,到时候出了问题就懵逼了,就好像强势使用goto一样
回复 支持 反对

使用道具 举报

4

主题

346

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3657
金钱
3657
注册时间
2016-2-21
在线时间
542 小时
发表于 2018-5-7 17:03:17 | 显示全部楼层
本来32就带有软件复位的功能,干嘛自己写一个
回复 支持 反对

使用道具 举报

1

主题

29

帖子

0

精华

初级会员

Rank: 2

积分
128
金钱
128
注册时间
2019-12-5
在线时间
15 小时
发表于 2021-7-28 19:38:56 | 显示全部楼层
shikihane 发表于 2018-5-7 17:03
本来32就带有软件复位的功能,干嘛自己写一个

在哪里,求明示
回复 支持 反对

使用道具 举报

0

主题

50

帖子

0

精华

高级会员

Rank: 4

积分
985
金钱
985
注册时间
2019-7-3
在线时间
185 小时
发表于 2021-7-29 17:22:37 | 显示全部楼层

NVIC_SystemReset();
CortexM核提供的。
回复 支持 反对

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-26 04:57

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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