完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
rt-thread 4.1.1stm32f429ig使用usb_otg_hs,做host_only。在Cherryusb中执行usbh_initialize后的logo为 [2023-08-29 11:28:35.783]# RECV ASCII> |
|
相关推荐
2个回答
|
|
把shell线程的优先级调到0,看看谁卡住了。
|
|
|
|
29 11:30:56.350]# RECV ASCII>[32m[I/USB] ------ Host Initialization ------[0m[32m[I/USB] Core:2.20a[0m[32m[I/USB] Host:2.20a[0m[32m[I/USB] WCID:WINUSB[0m[32m[I/USB] Vendor-specific class:[0m
如果在使用Cherry USB Host加载U盘后,控制台无法输入命令,这可能是由于USB主机工作时中断服务例程的优先级过高,使得Shell线程的优先级被抢占,无法继续工作。解决这个问题的方法是在初始化USB主机时,将其中断优先级配置得低于Shell线程的优先级,这样Shell线程就不会被抢占了。 在RT-Thread的USB主机驱动框架中,可以通过修改USB主机HAL驱动框架中的中断配置来解决这个问题。具体方法是在usbh_initialize函数中调用HAL_NVIC_SetPriority函数设置USB主机的中断优先级。例如: ```c void usbh_initialize(void) { /* ... */ /* configure USB interrupts */ HAL_NVIC_SetPriority(USB_OTG_HS_IRQn, configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY + 1, 0); HAL_NVIC_EnableIRQ(USB_OTG_HS_IRQn); /* ... */ } ``` 其中configLIBRARY_MAX_SYSCALL_INTERRUPT_PRIORITY是FreeRTOS中用于保护系统调用的最高优先级,因此设置USB中断优先级为它的下一级,保证Shell线程优先级较高,不会被USB中断抢占。 通过此方法,可以使得USB主机和Shell线程能够正常并发运行,从而避免了Shell线程被占用时无法输入命令的问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
583 浏览 0 评论
AI模型部署边缘设备的奇妙之旅:如何在边缘端部署OpenCV
2207 浏览 0 评论
tms320280021 adc采样波形,为什么adc采样频率上来波形就不好了?
1227 浏览 0 评论
1776 浏览 0 评论
1462 浏览 0 评论
74790 浏览 21 评论
浏览过的版块 |
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-22 14:52 , Processed in 0.665575 second(s), Total 72, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号