RT-Thread FAL组件(Flash abstraction layer)
分区表一般在 fal_cfg.h
中定义(默认开启配置宏)
FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API (框架图如下所示),并具有以下特性:
支持静态可配置的分区表,并可关联多个Flash设备;
支持分区表的自动装载,可以避免多固件项目中,分区表被多次定义的问题;
代码精简,不依赖操作系统;
提供统一的操作接口,保证文件系统等对Flash有一定依赖型的组件对底层Flash驱动可重用性。
· 使用 fal package 需要在 RT-Thread 的包管理器中选择它
使用FAL的基本步骤:
-
打开FAL:从Env中打开fal软件包并下载到工程
-
FAL移植:定义flash设备、定义flash设备表、定义flash分区表
定义flash设备表之前需要flash设备
flash设备可以有片内flash、片外flash
/* ===================== Flash device Configuration ========================= */ extern const struct fal_flash_dev stm32f2_onchip_flash; extern struct fal_flash_dev nor_flash0; /* flash device table */ #define FAL_FLASH_DEV_TABLE \ { \ &stm32f2_onchip_flash, \ &nor_flash0, \ }
然后定义flash分区表