万变法门
USB总线以战说法
盛格塾在线课程
自1996年USB 1.0推出,USB总线用不到30年的时间传遍世界,成为“妇孺皆知”的通用总线。2019年推出的USB 4将传输速度提升到40Gbit/s,可以用隧道技术传输DP(Display Port)和PCIe数据,未来发展空间巨大。USB设备类型众多,变化多样,以软件定义硬件的思想换取高灵活性和通用性。本讲座独辟蹊径,将纷繁复杂的USB技术溶解到项目案例中,先编写一个工具程序,自己写代码操作USB设备,建立感性认识,再通过一系列真实的案例,逐一征服学习USB的一道道难关,包括设备端固件和主机端驱动等。整个讲座由《软件调试》作者张银奎亲自主讲,写代码、上各种工具,软件硬件齐上阵,生动有趣。
课程形式
在线直播(可以回看录像)
微信群讨论问答
适宜听众
开发USB设备端固件或者主机端软件(应用或者驱动程序)的软件工程师
希望深入理解USB总线技术的软硬件工程师
课程时间
5月11日-6月29日 每周六晚上20:00 - 21:30(端午假期6月8日休息)
课程内容
在应用程序中读写USB设备
01
要点:开发geusb应用、使用libusb库、获取设备列表、打开设备、查询设备属性、块传输、发送和读取数据、hidapi、将geusb移植到Linux、设置USB设备访问权限。
为什么重插就好了?
02
要点:USB-IF、总线拓扑、角色分工:主机和设备、接口类型、设备发现和识别过程、聊啊聊、设备地址、UHCI、EHCI、XHCI、HUB、从Hub驱动理解Hub的关键职能、重插就好的深层原因、USB 3.x和USB 4、USB分析仪、其它学习资源。
读取字符串描述符失败
03
要点:USB总线规约、设备请求、标准设备请求、描述符、数据结构、标准描述符定义、设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符、Windows操作系统获取描述符的关键函数和断点设置方法、在geusb中读取描述符、真实案例分享。
设备端固件:哪个USB库更好?
04
要点:GDK3简介、M核基础、USB中断、处理设备请求、USB设备库代码深度解析、RL USB、WCH USB、端点事件回调、没有C的面向对象、函数表、庞大的switch case、以目录做“模块”划分、函数命名。
0号端点:一句打印惹的祸
05
要点:理解端点、端点编号、端点与接口的关系、标准请求、类请求、厂商定义请求、控制传输(5.5)、控制传输三阶段(Stage)、收件人(recipient)、有数据设置(SetupData)、无数据设置(SetupNoData)、USB转串口(CDC)固件实例、USB_CDC_GetLineCoding、USB_CDC_SetLineCoding、数据零拷贝、故障案例分享。
主机端软件之Windows和HID:
为何按键没反应?
06
要点:微软对USB技术的贡献、HID接口、Yellow Bang、WDM基础、USB设备栈、控制器驱动、HUB驱动、端口驱动、小端口驱动、以NKM为例、HIDKBD、使用内核调试(KD)观察USB设备栈、使用KD观察接收到的HID报文、NKM案例总结。
Linux的USB宝库
07
要点:代码的目录结构、设备端、主机端、设备发现和驱动安装过程、USB 3驱动和女侠Sarah、gadget、通过虚文件创建gadget设备、让幽兰或者GDK8成为USB设备、与gadget设备对话。
讲师介绍
张银奎
Raymond Zhang
格蠹科技创始人,微软全球最有价值技术专家(MVP),同济大学电子与信息工程学院特邀讲师,前英特尔亚太研发有限公司软件架构师。《软件调试》、《格蠹汇编》的作者,新版《十万个为什么》电子分册撰稿人之一,《程序员》杂志调试之剑栏目作者 。1996年毕业于上海交通大学信息与控制工程系,在软件产业工作20年,在多家跨国公司历任开发工程师、软件架构师、开发经理、项目经理等职务,对 IA-32 架构、操作系统内核、驱动程序、虚拟化技术、云计算、软件调优、尤其是软件调试有较深入研究。
从2005年开始公开讲授“Windows内核及高级调试”课程,曾在微软的Webcast和各种技术会议上做过《Windows Vista内核演进》、《调试之剑》(全球软件战役研究峰会)、《感受和思考调试器的威力》(CSDN SD2.0大会)、《Windows启动过程》、《如何诊断和调试蓝屏错误》、《Windows体系结构——从操作系统的角度》(以上三个讲座都是微软“深入研究Windows内部原理系列”的一部分)等。翻译(合译)作品有《现代x86汇编语言编程》、《21世纪机器人》、《观止——微软创建NT和未来的夺命狂奔》、《数据挖掘原理》、《机器学习》、《人工智能:复杂问题求解的结构和策略》等。
试验硬件
基于ARM M核SoC的GDK3开发套件,包含一个开发板,2根Type-C电缆,开发板包含两个USB Type-C口,一个端口为USBD(设备),另一个端口为USBHD(主机或者设备)。
GDK3官网:https://nanocode.cn/#/gdk3
固件烧录器和硬件调试器(可选)
挥码枪官网:https://nanocode.cn/#/ntp
收费与购买方式
选项①
单独课程(直播、录像回看、微信群答疑)= 768元
适合已经有GDK3的老客户。
选项②
课程 + GDK3套件 = 798元(国内包邮)
选项③
课程 + GDK3套件 + 挥码枪 = 998元(国内包邮)
挥码枪可以用来调试固件代码,重新烧录固件等。
购买方式
手机端 可在“盛格塾”小程序的【格课快递】分类下购买。
电脑端 可在Nano Code主页的【Nano 视频】下购买。
选项①直接按照上述方式购买即可。如需下单 选项②或③ ,请联系我们补差额。
联系我们
Lisa
邮箱:lisa.long@nanocode.cn
微信:13801874134
1
END
1
正心诚意,格物致知
以人文情怀审视软件,以软件技术改变人生
格友公众号
盛格塾小程序
扫描上方二维码或在微信中搜索“盛格塾”小程序
可以阅读更多文章和有声读物
往期推荐