对AVR为什么会冲掉eeprom数据的最新“谬论”
发布: 2009-9-14 15:15 | 作者: 玲珑 | 查看: 154次
作者:晓奇
AVR芯片reset之前在干什么?不知你有没有做过试验或者观察过、想过?
AVR的运行速度快是他的一项有竞争力的特点,留意它自身资料介绍的reset
过程,不难发现在产生reset信号之前他有一段时间是处于非正常工作状态的,
我们可以直观观察在下载程序的过程中,在写入与校对之间,下载线会短暂的
释放reset脚,在进入校对时又进入reset拉低状态,在这个短暂reset释放期
间,你的程序会胡乱执行一段,有时都不一样,但确实是在执行你的程序,
我编写的液晶显示的系统会发现下载过程中液晶屏上会显示黑条,而且是会走
动的,写完进入校对之前显示一段正常的内容,但是由于是程序乱飞所以显示
的数据大部分时候全是零,估计这段时间程序跑进了我的显示部分,在进入校
对方式时,屏幕又不动了。
如果你的硬件系统设计上没有认真对待他的reset部分的处理,则会在上电的过
程中,reset有效之前系统就会乱飞执行一段你不想执行的程序,例如写eeprom
由于没有完整的执行过程,所以写入eeprom的数据也将是随机的,写入的地址也
将是随机的,但是avr的上电初始状态基本上ram都等于零,因此就产生了
“零地址不能使用,不可靠”的说法,如果在执行这段写eeprom之前又进入过
其他程序,那么你的eeprom的任何地址都将是“不能使用”和“不可靠的”,
因为这个时候鬼知道它携带了什么参数才进入eeprom操作的呢?要知道短短的
数十微秒他就足可以破坏你的eeprom,而且是用了你自己编的程序去破坏你自己
的数据,够残忍吧?!
AVR芯片reset之前在干什么?不知你有没有做过试验或者观察过、想过?
AVR的运行速度快是他的一项有竞争力的特点,留意它自身资料介绍的reset
过程,不难发现在产生reset信号之前他有一段时间是处于非正常工作状态的,
我们可以直观观察在下载程序的过程中,在写入与校对之间,下载线会短暂的
释放reset脚,在进入校对时又进入reset拉低状态,在这个短暂reset释放期
间,你的程序会胡乱执行一段,有时都不一样,但确实是在执行你的程序,
我编写的液晶显示的系统会发现下载过程中液晶屏上会显示黑条,而且是会走
动的,写完进入校对之前显示一段正常的内容,但是由于是程序乱飞所以显示
的数据大部分时候全是零,估计这段时间程序跑进了我的显示部分,在进入校
对方式时,屏幕又不动了。
如果你的硬件系统设计上没有认真对待他的reset部分的处理,则会在上电的过
程中,reset有效之前系统就会乱飞执行一段你不想执行的程序,例如写eeprom
由于没有完整的执行过程,所以写入eeprom的数据也将是随机的,写入的地址也
将是随机的,但是avr的上电初始状态基本上ram都等于零,因此就产生了
“零地址不能使用,不可靠”的说法,如果在执行这段写eeprom之前又进入过
其他程序,那么你的eeprom的任何地址都将是“不能使用”和“不可靠的”,
因为这个时候鬼知道它携带了什么参数才进入eeprom操作的呢?要知道短短的
数十微秒他就足可以破坏你的eeprom,而且是用了你自己编的程序去破坏你自己
的数据,够残忍吧?!



