7776|13

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

stm8冷启动和热启动的判断 [复制链接]

                                 热启动的时候想保持一个变量不变,但是又不能存在eeprom和FALSH中怎么办啊?
此帖出自stm32/stm8论坛

最新回复

                                 keil也要加noinit区域。ADS也需要。  详情 回复 发表于 2010-8-6 08:46
点赞 关注
 

回复
举报

78

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
                                 请定义一下:什么叫冷启动?什么叫热启动?
此帖出自stm32/stm8论坛
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
冷启动就是上电复位
热启动就是在有电的情况下手动复位
此帖出自stm32/stm8论坛
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

4
 
冷启动就是上电复位
热启动就是在有电的情况下手动复位
如果是这样定义的,通常的做法是使用一个变量或一个内存区域,在系统启动之后,通过程序检查这个变量或区域的内容是否为一个已知的内容,如果是已知的内容,表示这次是热启动,否则是冷启动。一般我们称这种方法为"签名",它是利用热启动时原内存中数据不丢失,和冷启动后存储器内容不确定的特性。

比如,一般我们把"签名"区域设置为"STM"或"STMicroelectronics"。
此帖出自stm32/stm8论坛
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 那在STM8里面又是怎么实现签名的呢?
此帖出自stm32/stm8论坛
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 不是说了吗,"签名"区域就是一个变量或一个内存区域,实现签名就是对变量进行赋值。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

7
 
                                 复位之后变量不是都清0了吗
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 麻烦用程序写个例子,原理我知道,但是不知道具体怎么做
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

9
 
复位之后变量不是都清0了吗
复位之后变量都清0不是硬件做的,是启动文件作的,你看看启动文件并修改一下就可以了。
此帖出自stm32/stm8论坛
 
 
 

回复

62

帖子

0

TA的资源

一粒金砂(初级)

10
 
                                 stm8的启动文件怎么修改啊 ,我是新手从来没有接触过改启动文件的
此帖出自stm32/stm8论坛
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

11
 
stm8的启动文件怎么修改啊 ,我是新手从来没有接触过改启动文件的
我没做过,我也不会,你问问其他人吧。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

12
 
每种芯片我都会研究冷启动和热启动的问题的,因为STM8抗干扰过不了,就没有接着测试了。

以下只是猜测:
在不想上电清0的变量前加“volatile”,进入main后判断是冷启动还是热启动。
此帖出自stm32/stm8论坛
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

13
 
上电清0不是用加volatile去解决的。
IAR应该加__no_init。
更通用一些的做法是在链接配置中把这个区域排除灾可分配内存之外。
另外,目前很多MCU都有复位原因寄存器。其中有的会有 POR指示位。
不幸的是,STM8S的RST_SR没有POR指示位。只有EMCF、SWIMF、ILLOPF、IWDGF、WWDGF等复位指示位。
因此建议楼主可以考虑下更改冷、热启动的定义。除以上几种复位外的复位都定义为上电冷启动。
一般来说,这样定义是可以接受的。
此帖出自stm32/stm8论坛
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

14
 
                                 keil也要加noinit区域。ADS也需要。
此帖出自stm32/stm8论坛
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表