关键芯片都驱动,且测试成功
This commit is contained in:
@@ -1,42 +1,80 @@
|
||||
/**
|
||||
******************************************************************************
|
||||
* @file fal_flash_gd5f2gq5ue.c
|
||||
* @brief FAL 端口:GD5F2GQ5UE SPI NAND Flash 适配层
|
||||
******************************************************************************
|
||||
*/
|
||||
/*
|
||||
* 模块名称:FAL Flash 设备适配
|
||||
* 模块功能:将 GD5F2GQ5UE 驱动接口适配到 FAL 框架
|
||||
* 适用平台:STM32F407ZGT6
|
||||
* 作者:王建锋
|
||||
* 创建日期:2026-07-16
|
||||
* 修改记录:
|
||||
* 2026-07-16 王建锋 创建初始版本
|
||||
*/
|
||||
|
||||
/* 头文件包含区 */
|
||||
#include "fal_def.h"
|
||||
#include "gd5f2gq5ue.h"
|
||||
|
||||
/* ===================== FAL Flash 设备操作函数 ===================== */
|
||||
/* ======================== FAL 操作函数适配 ======================== */
|
||||
|
||||
/*
|
||||
* 函数功能:Flash 设备初始化适配
|
||||
* 入口参数:无
|
||||
* 返回值:0 - 成功,其他 - 错误码
|
||||
* 限定条件:SPI 和 GPIO 已由 CubeMX 初始化完成
|
||||
* 函数说明:调用底层驱动的初始化函数
|
||||
*/
|
||||
static int gd5f_fal_init(void)
|
||||
{
|
||||
return gd5f2gq5ue_init();
|
||||
}
|
||||
|
||||
static int gd5f_fal_read(long offset, uint8_t *buf, size_t size)
|
||||
/*
|
||||
* 函数功能: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, buf, size);
|
||||
return gd5f2gq5ue_read(offset, p_buf, size);
|
||||
}
|
||||
|
||||
static int gd5f_fal_write(long offset, const uint8_t *buf, size_t 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, buf, 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 设备定义 ===================== */
|
||||
/* ======================== FAL Flash 设备定义 ======================== */
|
||||
|
||||
/* GD5F2GQ5UE FAL 设备实例,总容量256MB,块大小128KB */
|
||||
const struct fal_flash_dev gd5f2gq5ue_flash = {
|
||||
.name = "gd5f2gq5ue",
|
||||
.addr = 0,
|
||||
.len = GD5F_TOTAL_SIZE, /* 256MB */
|
||||
.blk_size = GD5F_BLOCK_SIZE, /* 128KB */
|
||||
.len = GD5F_TOTAL_SIZE,
|
||||
.blk_size = GD5F_BLOCK_SIZE,
|
||||
.ops = {
|
||||
.init = gd5f_fal_init,
|
||||
.read = gd5f_fal_read,
|
||||
|
||||
Reference in New Issue
Block a user