标签:layer 关联 rac 多个 寻址 main dev code amp
目标:完成f769的片内flash驱动,并且对接fal
平台:STM32F769I并运行RT-thread内核
FAL介绍:FAL (Flash Abstraction Layer) Flash 抽象层是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API ,并具有以下特性:
支持静态可配置的分区表,并可关联多个 Flash 设备;
config BSP_USING_ON_CHIP_FLASH
bool "Enable ON_CHIP_FLASH"
default y
2. 在env下输入menuconfig进入配置界面,在 Hardware Drivers Config → On-chip Peripheral Drivers中确认BSP_USING_ON_CHIP_FLASH呗选中了;进入RT-Thread online packages → system packages选中fal: Flash Abstraction Layer implement. Manage flash device and partition.使能RT_thread中的fal框架,使用最新版本,然后保存并推出配置;
3. 此时,工程中多了一个fal-latest的文件夹,这就是fal框架,同时由于fal需要fal_cfg.h配置文件,而配置完以后,不会帮你自动添加,所以我们需要手动加一个;我们可以将/sample/porting
目录下的fal_cfg.h文件复制到inc目录下;
4. 在env中使用scons工具编译工程
5. 回到工程,,我们可以发现Drivers中有一个文件drv_flash_fx.c(由于我是f769所以这里是drv_flash_f7.c),这里可以看到对on_chip_flash的支持![]
(https://img2020.cnblogs.com/blog/1544288/202003/1544288-20200324113859291-808772565.jpg)
6. 打开fal_cfg.h文件,我对此稍作修改,只用到了on_chip的部分;标号1和标号2的位置,是我选择上一张图片中的函数替换了原来的stm32f2_onchip_flash这个函数;标号3的位置我把norflash0的两个分区删除了(如果以后有需要的话,可以自己查询芯片手册添加);
7. 最后在main.c中编写
//记得要添加fal的头文件
#include <rtthread.h>
#include <rtdevice.h>
#include <board.h>
#include <fal.h>
static int fal_test(const char *partiton_name);
int main(void)
{
fal_init();
...
...
}
STM32F769I-disc片内flash对接fal框架(基于RT-thread)
标签:layer 关联 rac 多个 寻址 main dev code amp
原文地址:https://www.cnblogs.com/Monarch-T/p/12557936.html