今天发现三星的8位MCU居然有特异功能,RAM数据掉电不丢失了....
现象:
一个旧产品,软件有点小问题需更改。改完后在仿真器上运行没问题,但烧录芯片后发现,居然有异常现象:本来程序是受外部拨码开关控制运行的(程序判断开关的状态,然后把RAM赋值,程序再根据开关状态赋值的那个RAM单元的数值去运行),结果现在不受开关控制了 ... 想了一下怎么也想不通,于是再仿真运行,果然是同样的现象,只是刚才没试出来,经过1个小时的跟踪,终于找到原因,原来是初始化时RAM中一个寄存器没有清零导致,只要把那个漏掉的RAM清零,问题解决。可是,又一想不会吧,传说中的RAM掉电数据会丢失哦...
但事实证明,RAM内的数据在短时间内不会丢失,要想程序正常运行,开始初始化一定把所有的RAM都清零....(当然在有需要的情况下) |