OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4144|回复: 9

一个简单的日志型文件系统(代码已删)

[复制链接]

2

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1472
金钱
1472
注册时间
2014-4-8
在线时间
172 小时
发表于 2018-10-17 15:54:05 | 显示全部楼层 |阅读模式
本帖最后由 jackielau 于 2018-10-17 16:18 编辑

最近在用stm32做一个项目,但是mcu内部没有EEPROM,一些程序用的参数不好保存,但是板子上有一个25X16,可以用来存参数(当然mcu的Flash也可以保存,但是不好用,为什么???下面说),于是我查着了一些日志型文件系统的资料,写了一个小型变量用的文件系统,空间利用效率比较低(最高50%),但是操作还是很方便的。
文件使用有注释就可以了,移植只需要完善三个函数FlashReadByte()、FlashWriteByte()、FlashEraseArea()分别提供字节读、字节写和区域擦除

鉴于有人觉得我在扯淡,算了,不公开了,有需要的留言或者私信





正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1472
金钱
1472
注册时间
2014-4-8
在线时间
172 小时
 楼主| 发表于 2018-10-17 15:58:18 | 显示全部楼层
本帖最后由 jackielau 于 2018-10-17 16:17 编辑



另外:为什么不用stm32的内部flash呢?它只能写入一次。例如:擦写后某处写入0x0F,25X16还可以改为0x00,但是stm32的内部flash不可以。所以这个文件系统不能用于stm32的内部flash(我走了弯路,才发现的啊!!
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-10-17 16:03:52 | 显示全部楼层
jackielau 发表于 2018-10-17 15:58
希望原子老大给个酷!!

另外:为什么不用stm32的内部flash呢?它只能写入一次。例如:擦写后某处写入0x ...

扯淡吧,你把这块erase掉,不就可以继续写了
学无止境
回复 支持 反对

使用道具 举报

2

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1472
金钱
1472
注册时间
2014-4-8
在线时间
172 小时
 楼主| 发表于 2018-10-17 16:12:23 | 显示全部楼层
jermy_z 发表于 2018-10-17 16:03
扯淡吧,你把这块erase掉,不就可以继续写了

为什么要加个文件系统,一是为了存储方便,二是减少flash的擦写次数,提高寿命。每写一个字节就要擦除一次,那是什么节奏??
傻子都知道flash写入前要擦除,但是stm内部flash擦除后只能写入一次,25X16则可以写入多次(最多应该是8次)
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-10-17 16:18:11 | 显示全部楼层
jackielau 发表于 2018-10-17 16:12
为什么要加个文件系统,一是为了存储方便,二是减少flash的擦写次数,提高寿命。每写一个字节就要擦除一 ...

牛逼,凡是flash,非0xff前,都要擦除,又不是eeprom,直接写
学无止境
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-10-17 16:20:30 | 显示全部楼层
jackielau 发表于 2018-10-17 16:12
为什么要加个文件系统,一是为了存储方便,二是减少flash的擦写次数,提高寿命。每写一个字节就要擦除一 ...

当然,可能25X16很牛逼,不需要擦,没用过X16,不作更多评论
学无止境
回复 支持 反对

使用道具 举报

2

主题

123

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1472
金钱
1472
注册时间
2014-4-8
在线时间
172 小时
 楼主| 发表于 2018-10-17 16:20:37 | 显示全部楼层
jermy_z 发表于 2018-10-17 16:18
牛逼,凡是flash,非0xff前,都要擦除,又不是eeprom,直接写

对25X16,如果某处数据是0x7F,还可以再次写入0x3F或者1F,而不需要擦除

你说的对,道不同,不相与为谋
回复 支持 反对

使用道具 举报

8

主题

571

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2919
金钱
2919
注册时间
2016-5-13
在线时间
185 小时
发表于 2018-10-17 17:11:13 | 显示全部楼层
虽然不明白你们在说什么,但感觉很厉害的样子。
虽然不明白你们在说什么,但感觉很厉害的样子。
回复 支持 反对

使用道具 举报

70

主题

6761

帖子

0

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
13118
金钱
13118
注册时间
2012-11-26
在线时间
3813 小时
发表于 2018-10-17 19:25:33 | 显示全部楼层
jackielau 发表于 2018-10-17 16:20
对25X16,如果某处数据是0x7F,还可以再次写入0x3F或者1F,而不需要擦除

你说的对,道不同,不相与为 ...

还真是,跟你鬼扯这些干嘛。
即使0x7F之后,可以不经擦除写入0X3F,或者0x1F,有意义吗?
学无止境
回复 支持 反对

使用道具 举报

9

主题

796

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
2038
金钱
2038
注册时间
2017-8-2
在线时间
522 小时
发表于 2018-10-18 08:30:22 | 显示全部楼层
神仙打架
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-10 10:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表