/* * 模块名称:FAL Flash 设备适配 * 模块功能:将 GD5F2GQ5UE 驱动接口适配?FAL 框架 * 适用平台:STM32F407ZGT6 * 作者:王建? * 创建日期?026-07-16 * 修改记录? * 2026-07-16 王建? 创建初始版本 */ /* 头文件包含区 */ #include "fal_def.h" #include "gd5f2gq5ue.h" /* ======================== FAL 操作函数适配 ======================== */ /* * 函数功能:Flash 设备初始化适配 * 入口参数:无 * 返回值:0 - 成功,其?- 错误? * 限定条件:SPI ?GPIO 已由 CubeMX 初始化完? * 函数说明:调用底层驱动的初始化函? */ static int gd5f_fal_init(void) { return gd5f2gq5ue_init(); } /* * 函数功能:Flash 读取适配 * 入口参数:offset - 起始字节偏移 long * p_buf - 数据缓冲? uint8_t* * size - 读取字节? size_t * 返回值:0 - 成功,其?- 错误? * 限定条件:gd5f_fal_init() 已成功调? * 函数说明:直接转发到底层驱动的读取函? */ static int gd5f_fal_read(long offset, uint8_t *p_buf, size_t size) { return gd5f2gq5ue_read(offset, p_buf, size); } /* * 函数功能:Flash 写入适配 * 入口参数:offset - 起始字节偏移 long * p_buf - 数据缓冲? const uint8_t* * size - 写入字节? size_t * 返回值:0 - 成功,其?- 错误? * 限定条件:目标区域已擦除 * 函数说明:直接转发到底层驱动的写入函? */ static int gd5f_fal_write(long offset, const uint8_t *p_buf, size_t size) { return gd5f2gq5ue_write(offset, p_buf, size); } /* * 函数功能:Flash 擦除适配 * 入口参数:offset - 起始字节偏移 long * size - 擦除字节? size_t * 返回值:0 - 成功,其?- 错误? * 限定条件:gd5f_fal_init() 已成功调? * 函数说明:直接转发到底层驱动的擦除函? */ static int gd5f_fal_erase(long offset, size_t size) { return gd5f2gq5ue_erase(offset, size); } /* ======================== FAL Flash 设备定义 ======================== */ /* GD5F2GQ5UE FAL 设备实例,总容?56MB,块大小128KB */ const struct fal_flash_dev g_gd5f2gq5ue_flash = { .name = "gd5f2gq5ue", .addr = 0, .len = GD5F_TOTAL_SIZE, .blk_size = GD5F_BLOCK_SIZE, .ops = { .init = gd5f_fal_init, .read = gd5f_fal_read, .write = gd5f_fal_write, .erase = gd5f_fal_erase, }, .write_gran = 8, };