硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1980|回复: 7
收起左侧

429外部NorFlash 文件系统问题

[复制链接]

3

主题

27

回帖

36

积分

新手上路

积分
36
发表于 2018-5-31 11:11:04 | 显示全部楼层 |阅读模式
求助硬汉:

     不知道为什么好多板卡STM32的处理器外部设计了外挂的NorFlash,但是使用过程中,还是直接使用指定地址的方式呢?为什么不移植文件系统上去?
我目前想对手里的板子,外置的NorFlash移植FatFS文件系统,不知道和Nand 或者是SPI 的Flash,有多大区别呢?至少目前来看,NorFlash的 block size都比较大,一直FatFS的话,必须把指定的size缩小才行,但是这样做,文件系统运行过程出现文件覆盖重新erase的时候,难道不会把其他部分的文件一起擦除吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107852
QQ
发表于 2018-5-31 11:59:36 | 显示全部楼层
最根本的原因是norflash有个非常重要的特性,读取的是可以像使用sram一样方便,给总线地址就可以访问,速度飞快。加上文件系统就臃肿了。
回复

使用道具 举报

3

主题

27

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 2018-5-31 12:11:19 | 显示全部楼层
eric2013 发表于 2018-5-31 11:59
最根本的原因是norflash有个非常重要的特性,读取的是可以像使用sram一样方便,给总线地址就可以访问,速度 ...

请问硬汉,我要是一直FatFS上去的话,和Nand或者SPI的Flash有什么区别吗,block size 太大这个怎么能解决呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
107852
QQ
发表于 2018-5-31 13:47:10 | 显示全部楼层
kimking8821 发表于 2018-5-31 12:11
请问硬汉,我要是一直FatFS上去的话,和Nand或者SPI的Flash有什么区别吗,block size 太大这个怎么能解决 ...

NOR的扇区太大了,128KB。

而你设置FatFS的配置文件中扇区大小时,配置它支持的512, 1024, 2048 或者4096均可。麻烦的地方就在你做写函数的时候,你要做合理的擦除操作。
回复

使用道具 举报

3

主题

27

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 2018-5-31 13:57:06 | 显示全部楼层
eric2013 发表于 2018-5-31 13:47
NOR的扇区太大了,128KB。

而你设置FatFS的配置文件中扇区大小时,配置它支持的512, 1024, 2048 或者4 ...

是的, 苦恼就在于这个地方,设置文件扇区小于Nor的block size倒是没什么,浪费了一些NorFlash的空间,但是写的时候很麻烦,需要判断很多条件,如果出现重新写入的情况,还可能需要先把原有的其他地址的数据读出来,修改完成后再写回去。
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-5-31 15:04:00 | 显示全部楼层
kimking8821 发表于 2018-5-31 13:57
是的, 苦恼就在于这个地方,设置文件扇区小于Nor的block size倒是没什么,浪费了一些NorFlash的空间,但 ...

对啊  你只能这么做了   如果不是一个扇区写入  你就把这个扇区全部读出来   然后擦除整个扇区  然后修改扇区里面需要修改的数据  最后重新写入  这样即可以写入新数据还可以保存以前的数据   
回复

使用道具 举报

3

主题

27

回帖

36

积分

新手上路

积分
36
 楼主| 发表于 2018-5-31 17:12:45 | 显示全部楼层
hanzixiangel 发表于 2018-5-31 15:04
对啊  你只能这么做了   如果不是一个扇区写入  你就把这个扇区全部读出来   然后擦除整个扇区  然后修改 ...

那从应用的角度来讲,
1 这个做法会产生一个很大的数据缓冲区,NorFlash的单Block 128KB,
2 在出现重新写入的情况时,文件系统的读写性能会差很多
3 把数据完全读出并重新写入的话,在恶劣的应用环境下,数据的安全性其实没有保障。
回复

使用道具 举报

2

主题

134

回帖

140

积分

初级会员

积分
140
发表于 2018-6-1 12:21:37 | 显示全部楼层
kimking8821 发表于 2018-5-31 17:12
那从应用的角度来讲,
1 这个做法会产生一个很大的数据缓冲区,NorFlash的单Block 128KB,
2 在出现重 ...

确实会出现这种问题  这就是弊端  所以你要取舍
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-6-15 19:41 , Processed in 0.169932 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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