打印

SST39VF800A之"FLASH二次写入"图解

[复制链接]
4400|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hotpower|  楼主 | 2008-5-7 21:00 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式


从图中可以清晰地看出FLASH是在不擦除的情况下进行"FLASH二次写入"的.

所谓"FLASH二次写入"即某字节的某位为'1'时是可以写入'0'的,但'0'是不可以写入'1'的!!!

因为'0'想写入'1'是需要扇区擦除的!!!

利用"FLASH二次写入"是可以延长FLASH寿命和提高效率的.

常用的有"RAM计数器",即"FLASH计次器"

初始为0xff.

计数0为0xff--->1111 1111

计数1为0xfe--->1111 1110

计数2为0xfc--->1111 1100

...........................................

计数255为0x00--->0000 0000


相关链接:http://blog.**/hotpower/112662/message.aspx

相关帖子

来自 2楼
hotpower|  楼主 | 2008-5-7 23:40 | 只看该作者

旧话重题: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中.

类似应用程序: LPCARM之IAP应用举例及FLASH二次写入C++程序祥解(更新版)

倒塌地在网上搜索到盗版的博客: http://blog.csdn.net/zhtek/archive/2006/05/19/745945.aspx
相关链接:http://blog.**/hotpower/113643/message.aspx

使用特权

评论回复
板凳
程序匠人| | 2008-5-7 23:09 | 只看该作者

想要裤子吗?

使用特权

评论回复
5
computer00| | 2008-5-7 23:29 | 只看该作者

晕...老HOT总是喜欢搞非典……

使用特权

评论回复
6
hotpower|  楼主 | 2008-5-8 00:18 | 只看该作者

补充一点:紫外线可擦除的EPROM及OTP芯片也可"二次写入"

有些PIC如PIC12C508/PIC12C509等OTP的也可"二次写入".

这样的应用一般是"改写"用户自己的密码或系列码等,这个俺都"非典"过~~~

现在俺在PIC12C508/PIC12C509上一直这么用~~~

使用特权

评论回复
7
john_light| | 2008-5-8 00:26 | 只看该作者

久不浮头

透口气

使用特权

评论回复
8
hotpower|  楼主 | 2008-5-8 00:39 | 只看该作者

倒塌了~~~本想庆贺一下第118条裤子的诞生...没指望了

哈哈~~~多么潇洒的方法就这么被腐败掉了~~~

其他帖得裤子俺都不会觉得什么~~~

使用特权

评论回复
9
computer00| | 2008-5-8 00:48 | 只看该作者

哈哈,旧贴也想捞裤头??俺到是捞到了第58条裤头,哈哈~~~

还是新东西容易捞到裤头呀~~~~

使用特权

评论回复
10
hotpower|  楼主 | 2008-5-8 00:52 | 只看该作者

又从网上搜索到俺的"笔迹",还真要感谢这些不署名人保护"文

使用特权

评论回复
11
hotpower|  楼主 | 2008-5-8 00:57 | 只看该作者

哈哈~~~小圈圈~~~俺想要裤子自己就做斑竹每天自发一条~~~

倒塌了~~~

使用特权

评论回复
12
hotpower|  楼主 | 2008-5-8 14:54 | 只看该作者

晕倒~~~在匠人施舍下菜农的第118条裤子诞生了---无奈~~~

哈哈~~~虽然有人说俺最近在DSP上走火入魔,把DSP2812玩的很悲惨~~~

但菜农还要对它继续开刀~~~

也怪,俺每次玩什么,非典总常在俺的面前...

哈哈~~~玩就玩得潇洒...红杏总要出墙~~~

使用特权

评论回复
13
gdpiao| | 2008-5-8 16:53 | 只看该作者

good

好东西。
这个我也试过,不过datasheet上明确表明,是不建议这样做的。
不过我也用到了产品上。。哈哈

分别是nandflash 和lpc213x的flash

赫赫

使用特权

评论回复
14
gdpiao| | 2008-5-8 16:55 | 只看该作者

hotpower的调试方法

对啦,,
是不是从下载线弄起来的拉?
什么都用到串口,,,看着像惯了串口调试的样子。。。
strong~

使用特权

评论回复
15
hotpower|  楼主 | 2008-5-8 20:28 | 只看该作者

哈哈~~~串口调试好帖图"演讲"~~~

使用特权

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

本版积分规则

1460

主题

21619

帖子

506

粉丝