打印
[STM32F1]

STM32软复位与上电复位的区别?真诚希望明白人解答

[复制链接]
20644|23
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
xlsbz|  楼主 | 2014-11-10 09:09 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
软复位,这两句代码
__set_FAULTMASK(1);      // 关闭所有中端
NVIC_SystemReset();// 复位


那么和上电复位区别?能达到一样的效果么?
沙发
ningling_21| | 2014-11-10 09:18 | 只看该作者
软件复位 和上电复位 有点差别

举例说明,STC的芯片,上电复位可以串口下载程序,但软件复位不能串口下载程序,尽管STC和STM32有很大不同。

但结果都是从0地址开始执行程序

使用特权

评论回复
板凳
xlsbz|  楼主 | 2014-11-10 10:02 | 只看该作者
ningling_21 发表于 2014-11-10 09:18
软件复位 和上电复位 有点差别

举例说明,STC的芯片,上电复位可以串口下载程序,但软件复位不能串口下载 ...

嗯 不同芯片是有差别的  51有的芯片  软复位和上电是一样的。芯片提供了软复位 给芯片内部的重新上电的引脚使能了。

STM32这个目前看来 除了电池的后备区域有不同,其余没有不一样的地方。
我再试试看。

使用特权

评论回复
地板
lxyppc| | 2014-11-10 10:56 | 只看该作者
楼主最近很活跃,问题也比较有想法
就是还差一点对程序本质的理解

使用特权

评论回复
5
xlsbz|  楼主 | 2014-11-10 11:05 | 只看该作者
lxyppc 发表于 2014-11-10 10:56
楼主最近很活跃,问题也比较有想法
就是还差一点对程序本质的理解

啥本质?
现在我就是到网上乱搜搜,综合一下意见,感觉不靠谱的就问一问。顺便也能给别人提示。
避免疏漏的最好做法就是综合大家的意见。
你指的本质是看 杭州宋先生的  《权威指南》之类的书么?
===========================
用仿真器下载load就打印输出rst复位,就是那个RCC_GetFlagStatus函数返回值

重新上电,不 添加软复位 就不打印输出输出rst复位。
重新上电, 添加软复位 就打印输出输出rst复位。

使用特权

评论回复
6
lxyppc| | 2014-11-10 11:43 | 只看该作者
权威指南对理解内核比较有帮助
本质就是你的程序是怎么运行起来的
全局变量,局部变量,栈这些是怎么来的

使用特权

评论回复
7
styleno1| | 2014-11-10 11:54 | 只看该作者
主要2点:

1、复位后状态寄存器不一样;
2、复位影响的范围不一样。

使用特权

评论回复
8
mmuuss586| | 2014-11-10 12:16 | 只看该作者
软件复位,有时你需要程序重新复位的时候;
执行软件复位指令,可以让程序重新开始运行;

使用特权

评论回复
9
xlsbz|  楼主 | 2014-11-10 13:06 | 只看该作者
lxyppc 发表于 2014-11-10 11:43
权威指南对理解内核比较有帮助
本质就是你的程序是怎么运行起来的
全局变量,局部变量,栈这些是怎么来的 ...

你是哪个版的版主?怎么看出来不不懂这个。
有本事咱俩PK一个
选那个8051 就学校学的那个
keil c编译器版本 你选一个 优化级别0-8级
写个简单函数
少于8个参数
可用static xdada pdada关键字  模式就small
可用using关键字
编译器版本建议你选V8.0以上

就是说弄个简单的例子 不用编译 咱俩猜一下 栈顶的位置
对了 假设函数不被中断调用

可否?

使用特权

评论回复
10
xlsbz|  楼主 | 2014-11-10 13:11 | 只看该作者
xlsbz 发表于 2014-11-10 13:06
你是哪个版的版主?怎么看出来不不懂这个。
有本事咱俩PK一个
选那个8051 就学校学的那个

模式你要是随便选也可以

使用特权

评论回复
11
xlsbz|  楼主 | 2014-11-10 13:13 | 只看该作者
@lxyppc

使用特权

评论回复
12
xlsbz|  楼主 | 2014-11-10 13:29 | 只看该作者
lxyppc 发表于 2014-11-10 10:56
楼主最近很活跃,问题也比较有想法
就是还差一点对程序本质的理解

大侠  有个板块 技术PK大擂台  好像特意为咱俩准备的啊

快回复啊  怎么样  应战不?
要么参数是指针 简单结构体也行,具体咱俩到时候商议一下。结构体也不要太复杂。

使用特权

评论回复
13
lxyppc| | 2014-11-10 13:45 | 只看该作者
xlsbz 发表于 2014-11-10 13:06
你是哪个版的版主?怎么看出来不不懂这个。
有本事咱俩PK一个
选那个8051 就学校学的那个

我没有了解过8051和他的编译器
我没本事,不能和你PK

使用特权

评论回复
14
grant_jx| | 2014-11-10 13:46 | 只看该作者
如果你说的是上电复位,除去考虑硬件寄存器值更新到复位初始值,还要考虑RAM的数据全部掉电丢失(原因在于VDD未保证在RAM维持电压以上)。
软件复位只是复位了PC,RAM、硬件寄存器、堆栈都不会改变。


至于另一位我并不认识的版主说的,程序的运行的本质?我也看不懂,不就是RST的向量地址起始吗,有那么复杂?哪个啥量的,RAM的数据都丢了,还讲啥“本质”?

使用特权

评论回复
15
lxyppc| | 2014-11-10 13:54 | 只看该作者
grant_jx 发表于 2014-11-10 13:46
如果你说的是上电复位,除去考虑硬件寄存器值更新到复位初始值,还要考虑RAM的数据全部掉电丢失(原因在于V ...

确实如此
我词不达意了
在回复这个主题的时候考虑了楼主的另外一个关于
全局变量会变的问题的主题
提出“本质”一词是想让楼主从代码启动的过程来考虑他的这一系列问题

使用特权

评论回复
16
xlsbz|  楼主 | 2014-11-10 14:18 | 只看该作者
lxyppc 发表于 2014-11-10 13:45
我没有了解过8051和他的编译器
我没本事,不能和你PK

大侠 我只是在扯淡 不必当真。

使用特权

评论回复
17
xlsbz|  楼主 | 2014-11-10 14:24 | 只看该作者
lxyppc 发表于 2014-11-10 13:45
我没有了解过8051和他的编译器
我没本事,不能和你PK

你的意思是 你熟悉的编译器  你就能猜到栈顶的位置??
:lol

使用特权

评论回复
18
lxyppc| | 2014-11-10 14:58 | 只看该作者
xlsbz 发表于 2014-11-10 14:24
你的意思是 你熟悉的编译器  你就能猜到栈顶的位置??

我不会猜,我一般看生成的map文件

使用特权

评论回复
19
lxyppc| | 2014-11-10 15:00 | 只看该作者
xlsbz 发表于 2014-11-10 14:18
大侠 我只是在扯淡 不必当真。

论坛扯这些淡的人太少,不够活跃

使用特权

评论回复
20
徐大山| | 2014-11-10 15:38 | 只看该作者
软复位与硬复位都是从一个地址开始,可以说从执行顺序上是一样的。
不一样的是,外设。某些极端情况下,只有硬复位才有可能变正常(跟设计相关)。

使用特权

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

本版积分规则

190

主题

1614

帖子

4

粉丝