更新时间:2025-04-15 06:09:06下载pdf
本文为您介绍如何在涂鸦提供的 SDK 中添加您自己的 QSPI 驱动及调用关系,文中以 GD5F1GQ5 为例进行说明。
在 ./vendor/T5/t5_os/bk_idk/middleware/driver/qspi/ 目录中添加驱动文件,如
./vendor/T5/t5_os/bk_idk/middleware/driver/qspi/qspi_flash_GD5F1GQ5.c。
QSPI 驱动数据结构如下:
typedef struct {
    const char *name;
    uint32_t page_size;
    uint32_t block_size;
    uint32_t total_size;
    QFLASH_INIT_T           init;
    QFLASH_DEINIT_T         deinit;
    QFLASH_READ_ID_T        read_id;
    QFLASH_UNLOCK_T         unblock;
    QFLASH_PAGE_READ_T      read_page;
    QFLASH_PAGE_WRITE_T     write_page;
    QFLASH_BLOCK_ERASE_T    erase_block;
} qspi_driver_desc_t;
参数说明
| 参数 | 描述 | 
|---|---|
name | 
用来索引驱动程序,该字段为驱动唯一标识 | 
  | 
Flash 属性,可通过 Flash 规格书获取。该参数在 Flash 读写擦除操作及文件系统相关操作中会使用到 | 
  | 
初始化及反初始化操作,设置 QSPI 工作频率等参数,可参考 GD51F1G 中的设置 | 
read_id | 
读 Flash ID | 
unblock | 
Flash 解保护 | 
  | 
Flash 实现读写擦除操作; 根据 Flash 规格书,发送相应命令及参数执行对应操作。与预期不一致时,可用逻辑分析仪抓取总线上数据辅助排查  | 
定义	qspi_driver_desc_t 结构后,完成以下操作:
在 vendor/T5/t5_os/bk_idk/include/driver/qspi_flash_common.h 文件中添加声明,如:
extern qspi_driver_desc_t qspi_gd5f1g_desc;。
在 vendor/T5/t5_os/bk_idk/middleware/driver/qspi/qspi_flash_common.c 文件的 qspi_flash_devices 全局变量中添加引用,如下所示:
static qspi_driver_desc_t *qspi_flash_devices[] = {
    &qspi_gd5f1g_desc,
    &qspi_gd25q127c_desc,
};
在 vendor/T5/t5_os/bk_idk/middleware/driver/CMakeLists.txt 中,添加文件到编译系统。然后,在 CONFIG_QSPI 的 if 条件中添加如下图所示的文件:
在 vendor/T5/t5_os/projects/tuya_app/config/bk7258/config 配置文件中添加配置项
CONFIG_TUYA_QSPI_FLASH_TYPE,赋值为 QSPI 驱动数据结构 中的参数 const char *name 的值,如下图所示:

该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈