[活动专区] 【AT-START-F423测评】+USB设备库文件关系使用说明

[复制链接]
1637|0
 楼主| 6552918 发表于 2023-11-19 22:35 | 显示全部楼层 |阅读模式
最近一直在研究F423的USB进行tinyusb的移植,但由于AT的USB库协议栈耦合的比较深,移植tinyusb库还没完成,但对AT的设备库已经了解的差不多。现对F423的USB设备库的使用和大家分享一下。
首先,由于USB库相对比较复杂,AT原厂提供《AN0097应用笔记》,描述了AT32F4xx 系列 USB 设备库的架构和使用方法,但我看了以后感觉对新手还有点不够详细,我来结合《AN0097应用笔记》和例程进行一下说明。
首先《AN0097应用笔记》的文件路径如下:
7cb3eac91753c9d9ae20d764b14db408
我们以vcp_loopback例程进行讲解
2c39f40e082941e3527e81c3e704248c
《AN0097应用笔记》内的库文件结构说明如下
0d192163d138f9f0c3f1ecb60af1bf99
工程文件打开后的文件结构和文件库文件结构是对应的
9bf6e85baa55d5841634ba2541873980
虽然文件功能在《AN0097应用笔记》都有相关的介绍,但文件之间的关系并没有介绍。
USB除了用户应用程序外,实际就两部分内容,分别是初始化处理和中断处理,我就这两部分内容结合程序来介绍一下文件之间的关系。
首先是初始化部分
e4abfc68ed8934f1dfd39680cb2a6227
初始化时,针对不同设备类,需要提供类的函数指针,以便在中断中回调到类中断处理
cdc_class_handler的类函数在cdc_class.c内,处理类中断事件
69d994ce890769c74c9c1e482ac63516
cdc_desc_handler的类函数在cdc_desc.c内,处理描述符中断事件
不同类型的描述符也都在cdc_desc.c内,修改时在这个文件内修改即可
另外,USB通信涉及的端点定义和字符串定义在cdc_desc.h内,
13c136f3f8d902ffdadcb2e29f80b2a8
文件关系如下:
4f95987821a1820202c60a4eebca76cb
初始化实现函数在usb_core.c内
ae1b709174d73f6a9363dc423e6be0a4 最核心的USB 设备核心初始化函数
usbd_core_init(&(otgdev->dev), otgdev->usb_reg,
class_handler,
desc_handler,
core_id);
是在usbd_core.c内实现的
0d9288e2cf4914ad99a45c70d19aeaa0
usbd_core.c内实现了所有的USB设备驱动,相关API函数如下
b65d3ed382170753815a1e134e207050
文件关系如下
3ac364d45bb9c3b8368cd3a1e3c61bfa
至此,初始化相关的文件关系就介绍完了。
下面开始中断的介绍
例程的USB中断入口函数在main.c内
83fa66ff1d65fe344e2c7118252a2d8b
usbd_irq_handler(&otg_core_struct);的函数实现是在usbd_int.c内,USB的所有中断处理都在这个函数内处理。
042fb192b54001f5bf6b30122337c5f1
我以标准请求为例,来看以下各文件的关系
Setup是out中断,在out端点中断处理
a43b99f7989280dda8e40786be690a85
usbd_outept_handler(udev);内通过中断标志判断,进入Setup处理
14dd1975a0dec3d366fe2f11d97d5ac3
Setup的处理函数usbd_core_setup_handler(udev, ept_num);在USB驱动文件内usbd_core.c
e6b6ef3a881d9a69fd2093d5986bd9bc
再根据Setup不同请求分别处理,这里以设备请求usbd_device_request(udev);为例
8026ceb5fca076dd7c81480915e1462c
一下来以描述符请求usbd_get_descriptor(udev);为例,函数内通过初始化时配置的 类函数和类描述符函数指针实现了类函数的执行
c7130dba73781e4728eebed6fcb40c26
文件关系如下
ab92452fa893cd7f252a7a4dbea37e88
通过上述一个中断的流程为例,将中断函数间的文件管理进行了梳理和介绍,这样可以更好的理解USB设备库文件之间的使用关系,希望对AT USB设备库感兴趣的人有所帮助。

您需要登录后才可以回帖 登录 | 注册

本版积分规则

认证:北京汇冠触摸技术有限公司/电子工程师
简介:电子工程师,嵌入式应用爱好者。

102

主题

1293

帖子

10

粉丝
快速回复 在线客服 返回列表 返回顶部
0