开篇分割线,上一篇我们聊了SFUD挂载flash设备的组件,说白了就是为了适配各种类型的flash用于读写、擦除操作,接下来我们来讲一下fal分区,关于fal的概念很重要,实际上它有不一定非要基于RTOS实现裸机也一样,那么fal到底是什么呢?
FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API (框架图如下所示):
想想windows系统中的ABCD盘,其实就是fal分区的结果,比如插入一个U盘以后会自动挂在为一个新的分区,当然如果没有分过区它可能不识别或者提示为请先进行分区操作,在我们的rtos中它需要的操作就是fal_init();
当我们对于flash类型的设备(片内或片外)完成分区以后,就可以建立文件系统或者是flash数据库,用于服务应用程序,下一篇我们就来讲一下flashdb数据库的应用(扯远了继续我们的fal大业)。
1. 接下来就进入实战时基于studio创建fal分区:
2. 完成fal组件的添加后,尝试编译整个工程,编译结果如下:
3. 编译结果提示无法找到fal_cfg.h文件,这个文件是需要我们手动创建的,也就是所谓的分区表:
4.完成分区表的创建后,调用fal_init(),完成分区功能:
下载程序到板子里面,我么你可以看到绿色部分有SFUD初始化成功及FAL分区表创建完成的提示,我们可以在msh明令中调用fal操作对应的分区,本篇文章就到这里结束了,感谢阅读。