打印
[技术问答]

关于FLASH的问题

[复制链接]
2281|14
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
cub_wolf|  楼主 | 2013-8-19 12:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
1  FLASH的单字节读写问题
2 寿命问题
写3个函数
第一个函数 初始化函数  参数为起始地址   终止地址  页数  页大小
第二个函数  数据写入函数  输入参数为  起始地址   写的数据个数  数据缓冲区
第三个函数  数据读出函数  输入参数为  起始地址   读的数据个数  数据缓冲区

这样,什么均衡啊   寿命 都由这2个函数 来保证 要求是尽量占用少的内存 尽量快,尽量保证说明
沙发
缥缈九哥| | 2013-8-20 12:59 | 只看该作者
用多个扇区存储你的每次写的结构块。再用一个扇区来做索引指定你当前存储到什么地址了。只有全部的扇区写完了,才擦除整个扇区。又从头开始写。这样每个扇区中每个位置基本能得到同样多次的擦和写。这样就寿命均衡了。上过课吧?像黑板一样。老师写完了一板,才全部擦了,重新写。而不是每写一次就擦一次在同样的位置。而且其它位置没有写到也没有擦到。

使用特权

评论回复
板凳
mmuuss586| | 2013-8-20 13:23 | 只看该作者
好办法啊。

使用特权

评论回复
地板
cub_wolf|  楼主 | 2013-8-20 13:34 | 只看该作者
仁慈的上帝啊,九歌就是你派来的使者吧  真是个好办法哦

使用特权

评论回复
5
缥缈九哥| | 2013-8-20 15:01 | 只看该作者
老师擦黑板,我从小就知道了。你们竟然不知道呀?

使用特权

评论回复
6
188598686| | 2013-8-21 12:46 | 只看该作者
flash不能单字节读写的,新唐的单片机貌似没有EEPROM,所以你只能用九哥的方法块擦写了。

使用特权

评论回复
7
缥缈九哥| | 2013-8-21 13:30 | 只看该作者
能32位的读写,但是擦除是按块的。

使用特权

评论回复
8
cub_wolf|  楼主 | 2013-8-21 17:26 | 只看该作者
发个文件  跨地址 跨字   任意字节读写  刚对MO516写的  注意ISP.C上面的头文件  改成自己合适的即可  ISP.H 有两个宏  调用这两个宏 就可以了

ISP.RAR

1.81 KB

使用特权

评论回复
9
cub_wolf|  楼主 | 2013-8-21 17:27 | 只看该作者
没有做数据均衡处理  地址范围是 0 --4095     都是按字节为单位的

使用特权

评论回复
10
cub_wolf|  楼主 | 2013-8-21 18:26 | 只看该作者
九歌的方法有个问题,索引地址是固定的吧,每写一次,索引地址更新一次,索引的块也怎么处理啊。

使用特权

评论回复
11
john_lee| | 2013-8-21 18:56 | 只看该作者
如果你的数据没有0xFFFFFFFF,就可以不用索引。

使用特权

评论回复
12
缥缈九哥| | 2013-8-22 06:44 | 只看该作者
本帖最后由 缥缈九哥 于 2013-8-22 06:46 编辑

索引的块当然是递增的写,1块,2块,3块……或者块的首地址。也可以在你的固定的数据结构块中加入一个特定的标志,如数据块结束符号0X14131338.就算数据中有0XFFFFFFFF也不怕。再厉害一点的话,加入块头,块尾,块序号和校验和。更厉害的加入有纠错功能的校验和冗余备份算法。做技术的就是折腾,总是有办法折腾它对付它的。

使用特权

评论回复
13
圆圈奥特曼| | 2013-8-26 15:13 | 只看该作者
九哥在芯唐方面就是专家!

使用特权

评论回复
14
wangch_sh| | 2013-8-28 12:29 | 只看该作者
学习了。

使用特权

评论回复
15
zxf0168| | 2014-1-26 21:30 | 只看该作者
学习了。。。。

使用特权

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

本版积分规则

71

主题

253

帖子

0

粉丝