USB MTP 设备示例(DFS + RAM DISK)
源码路径:example/cherryusb/device/mtp
支持的平台
sf32lb52-lcd_n16r8_hcpu
sf32lb58-lcd_n16r32n1_dpi_hcpu
概述
本例程演示基于 CherryUSB 的 MTP 设备功能,文件系统侧使用 RT-Thread DFS 与 POSIX API,
在内存中创建 64 KiB 的 RAM Block Device(mtp_ram),格式化为 elm 文件系统后提供给 MTP 访问。
连接到 PC 后,设备会以 CherryUSB MTP DEMO 的形式出现,可通过文件管理器进行浏览、拷贝、删除等操作。
默认会在根目录创建示例文件 cherryusb.txt。
例程的使用
硬件需求
运行该例程前,需要准备:
一块本例程支持的开发板。
带数据传输功能的 USB 线(建议使用可稳定传输数据的 Type-C 线)。
一台支持 MTP 的主机(Windows/Linux/macOS)。
编译和烧录
切换到例程 project 目录,运行 scons 命令执行编译:
scons –board=sf32lb58-lcd_n16r32n1_dpi_hcpu -j8
切换到例程 project/build_xx 目录,运行 uart_download.bat,按提示选择串口进行下载:
.\uart_download.bat
关于编译、下载的详细步骤,请参考快速上手的相关介绍。
例程的预期结果
例程启动并连接主机后,预期现象如下:
主机识别到一个 MTP 设备(产品名为
CherryUSB MTP DEMO)。打开设备后可看到示例文件
cherryusb.txt。可对文件执行读写、删除、重命名等基础操作。
异常诊断
若主机侧无法正常枚举或文件操作失败,可优先检查:
是否启用了
CONFIG_RT_USING_DFS_ELMFAT,未启用时通常会出现File system (elm) was not found。USB 数据线是否支持数据传输(仅充电线会导致设备不可见)。
板端串口日志中是否出现 MTP/DFS 相关报错。
如有问题,请在 GitHub 上提交 issue。
参考文档
更新记录
版本 |
日期 |
发布说明 |
|---|---|---|
0.0.1 |
06/2026 |
初始版本,补充 MTP(DFS+RAM Disk) 例程说明 |