xf_fal Flash 抽象层 FAL (Flash Abstraction Layer).
更多...
xf_fal Flash 抽象层 FAL (Flash Abstraction Layer).
◆ xf_fal_flash_dev_t
flash 设备结构体。
- 注意
- 结构体是可见的,但禁止用户修改其中内容。
◆ xf_fal_partition_t
flash 分区结构体。
描述各分区的分区名、分区在哪个 flash、分区在 flash 上的偏移地址和长度。
- 注意
- 结构体是可见的,但禁止用户修改其中内容。
◆ xf_fal_check_and_update_cache()
xf_err_t xf_fal_check_and_update_cache |
( |
void |
| ) |
|
更新分区表中的分区与关联的 flash 设备的缓存。
- 注解
- xf_fal_init() 内会自动调用一次。
-
如果在初始化后注册或反注册了分区表或 flash 设备, 需要调用此接口更新缓存。
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL 失败
- XF_ERR_INVALID_PORT 未注册 xf_fal
在文件 xf_fal.c 第 579 行定义.
◆ xf_fal_get_ctx()
获取 xf_fal 上下文。
- 注解
- 通过此接口可获取当前 xf_fal 注册状态、注册的 flash 设备和注册的分区表。 可用于动态扩展分区表。
- 注意
- 禁止直接修改其中内容。
- 返回
- xf_fal_ctx_t* xf_fal 上下文
在文件 xf_fal.c 第 254 行定义.
◆ xf_fal_register_flash_device()
注册一个 flash 设备到 xf_fal 中。
- 注意
- xf_fal 内仅保存 flash 设备指针, 用户必须保证在使用 xf_fal 的整个过程中 flash 设备可访问。
-
用户应保证 flash 设备名不重复。否则只会找到第一个。
-
注册完毕后需要调用 xf_fal_init() 初始化 xf_fal .
-
已初始化后禁止注册或注销,需调用 xf_fal_deinit() 反初始化.
- 参数
-
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL xf_fal 已初始化,禁止注册注销
- XF_ERR_BUSY xf_fal 被别处占用
- XF_ERR_INVALID_ARG 无效参数
- XF_ERR_INVALID_PORT 无效对接, p_dev->ops 的 read, write, erase 存在 NULL
- XF_ERR_INITED p_dev 已注册
- XF_ERR_RESOURCE xf_fal 的设备表数组已满,需增大 XF_FAL_FLASH_DEVICE_NUM
在文件 xf_fal.c 第 95 行定义.
◆ xf_fal_register_partition_table()
注册一个分区表到 xf_fal 中。
- 注意
- xf_fal 内仅保存分区表指针, 用户必须保证在使用 xf_fal 的整个过程中分区表可访问。
-
用户应保证分区表内的分区不发生交叠,且分区不重名,否则只会找到第一个。
-
注册完毕后需要调用 xf_fal_init() 初始化 xf_fal .
-
已初始化后禁止注册或注销,需调用 xf_fal_deinit() 反初始化.
- 参数
-
p_table | 分区表数组。注意不是分区。 |
table_len | 分区表表长。单位:分区个数。 |
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL xf_fal 已初始化,禁止注册注销
- XF_ERR_BUSY xf_fal 被别处占用
- XF_ERR_INVALID_ARG 无效参数
- XF_ERR_INITED p_table 已注册
- XF_ERR_RESOURCE xf_fal 的分区表数组已满,需增大 XF_FAL_PARTITION_TABLE_NUM
在文件 xf_fal.c 第 139 行定义.
◆ xf_fal_unregister_flash_device()
从 xf_fal 中注销一个 flash 设备。
- 注意
- 已初始化后禁止注册或注销,需调用 xf_fal_deinit() 反初始化.
- 参数
-
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL xf_fal 已初始化,禁止注册注销
- XF_ERR_BUSY xf_fal 被别处占用
- XF_ERR_INVALID_ARG 无效参数
- XF_ERR_NOT_FOUND 未找到
在文件 xf_fal.c 第 180 行定义.
◆ xf_fal_unregister_partition_table()
从 xf_fal 中注销一个分区表。
- 注意
- 已初始化后禁止注册或注销,需调用 xf_fal_deinit() 反初始化.
- 参数
-
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL xf_fal 已初始化,禁止注册注销
- XF_ERR_BUSY xf_fal 被别处占用
- XF_ERR_INVALID_ARG 无效参数
- XF_ERR_NOT_FOUND 未找到
在文件 xf_fal.c 第 213 行定义.
◆ xf_fal_check_register_state()
bool xf_fal_check_register_state |
( |
void |
| ) |
|
检查 xf_fal 注册状态。
- 返回
- true 已注册
-
false 未注册
在文件 xf_fal.c 第 246 行定义.
◆ xf_fal_init()
初始化 FAL.
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL 失败
- XF_ERR_INITED 已初始化
- XF_ERR_INVALID_PORT 未注册 xf_fal
在文件 xf_fal.c 第 259 行定义.
◆ xf_fal_deinit()
反初始化 FAL.
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL 失败
- XF_ERR_UNINIT 未初始化
- XF_ERR_INVALID_PORT 未注册 xf_fal
在文件 xf_fal.c 第 293 行定义.
◆ xf_fal_flash_device_find()
根据 flash 名称查找 flash 设备。
- 参数
-
- 返回
- const xf_fal_flash_dev_t*
- NULL 未找到或参数错误或未注册 xf_fal
- (OTHER) flash 设备句柄
在文件 xf_fal.c 第 318 行定义.
◆ xf_fal_flash_device_find_by_part()
◆ xf_fal_partition_find()
根据分区名称查找分区句柄。
- 参数
-
- 返回
- const xf_fal_partition_t*
- NULL 未找到或参数错误或未注册 xf_fal
- (OTHER) 分区表句柄
在文件 xf_fal.c 第 370 行定义.
◆ xf_fal_partition_read()
◆ xf_fal_partition_write()
将数据写入指定分区。
- 注解
- 读写数据的大小以及偏移地址需要是 flash 最小读写颗粒大小的整数倍。 见 xf_fal_flash_dev_t::io_size .
-
写入前一定要确认目标地址已经被擦除。
- 参数
-
part | 分区表中的指定分区。 可以通过 xf_fal_partition_find() 获取。 |
dst_offset | 要写入的数据的地址。相对当前分区起始地址的偏移地址。 |
src | 指向数据来源缓冲区。 |
size | 要写入的数据大小,单位:字节。 |
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL 失败
- XF_ERR_UNINIT 未初始化
- XF_ERR_INVALID_ARG 无效参数
在文件 xf_fal.c 第 443 行定义.
◆ xf_fal_partition_erase()
◆ xf_fal_partition_erase_all()
擦除指定分区所有数据。
- 参数
-
- 返回
- xf_err_t
- XF_OK 成功
- XF_FAIL 失败
- XF_ERR_UNINIT 未初始化
- XF_ERR_INVALID_ARG 无效参数
在文件 xf_fal.c 第 520 行定义.
◆ xf_fal_show_part_table()
void xf_fal_show_part_table |
( |
void |
| ) |
|