更新时间: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
的值,如下图所示:
该内容对您有帮助吗?
是意见反馈该内容对您有帮助吗?
是意见反馈