RTthread的FAL组件介绍
RTthread的FAL组件介绍
文章目录
- RTthread的FAL组件介绍
- 前言
- 一、FAL组件下载安装及配置
- 二、FAL组件使用
- 1.分区介绍
- 2.数据处理函数
- 向分区写入数据
- 从分区读取数据
- 擦除分区数据
- 擦除整个分区数据
- 查找 Flash 分区
- 总结
前言
FAL (Flash Abstraction Layer) Flash 抽象层,是对 Flash 及基于 Flash 的分区进行管理、操作的抽象层,对上层统一了 Flash 及 分区操作的 API (框架图如下所示)。
废话不多说,开始!
一、FAL组件下载安装及配置
打开rt-thread setting 文件,左上角添加软件包,搜索fal,可以找到fal组件,版本号v1.0.0:
保持原始配置即可:
点击退出即可完成自动安装,编译,结果如下:
二、FAL组件使用
1.分区介绍
分区路径packages\fal-v1.0.0\samples\porting\fal_cfg.h。
代码如下(示例):
#ifdef FAL_PART_HAS_TABLE_CFG
/* partition table */
#define FAL_PART_TABLE \
{ \{FAL_PART_MAGIC_WORD, "bl", "stm32_onchip", 0, 64*1024, 0}, \{FAL_PART_MAGIC_WORD, "app", "stm32_onchip", 64*1024, 704*1024, 0}, \{FAL_PART_MAGIC_WORD, "easyflash", NOR_FLASH_DEV_NAME, 0, 1024*1024, 0}, \{FAL_PART_MAGIC_WORD, "download", NOR_FLASH_DEV_NAME, 1024*1024, 1024*1024, 0}, \
}
#endif /* FAL_PART_HAS_TABLE_CFG */
这里解释一下:以 {FAL_PART_MAGIC_WORD, “app”, “stm32_onchip”, 641024, 7041024, 0}这一行数据为例:
FAL_PART_MAGIC_WORD :是默认的数据,不用理它;
“app” :是我们建立的分区名称;
“stm32_onchip” :是指片内FLASH还是片外FLASH,这里是片内
641024 : 代表所分配空间的起始地址;也就是前64k空间分配给了"bl",“app” 所用空间大小由641024开始,共计704*1024 大小;
最后的 0 :Flash 的操作函数,如果没有 init 初始化过程,第一个操作函数位置可以置空。
当然,这些是程序默认配置,我们需要根据不同的需要去修改占用空间的大小,若是想增加删除分区,按照程序中相同的格式去更改就可以了,修改时注意各分区的大小及起始地址不要发生冲突。
修改后正常输出如下:
好,完成分区。
2.数据处理函数
fal数据处理即为对flash进行相应操作,包含数据擦除、读取及写入。
向分区写入数据
int fal_partition_write(const struct fal_partition *part, uint32_t addr, const uint8_t *buf, size_t size)
参数 | 描述 |
---|---|
part | 分区对象 |
addr | 相对分区的偏移地址 |
buf | 存放待写入数据的缓冲区 |
size | 待写入数据的大小 |
return | 返回实际写入的数据大小 |
从分区读取数据
int fal_partition_read(const struct fal_partition *part, uint32_t addr, uint8_t *buf, size_t size)
参数 | 描述 |
---|---|
part | 分区对象 |
addr | 相对分区的偏移地址 |
buf | 存放待读取数据的缓冲区 |
size | 待读取数据的大小 |
return | 返回实际读取的数据大小 |
擦除分区数据
int fal_partition_erase(const struct fal_partition *part, uint32_t addr, size_t size)
参数 | 描述 |
---|---|
part | 分区对象 |
addr | 相对分区的偏移地址 |
size | 擦除区域的大小 |
return | 返回实际擦除的区域大小 |
擦除整个分区数据
int fal_partition_erase_all(const struct fal_partition *part)
参数 | 描述 |
---|---|
part | 分区对象 |
return | 返回实际擦除的区域大小 |
查找 Flash 分区
const struct fal_partition *fal_partition_find(const char *name)
参数 | 描述 |
---|---|
name | Flash 分区名称 |
return | 如果查找成功,将返回 Flash 分区对象,查找失败返回 NULL |
总结
本文介绍fal分区的创建及相关api函数的介绍,后面会着重讲述fal组件的应用。
RTthread的FAL组件介绍相关推荐
- RT-Thread FAL 组件使用
RT-Thread FAL 组件使用 FAL 组件开源项目地址:https://gitee.com/RT-Thread-Mirror/fal/tree/master FAL 组件是 RT-Thread ...
- 【RT-Thread】nxp rt10xx SFUD和FAL组件搭建与使用
开发前准备 硬件平台:nxp rt10xx单片机 IDE: Keil spi设备驱动框架已经搭建完毕(本章使用spi2,flash挂载在该位置) SFUD 简介 SFUD 全称 Serial Flas ...
- RT-Thread 使用FAL多字节读写FLASH
RT-Thread 使用FAL多字节读写FLASH FAL 简介 在RT-Thread上使用FAL 添加SPI 总线驱动 添加SFUD驱动 添加SPI DEVICE 使用SFUD添加SPI 块设备 添 ...
- RT-Thread源码下载介绍
转载:https://blog.csdn.net/RootCode/article/details/84066981 RT-Thread 源码下载应用笔记 摘要 本文将详细介绍如何获取 RT-Thre ...
- RT-thread4.1.0更新后文件系统fal组件修改
RT-thread更新到4.1.0后,将fal组件更新为内部组件,目录为:compments-->fal;其中sample目录不参与编译,但是我们如果指定分区表的话需要将sample下的fal_ ...
- 客快物流大数据项目(六):Docker与虚拟机的形象比喻及组件介绍
目录 Docker与虚拟机的形象比喻及组件介绍 一.Docker与虚拟机的形象比喻
- 2021年大数据Hadoop(二十六):YARN三大组件介绍
全网最详细的Hadoop文章系列,强烈建议收藏加关注! 后面更新文章都会列出历史文章目录,帮助大家回顾知识重点. 目录 本系列历史文章 前言 Yarn三大组件介绍 ResourceManager No ...
- 【Netty】Netty组件介绍
Netty组件介绍 Netty有 Bootstrap/ServerBootstrap,Channel,EventLoop,ChannelFuture, ChannelHandler,ChannelPi ...
- c# BackgroundWorker组件介绍(属性、方法、事件)
c# BackgroundWorker组件介绍(属性.方法.事件) 2008-07-03 16:28 在VS2005中添加了BackgroundWorker组件,该组件在多线程编程方面使用起来非常方便 ...
最新文章
- 微软 Internet 信息服务器(IIS) 5.0 和 6.0 状态代码说明
- Monkey测试1——Monkey的使用
- Android 通用流行框架大全
- python正则表达式指南_Python正则表达式指南
- js 读取php页面内容,js读取html文件 js获取html页面显示内容
- vs2015 单元测试 linux,VS2015做单元测试
- 如何 更换vue的图标_vue如何实现图标点击选中后换一个图标(只单选)
- jquery的扩展方法介绍
- python通信编程_python 通信编程
- 对BottomTagFragment的理解
- 转:Java多线程学习(吐血超详细总结)
- 线程基础阶段性总结和扩展(二)——ThreadLock
- 微信8.0自动发送炸弹python脚本
- 第三方支付——微信web端支付(java)
- 高清渐变动态壁纸来了 手把手教你做动态壁纸
- Apache虚拟主机的实现方式
- 在springboot中使用腾讯QQ邮箱发送邮件时出现的错误
- 2022-2028全球与中国语音生物识别市场现状及未来发展趋势
- Web前端期末大作业-响应式艺术培训机构网页设计(bootstrap+HTML+CSS+JavaScript+)实现
- Python爬虫HTTP异常:rllib.error.HTTPError: HTTP Error 418,伪装User-Agent以及fake-useragent插件的妙用
热门文章
- [SSD核心技术:FTL 16] 固态硬盘预读技术详解
- 神经网络在故障诊断中的应用
- TCP/IP协议及常见状态码说明(SYN,FIN,ACK,PSH,RST)
- 十分钟看懂图像语义分割技术
- 浮动练习之猫眼电影的电影页面
- 在html中雪碧图的坐标怎么看,Webpack中雪碧图使用详解
- 计算机与我的工作 生活作文600字,我和电脑
- 带你深入了解什么是商业数据分析
- 安全产品设计的重要性
- WSL 2 installation is incomplete.【BUG解决】【Docker之云原生基石】