DAPLink 的 Webusb 部分涉及以下几主要个文件
- Vfs_manager.c stream_opne ,stream_werite ,strem_close,usb接口
- file_stream.c open ,write ,close操作
- virtual_fs.c fat16虚拟系统
- vs_user.c 虚拟磁盘文件创建,文件命令处理
- flash_decoder.c bin,hex 文件解析、烧写编程
- target_flash.c flash 编程
- swd_host.c swd接口、驱动
vfs_manager.c 是webusb 文件处理的最高层文件
此文件对上接口主要有四个函数
Void usbd_msc_init(void) 在usbd_msc.c中调用
Void usbd_msc_read_sect( ) 在usbd_msc.c中调用
Void usbd_msc_write_sect(void) 在usbd_msc.c中调用
Void vfs_mngr_periodic(void) 在main.c中调用
从文件名就可以看出几个接口函数的主要功能,初始化,读扇区,写扇区,以及周期定时处理函数
这个文件中还有两个重要函数:
文件变动回调函数 static void file_change_handler() 和 文件数据回调函数 static void file_data_handler()。
文件变动回调函数file_change_handler()在初始化函数usbd_msc_init(void) 中被设置为回调:
usbd_msc_init(void) –> build_filesystem() -> vfs_set_file_change_callback(file_change_handler)