打印

最低成本学MCU(二)VC开发调试USB设备端代码,无需MCU硬件

[复制链接]
998|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
vsfopen|  楼主 | 2020-2-10 13:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 vsfopen 于 2020-2-11 16:26 编辑

VC开发调试MCU代码(一):https://bbs.21ic.com/icview-2893846-1-1.html

做这个的另外一个原因,我们2月10号线上办公,但是硬件都在公司里。。。。。只能用这个先搞定软件,开工后,再去公司调硬件

在之前的帖子里,介绍了使用VC,脱离实际MCU硬件的开发调试方式。不过,模拟的MCU,外设也只限PC自带的外设,无法开发USB设备端的代码。今年春节自闭,就实现了这一套开发机制,使得可以脱离具体硬件,开发USB设备端代码,只需要一台windows电脑即可,需要安装visual studio 2019(VC和自带的clang组件)。为了在PC上模拟USB设备,还需要安装一个虚拟的VHCI驱动,这个正好usbip实现了,所以我们使用usbip的方式,在VSF里实现了usbip_dcd的USB设备控制器驱动(device controller driver)。然后,DCD驱动之上的代码,就不依赖具体MCU了。在实际MCU环境里的话,也只需要选择MCU对应的DCD驱动即可。

缺点:win10需要进入测试模式,以去掉驱动签名,右下角会有一个测试模式的文字。

usbip的windows版本需要使用这里的,至少还一直在维护:
https://github.com/cezanne/usbip-win

注意:1. 如果运行usbip之后,无法退出的话,可以再开一个管理员权限的power shell,运行:usbip detach -p 0

环境配置步骤:
1. 下载usbip的release版本和相应的驱动。如果拿到我发布的测试包的话,位于utilities/usbip目录下。
2. 安装测试证书,utilities/usbip/usbip_test.pfx。
直接双击此文件,向导第一页里,选择存储位置为本地计算机。然后一路next,有一个地方需要输入密码,密码是:usbip

3. 使能测试模式,为了驱动不需要签名
以管理员权限运行power shell,然后执行:bcdedit.exe /set TESTSIGNING ON
然后重启。
4. 安装驱动
1) 命令行函数:管理员权限的power shell里,运行:usbip install
2) 手动安装:
设备管理器里,选择操作->添加过时硬件

后面选择手动:

然后从磁盘安装,选择utilities/usbip/usbip_vhci.inf
然后一直下一步就可以完成驱动安装
5. 运行vsf_template_win.exe,并且输入命令:usbd
6. 管理员权限的power shell下,运行:
usbip list -r 127.0.0.1
usbip attach -r 127.0.0.1 -b 0



使用特权

评论回复

相关帖子

沙发
vsfopen|  楼主 | 2020-2-11 16:11 | 只看该作者
MSC测试OK,PC上可以识别出模拟的U盘
CDC测试不行,usbip有一个历史悠久的BUG,已经给作者发了Issue了
https://github.com/cezanne/usbip-win/issues/102

使用特权

评论回复
板凳
vsfopen|  楼主 | 2020-2-15 16:08 | 只看该作者
这周周更里,已经公开了对应的代码。
1. 下载github.com/vsfteam/vsf
2. 用visual studio 2019打开source/example/template/project/vc/vsf_template.sln
3. 平台选择x86
4. 编译运行,在提示的命令行里,输入usbd并回车
5. LZ位的一通usbip操作
注意,usbip需要2个命令:
usbip list -r 127.0.0.1
usbip attach -r 127.0.0.1 -b 0

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

89

主题

324

帖子

8

粉丝