打印

认为RAM数据掉电会丢失的进...

[复制链接]
7883|21
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
ningling_21|  楼主 | 2009-12-8 22:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
今天发现三星的8位MCU居然有特异功能,RAM数据掉电不丢失了....
现象:
一个旧产品,软件有点小问题需更改。改完后在仿真器上运行没问题,但烧录芯片后发现,居然有异常现象:本来程序是受外部拨码开关控制运行的(程序判断开关的状态,然后把RAM赋值,程序再根据开关状态赋值的那个RAM单元的数值去运行),结果现在不受开关控制了 ...   想了一下怎么也想不通,于是再仿真运行,果然是同样的现象,只是刚才没试出来,经过1个小时的跟踪,终于找到原因,原来是初始化时RAM中一个寄存器没有清零导致,只要把那个漏掉的RAM清零,问题解决。可是,又一想不会吧,传说中的RAM掉电数据会丢失哦...

但事实证明,RAM内的数据在短时间内不会丢失,要想程序正常运行,开始初始化一定把所有的RAM都清零....(当然在有需要的情况下)

相关帖子

沙发
不亦心| | 2009-12-8 22:50 | 只看该作者
会不会时上电复位时,RAM的值是随机值导致的呀,不是什么数据不丢失?

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ningling_21 + 1
板凳
原野之狼| | 2009-12-8 23:13 | 只看该作者
随机值 可不是零值

使用特权

评论回复
地板
谈的元| | 2009-12-8 23:41 | 只看该作者
RAM  好比电容

使用特权

评论回复
5
hotpower| | 2009-12-9 00:02 | 只看该作者
本来就是如此,与什么MCU无关。

要想程序正常运行,开始初始化一定把所有的RAM都清零


菜农认为恰恰相反~~~

使用特权

评论回复
6
wh6ic| | 2009-12-9 08:48 | 只看该作者
不少RAM掉电保持数据的电压可以低到1V,如果断电时间间隔比较短,上次的东东极可能会影响你。

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
ningling_21 + 1 我很赞同
7
lost1421| | 2009-12-9 09:30 | 只看该作者
楼主是新手吧!
老手都知道这是什么原因造成的。

使用特权

评论回复
8
yewuyi| | 2009-12-9 09:59 | 只看该作者
今天发现三星的8位MCU居然有特异功能,RAM数据掉电不丢失了....
现象:
一个旧产品,软件有点小问题需更改。改完后在仿真器上运行没问题,但烧录芯片后发现,居然有异常现象:本来程序是受外部拨码开关控制运行的( ...
ningling_21 发表于 2009-12-8 22:24


1、从来没说会自动清零
2、你的代码似乎也有问题,即使非0,你的代码还是应该根据KEYBOARD状态给RAM置值的啊,为何没有置值成功?!
3、RAM的数据保持电压现在都做的很低了

使用特权

评论回复
9
ningling_21|  楼主 | 2009-12-9 12:20 | 只看该作者
1、从来没说会自动清零
2、你的代码似乎也有问题,即使非0,你的代码还是应该根据KEYBOARD状态给RAM置值的啊,为何没有置值成功?!
3、RAM的数据保持电压现在都做的很低了 ...
yewuyi 发表于 2009-12-9 09:59

没说会自动清零,只是说初始化时应该根据需要把RAM清零。
RAM内容根据开关(当开关打开时)的设置赋值为1,如果开关不打开则不改变RAM内容,即保留上次的赋值....

多次开关后发现:上电后RAM中确实是随机值,并不是固定为1...

使用特权

评论回复
10
5880527| | 2009-12-9 12:22 | 只看该作者
书本上也是说RAM中值上电后为随机啊

使用特权

评论回复
11
ningling_21|  楼主 | 2009-12-9 12:25 | 只看该作者
本帖最后由 ningling_21 于 2009-12-9 12:32 编辑
本来就是如此,与什么MCU无关。



菜农认为恰恰相反~~~
hotpower 发表于 2009-12-9 00:02

回菜农:根据自己产品的需要清零RAM,并不是说一律都要清零...
感谢楼上几位...

使用特权

评论回复
12
因特网用户| | 2009-12-12 21:58 | 只看该作者
hotpower喜欢把RAM里面放0xAA 0X55

使用特权

评论回复
13
hotpower| | 2009-12-13 07:58 | 只看该作者
本帖最后由 hotpower 于 2009-12-13 08:06 编辑

因特网用户偷学到了“0x55aa的真谛了”???

应该发帖自贺才是~~~要学会“霸道”~~~应该自贺战胜了菜农~~~



书本上也是说RAM中值上电后为随机啊


哈哈~~~上电是长时间掉电的产物,瞬间的掉电可认为是看门狗复位~~~

使用特权

评论回复
14
wangkj| | 2009-12-13 08:37 | 只看该作者
掉电后,确实是随机数据,如果时间不到2个小时,至少50%的数据能保持。
1分钟之内,99%的数据是对的。
1s之内,99.9的数据是对的。
这是俺对sdram研究一年多的结果。

使用特权

评论回复
15
hotpower| | 2009-12-13 08:46 | 只看该作者
哈哈~~~俺已用了28年之久了~~~

谁反对就向苍天申请“早生30年”或让菜农“晚生20年”~~~

使用特权

评论回复
16
因特网用户| | 2009-12-13 12:47 | 只看该作者
hot大叔,先放下RAM数据是否会丢失不表,说说0xaa 0x55是否会被修改的问题
程序运行跑飞主要就是PC或者RAM数据被修改吧?它们被修改的概率应该是一样的啊,很难保证0xaa55在程序跑飞时没被修改,光靠0xaa55来做复位检测似乎不是很可靠啊,除非你采用一些其他的措施

使用特权

评论回复
17
因特网用户| | 2009-12-13 13:05 | 只看该作者
估计每次定时中断都写0XAA55会比较好点
只要中断没被跑飞的程序关掉就OK

使用特权

评论回复
18
ningling_21|  楼主 | 2009-12-13 20:56 | 只看该作者
估计每次定时中断都写0XAA55会比较好点
因特网用户 发表于 2009-12-13 13:05


为什么呢?

使用特权

评论回复
19
shiaf| | 2009-12-14 11:53 | 只看该作者
0xaa55 也有 1/65536 的概率,对大批量、高可靠性的产品也是不允许这样做的。

使用特权

评论回复
20
ejack| | 2009-12-14 12:11 | 只看该作者
程序运行跑飞主要就是PC或者RAM数据被修改吧?


RAM数据被篡改没道理

使用特权

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

本版积分规则

5013

主题

17727

帖子

51

粉丝