打印
[51单片机]

最精简的文件系统 Petit FATFS@AI8051U内核

[复制链接]
1266|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
STCMCUNT015|  楼主 | 2024-8-31 11:31 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

AI8051U, 免费 嵌入式 FAT 文件系统
FATFS 作为一个长期霸榜的免费嵌入式FAT文件系统,其稳定性自然不用多说了。
此贴介绍的是FATFS的一个子集 Petit FATFSAI8051U内核上的应用。
引用官网的 Petit FATFS 的介绍:
  • 非常小的内存消耗 44 字节RAM
  • 非常小的代码大小 2K 左右 ROM
  • 支持 FAT12  FAT16  FAT32
  • 可以看到,Petit FATFS 非常精巧,仅需44字节RAM即可运行,
  • 作为FATFS的子集,仅支持基本读写功能,功能上的限制如下:
    • 只支持一个卷,同一时刻只打开一个文件,(即当打开一个文件的同时,上一个打开的文件自动关闭了)
    • 不支持长文件名
    • 没有格式化功能
    • 写入操作的限制,只能改写已有的文件的内容,不能在文件未尾追加数据而使文件变大,也不能创建新的文件.

    移植到AI8051U
    • 在官网下载最新代码后,将source文件夹复制项目文件夹
    • 项目内添加 pff.c   diskio.c
    • 添加三个磁盘接口函数,官方已给出了框架,只要在函数内填入自己的代码就可以了,非常简单(见例程)

    移植感言: 太顺利了,文件拉进项目直接编译就是0错0警,这搞得我有点不太适应啊,^_^

    应用笔记: 先挂载文件系统, 接着打开文件
    * 读文件比较简单 FRESULT pf_read (void* buff, UINT btr, UINT* br);
    * 第一个参数是数据指针, 第二个参数是期盼读取的字节数量, 第三个参数是实际读取到的字节数量.
    * 函数运行过后,如果 *br<btr, 则说已经读到文件未尾, 没有更多的数据可读了.
    * 返回值 0 表示没有错误, 其它为错误编号.
  • https://www.stcaimcu.com/forum.php?mod=viewthread&tid=10513&page=1&extra=#pid103816

使用特权

评论回复

相关帖子

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

本版积分规则

82

主题

252

帖子

1

粉丝