全部的学习汇总:https://github.com/GreyZhang/SdFatFs
PETIT文件系统其实是FatFs的一个缩减版本,主要面向8bit的MCU等存储资源比较有限的平台。具体的资料参考官方网站:http://elm-chan.org/fsw/ff/00index_p.html。
尝试做了一下移植,我觉得一个文件系统比较理想的移植状态是改一下SPI其他的基本上自动适配。其实,这个基本上就做到了这样子。
整个文件系统的关键文件一共就3个,pff.cpp、pff.h、pffconf.h。其中,第一个文件是.c文件,为了能够让Arduino的接口识别更便捷我改成了C++文件。但是,这次移植怵了Arduino本身的库函数接口,我修改或者增加的全都是C代码。还有一个文档中可能提到的diskio.c,其实我看到的例子中没有,但是相应的功能我自己创建了一个相应的文件。
移植的主要修改点:
以上,基本上是给diskio提供的基础驱动接口。
配置文件中,选择了FAT32的功能完整版本。
写了一部分测试代码如下:
测试结果:
测试结果符合预期。
看起来,实现比较容易。后续,再尝试看看其他的功能测试。测试完了之后,再尝试FatFs这个文件系统,看看是否能够轻松在我的Arduino上先运行起来。