嵌入式技术论坛
直播中

丁冬芹

7年用户 1304经验值
私信 关注
[问答]

RT-Thread如何做到USB设备的动态加载的?

目前RTT所有的驱动都是在设备启动时注册上去的,后续不去操作的方式实现。
那我现在有一个疑惑,USB设备在使用过程中,如果在某种情况下需要枚举成HID设备,在另一种情况下又需要枚举成CDC设备,甚至有时还需要枚举成UAC设备,此时如何做到动态修改类型?

回帖(3)

郝埃连

2023-1-10 16:58:58
把启动注册调用的函数改成全局函数接口,程序里调用
但是有个问题,多数只有注册,没有卸载的过程。需要自己实现卸载,切换的时候先卸载前一种再注册成新的
理论上是可以的,实际操作也没有多少难点儿。
举报

丁冬芹

2023-1-10 16:59:08
有个问题确认下,卸载时,usbdevices这一层是可以操作的,但是问题是,卸载时是否需要做芯片级的操作,比如关闭phy芯片之类的?毕竟rt的usb devices框架看起来没有考虑卸载这回事,芯片原厂也就没有针对卸载这种场景做驱动适配了
举报

郝埃连

2023-1-10 16:59:16
芯片外设寄存器多数关掉中断,禁止使能就好了。当你启用其它配置的时候会重新配置大多数寄存器的。
重点在 rtt 驱动框架这层,需要做的工作还是有的。注册了设备得卸载,不然会出现内存泄露,或者下载再想注册失败等等。
举报

更多回帖

发帖
×
20
完善资料,
赚取积分