原创 FLASH变量和FLASH计"次"器的构成

2008-5-7 23:34 3210 3 4 分类: MCU/ 嵌入式
FLASH变量和FLASH计"次"器的构成
雁塔菜农 发表于 2006-4-8 10:24:00



hotpower 发表于 2006-4-8 09:45 ZLG-ARM ←返回版面 profile.gif fav.gif edit.gif

FLASH变量和FLASH计"次"器的构成


由于FLASH写入次数和写入擦除等待时间等方面的约束,FLASH变量和FLASH计数器很难构成.
因为有'0'不能变'1'的束缚,所以FLASH变量不可以定位到某个存储单元地址上.
同理FLASH计数器也一样.

仔细分析"FLASH二次写入技术"后不难看出,若稍做变通,就可实现真正的FLASH变量和FLASH计数器.

计数器是每次遇到它都+/- 1,那么为什么不能每次清除1位变成"计次器"呢???
FLASH一般空间很大,而且几乎都是以扇区为单位擦除的.

那么假定FLASH计数器为8位,即0~255,那么就可分配256/8=32个字节作为"FLASH计次器",即:
0xff,0xff.....,0xff表示0x00
0xfe,0xff.....,0xff表示0x01
0xfc,0xff.....,0xff表示0x02
...........................
0x00,0xff.....,0xff表示0x07
0x00,0xfe.....,0xff表示0x08
0x00,0xfc.....,0xff表示0x09
...........................
0x00,0x00.....,0xff表示0x0f
...........................
0x00,0x00.....,0x00表示0xff

对于FLASH变量则必须采用每次改写地址+1的原则,还需要限制"写入次数".
故一般与FLASH计次器联合使用,即FLASH计次器实际为FLASH变量的"写入指针".
当"写入次数"满时才清除FLASH计次器和FLASH变量所在的扇区.

注意,FLASH计次器在初始化完成后就应该读到RAM中!!!
写入FLASH变量的同时也要更新FLASH计次器以备掉电后再将FLASH计次器的值读入RAM中.

一般FLASH变量是用于不频繁改写时,若需频繁改写,则再需要将FLASH变量读入RAM中.

即运行时在RAM中,掉电或上电时在FLASH中.


阅读全文(863) | 回复(0) |反映问题 | 引用通告(0) | 编辑
 



PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户411912 2008-5-8 09:27

好像有资料讲过,忘了是NAND Flash还是NOR Flash了,擦除一次之后,在下一次擦除之前,重复写入的次数是由严格限制的,只有几次而已。所以,如果真的要使用这种办法,楼主要注意Flash的类型。
相关推荐阅读
雁塔菜农 2012-04-05 17:51
2012年度新唐Cortex-M0助学开发套件有约束条件赠送申报贴
2012年度新唐Cortex-M0助学套件从4月起每月有约束条件发放16套。 申报人必须是21ic或 EDNC 会员 并具备1月的会龄。 申报时必须注明“遵守约束条件,缴纳250元订金,上...
雁塔菜农 2012-04-05 17:04
2012年度Cortex-M0助学园地推广框图
...
雁塔菜农 2012-04-01 17:59
2012年度Cortex-M0助学园地奖励计划细则
抢楼请点击:菜地公告:即日起创建《菜农Cortex-M0助学园地》(盖楼入口) 每月10号和25号的下午2:50进行2次抢楼,规则同去年12月的疯狂抢楼活动。 奖品由21IC、北航、广州迪圣...
雁塔菜农 2012-02-03 08:19
菜农谋略:搞定牛人宋俊德,对女牛人孙昌旭说:“记住,俺是雁塔菜农~~~ ”
http://www.baidu.com/s?wd=%B2%CB%C5%A9%D0%A6%CC%B8%A1%B6%D0%C2%C0%CB%C3%FB%C8%CB%D0%A7%D3%A6%A1%B7...
EE直播间
更多
我要评论
1
3
关闭 站长推荐上一条 /3 下一条