完善资料让更多小伙伴认识你,还能领取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线程被占用时无法输入命令的问题。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
开启全新AI时代 智能嵌入式系统快速发展——“第六届国产嵌入式操作系统技术与产业发展论坛”圆满结束
2315 浏览 0 评论
2024 RT-Thread全球巡回线下培训火热来袭!报名提问有奖!
19577 浏览 11 评论
2567 浏览 0 评论
IaaS+on+DPU(IoD)+下一代高性能算力底座技术白皮书
3972 浏览 0 评论
飞凌嵌入式-ELFBOARD 常用的USB接口及其不同版本介绍第1期
1304 浏览 0 评论
69629 浏览 21 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-4 10:11 , Processed in 6.034550 second(s), Total 73, Slave 57 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号