潘多拉 RT-Thread Flash 分区管理
实验概述
本例程演示如何通过 RT-Thread 提供的 FAL 软件包对 Flash 进行分区管理操作。例程中,通过调用 FAL 接口完成了对指定分区的测试工作,完成了对 Flash 读、写、擦的测试,同时也通过该例程完成了对 Flash 驱动的基本测试。
FAL 是 Flash Abstraction Layer 的缩写,即 Flash 抽象层。FAL 是 RT-Thread 的一个软件包,用于对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及分区操作的 API,并具有以下特性:
- 支持静态可配置的分区表,并可关联多个 Flash 设备;
- 分区表支持 自动装载。避免在多固件项目,分区表被多次定义的问题;
- 代码精简,对操作系统 无依赖,可运行于裸机平台,比如对资源有一定要求的 bootloader;
- 统一的操作接口。保证了文件系统、OTA、NVM 等对 Flash 有一定依赖的组件,底层 Flash 驱动的可重用性;
- 自带基于 Finsh/MSH 的测试命令,可以通过 Shell 按字节寻址的方式操作(读写擦)Flash 或分区,方便开发者进行调试、测试;
本文将演示如何使用 fal 管理多个 Flash 设备,指导用户通过 fal 分区表操作 Flash 设备。这也是后续 OTA、easyflash 等例程的基础,所以务必掌握。
硬件连接
本例程使用到的硬件资源如下所示:
- UART1(Tx:PA9;Rx:PA10)
- 片内 FLASH(512 KB)
- 片外 Nor Flash(16 MB)