DAPLink 源码解读

本文详细解读了DAPLink WebUSB中的Vfs_manager.c核心组件,涉及文件初始化、扇区操作、回调函数的工作原理,特别是虚拟文件系统(virtual_fs.c)和数据传输管理。重点讲解了文件变动与数据变动回调,以及如何通过虚拟磁盘结构解析数据和触发回调操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DAPLink 的 Webusb 部分涉及以下几主要个文件

  1. Vfs_manager.c   stream_opne ,stream_werite ,strem_close,usb接口
  2. file_stream.c     open ,write ,close操作
  3. virtual_fs.c     fat16虚拟系统
  4. vs_user.c       虚拟磁盘文件创建,文件命令处理
  5. flash_decoder.c  bin,hex 文件解析、烧写编程
  6. target_flash.c    flash 编程
  7. 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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cqcyst

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值