f_mkfs格式化最小分区数是191

一、使用fatfs的f_mkfs最小分区数是191原因:

在挂载ram_disk时参考的文章有提到:

        “然后是GET_SECTOR_COUNT 用于f_mkfs格式化时获取可用的sector的数量,32bit-LBA的情况下至少为191”

自己也实际试过确实要不少于191,网上也没找到相关说明。debug跟踪到f_mkfs文件中

  • 我定义的190个扇区每个扇区512个字节

  • 进入f_mkfs代码中

  这个函数会得到我设置的扇区数即190保存数sz_vol中

在这里sz_vol会被减去N_SEC_TRCK,N_SEC_TRCK宏定义为63,这个63组成如下

最小的文件系统结构:

  • 引导扇区:1个扇区
  • FAT表:假设需要128个扇区(具体数量取决于存储设备大小和FAT类型)
  • 根目录区:32个扇区
  • 其他必要的结构和保留扇区:30个扇区
  • 总计:1 + 128 + 32 + 30 = 191个扇区

190-63 = 127 ;小于最少128个卷的大小,返回FR_MKFS_ABORTED,格式化失败;

二、长文件名

  •     Fatfs文件系统中存在短文件名和长文件名的概念。当文件名的字符长度短于13个字符时,称为短文件名。当长于13个字符则称为长文件名。
  • 开启长文件名后文件名大写的问题才能解决
  • 这个代码是扫描SD盘下的文件名,将.txt和.pzd结尾的文件扫描到file_lisT.txt这个文件中
    • 关闭长文件名会倒是创建的file_lisT.txt文件是全大写的,匹配的文件后缀必须也是也是全部大写小写的.txt匹配不到
    • 开启长文件名后可以就没问题
    • 开启长文件名后选择GBK编码这时候编辑器也要改用GBK编码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值