2.27. FLASH自定义空间作为EXTFLAH设备

Overview

截取FLASH中的一段空间,作为EXTFLASH设备;EXTFLASH可通过设备操作接口、文件系统接口进行读写,并可通过USB枚举为mass_storage设备。

2.27.1. 示例

示例工程: apps/demo/demo_DevKitBoard;

代码实现: apps/common/fat_nor/extflash.c

2.27.2. 软件配置

(1)配置EXTFLAH空间

在配置文件 cpu/wl82/tools/isd_config_rule.c 中,配置EXTFLAH空间大小,工具会根据当前代码资源等情况在FLASH靠后一块可用大小的空间作为EXTFLASH。

//截取flash的一段空间作为extflash设备
EXTFLASH_ADR=AUTO;
EXTFLASH_LEN=0x100000;
EXTFLASH_OPT=1;
(2)使能EXTFLASH

在配置文件 apps/demo/demo_DevKitBoard/include/app_config.h 中,使能宏 TCFG_EXTFLASH_ENABLE

2.27.3. 文件系统读写EXTFLASH

将EXTFLASH挂载至文件系统,即可通过文件系统接口读写EXTFLASH,示例代码 apps/common/fat_nor/extflash.c -> extflash_mount_to_fs_test() 函数。

2.27.4. 枚举为mass_storage设备

将EXTFLASH枚举为mass_storage设备,插入电脑即可读写。在配置文件 apps/demo/demo_DevKitBoard/include/app_config.h 中,使能宏 TCFG_EXTFLASH_UDISK_ENABLE, 通过宏 ``TCFG_PC_ENABLE``使能USB从机模式,并增加USB设备类MASSSTORAGE_CLASS,如下:

#define USB_DEVICE_CLASS_CONFIG                       (CDC_CLASS | MASSSTORAGE_CLASS)