[STM8] 看门狗溢出复位后,怎样禁止RAM清零

[复制链接]
5993|12
 楼主| jw5200545 发表于 2014-4-14 08:57 | 显示全部楼层 |阅读模式
要求是只是上电复位的时候清零RAM,在别的复位发生时候,不清零RAM,应该怎样阻止对RAM清零。急。。。。求高手。。。。在线等!
 楼主| jw5200545 发表于 2014-4-14 09:25 | 显示全部楼层
啥情况,等了几个小时了,居然没人回答!
icecut 发表于 2014-4-14 09:31 | 显示全部楼层
jw5200545 发表于 2014-4-14 09:25
啥情况,等了几个小时了,居然没人回答!

你还想马上有人回答啊....这可不是付费讨论....没人抢钱....

1.确认cpu能不能判断复位方式.
2.确认ram清零是软件作为.
3.在2处加条件跳过清零
 楼主| jw5200545 发表于 2014-4-14 09:48 | 显示全部楼层
应该是Cosmic CxSTM8   编译器把RAM清零了,应该怎样才能禁止,我现在具体使用方法:检测上电复位后,对RAM清零,当检测独立看门狗溢出复位后,不对RAM清零。谢谢。。。
通宵敲代码 发表于 2014-4-14 14:07 | 显示全部楼层
具体问题具体分析,分析看门狗复位的过程,将RAM清零的指令屏蔽掉。

不过不知道可行不可行,看门狗复位本身的作用就是为了防止程序跑飞的,
一旦程序跑飞那基本可以肯定是内部传输的数据出问题了,ram应给是要被清零的,
这样才能保证看门狗复位的作用。
而你却要屏蔽掉清零指令,这样做有什么特殊需要吗??还是自己研究着玩。
airwill 发表于 2014-4-14 15:20 | 显示全部楼层
是的, 编译器把RAM清零了, 准确地说, 是启动代码.
看看如何跳过这段代码或改造一下它
qd118 发表于 2014-4-14 17:40 | 显示全部楼层
我也想知道启动代码在哪里(iar编译 )
 楼主| jw5200545 发表于 2014-4-14 19:25 | 显示全部楼层
是这样的:我现在做一个电池产品,程序只需要1秒左右执行一次,执行完了以后,就让整个系统停掉,进去休眠状态,我看手册,只有进入halt  才能让耗电量达到最低。而看门狗刚好是在1秒的时候,就会溢出,溢出后程序执行一次,然后再进入休眠,然后在溢出,这样循环。现在的问题是,看门狗溢出复位后,和上电复位,效果是一样的,但我希望是启动代码只在上电复位的时候执行,在别发复位发生时,不执行。。。。。。。
aerwa 发表于 2014-4-14 21:34 | 显示全部楼层
1关掉看门狗;2 程序里清看门狗。
l4157 发表于 2014-4-14 23:17 | 显示全部楼层
jw5200545 发表于 2014-4-14 19:25
是这样的:我现在做一个电池产品,程序只需要1秒左右执行一次,执行完了以后,就让整个系统停掉,进去休眠 ...

IAR用__no_init 定义变量 可以让变量不被初始化,然后判断CPU是上电启动或WDT启动,然后选择要不要初始化变量...
北海326 发表于 2016-7-25 18:27 | 显示全部楼层
STVD软件内可以设置不清除RAM。IAR的还不了解怎么搞~

复位不清ram.pdf

309.19 KB, 下载次数: 59

qbasicljx 发表于 2016-7-26 09:37 | 显示全部楼层
如果不是硬件清零的话,修改启动代码了
华发早生 发表于 2016-9-1 14:26 | 显示全部楼层
感觉还是STVD强大点,但是在非调试状态下不能查看程序跳转是很蛋疼的一件事。希望ST能在后续版本中改进。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

7

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部