驗證環境
環境搭建
- 首先需要配置好ART-Pi 外部 16MB SPI Flash 掛載為FatFS 文件系統,文件系統有個12MB的filesystem,用戶可以用于存儲文件
- 這里開啟USB Device功能,實現USB Mass Storage,winUSB功能
- 開啟USB框架
這里同時使能:Mass Storage Device 與 winusb device
?
開啟 USB的BSP驅動
掛載U盤
- 上面的操作只是開啟了USB 設備,編譯燒寫后,無法掛載到電腦,枚舉成U盤
- 所以需要先取消文件系統的掛載,這樣,就可以在電腦端掛載成U盤了
#include
#include
#include
#include
#include
/* defined the LED0 pin: PI8 */
#define LED0_PIN GET_PIN(I, 8)
#ifdef RT_USING_WIFI
extern void wlan_autoconnect_init(void);
#endif
#define FS_PARTITION_NAME "filesystem"
extern int ulog_file_backend_init(void);
void mount_to_usb(void)
{
char *fullpath = NULL;
fullpath = dfs_normalize_path(NULL, "/");
if (dfs_unmount(fullpath) == 0)
{
rt_kprintf("mount_to_usb ok!\n");
}
else
{
rt_kprintf("mount_to_usb fail!\n");
}
}
MSH_CMD_EXPORT(mount_to_usb, mount_to_usb);
void mount_to_flash(void)
{
rt_device_t dev;
dev = rt_device_find(FS_PARTITION_NAME);
if (dev != RT_NULL && dev->open_flag != 0)
{
rt_device_close(dev);
rt_kprintf("close usb device ok!\n");
}
if (dfs_mount(FS_PARTITION_NAME, "/", "elm", 0, 0) == 0)
{
rt_kprintf("mount_to_flash ok!\n");
}
else
{
rt_kprintf("mount_to_flash error!!\n");
}
}
MSH_CMD_EXPORT(mount_to_flash, mount_to_flash);
-
這里增加了掛載為USB U盤的命令
mount_to_usb
,開機后,輸入命令,電腦過一會,就會出現U盤
- 可以把需要的文件拷貝進去,可以刪除里面的文件
-
想把分區掛載回文件系統,讓開發板識別文件系統,可以使用命令:
mount_to_flash
,也可以直接重啟,拔掉USB OTG的線即可
小結
- 實現了電腦與開發板互傳文件,如LOG文件、資源文件等
- 使用RT-Thread USB的框架與USBD 設備驅動,讓開發板模擬成U盤,操作很簡單
- 后續可繼續深入研究USB的整個框架
評論
查看更多