你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM32如何实现看门狗复位不初始化RAM区

[复制链接]
fanyao-367090 提问时间:2014-2-28 16:10 /
大家好,我是做工业控制的,我想问一下STM32如何实现看门狗复位不初始化RAM区,因为是做控制的所以我们想实现CPU热复位后系统能接着原来的流程走,动作开出能不受看门狗复位的影响,即复位前开出的动作,看门狗复位后还是保持开出状态,网上说可以修改启动代码,请问如何实现?谢谢!
收藏 1 评论5 发布时间:2014-2-28 16:10

举报

5个回答
fengye5340 回答时间:2014-2-28 16:30:40

RE:STM32如何实现看门狗复位不初始化RAM区

不知道你RAM中需要保存的现场变量有多少个?如果是热复位的话,可以使用窗口看门狗,,在程序“PASS掉”之前,在中断中保存一下现场数据。MDK环境下,倒是有个选项可以选择不让RAM初始化,不过这个功能没用过。如果不初始化RAM,程序出现问题的可能性会不会更大呢
废鱼 回答时间:2014-3-1 17:11:37

RE:STM32如何实现看门狗复位不初始化RAM区

如果是RESET引脚复位不可能实现。
wkuang 回答时间:2014-3-3 23:06:15

RE:STM32如何实现看门狗复位不初始化RAM区

没法不复位RAM,复位后片内RAM都在上电时刻清空,你无法预置复位的时刻点,除非你检测看门狗,快要复位的时候,自动备份一把到FLASH里,但是备份需要的时间比较长。
lockyer 回答时间:2016-8-25 08:59:45
1、用窗口看门狗WWDG,开通中断,复位前会进入中断,中断中可以保存RAM数据写到FLASH中或者后备寄存器中。然后把其中一个写入特定的数字。复位后重启开始时判断是否看门狗复位,如果是,则把变量拷贝回RAM初始化变量,FALSH读出是一样的。如果不是看门狗复位,而是人为复位,则不考贝变量,直接初始化清零。

2、每一次操作后,改变了IO,或者改变了状态,都写到后备寄存器或FLASH中,不过这个寿命有限,最好外接EEPROM作为存储。FLASH的话,可以用一个字节指示写入次数,多于多少次就换下一页。这样寿命就很长了。重启复位时,判断是否看门狗复位,是的话,从FLASH读出上一次的状态就好了。

gudujiangone_30 回答时间:2017-1-13 17:13:08
请问你的解决没有。用的IAR还是Keil。这俩个方法是不一样的

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版