完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
主芯片AT32F437VMT7配合RT-Thread Studio 开发环境,RT-Thread 版本 4.1.0
使用USB host 接U盘,发现很不稳定,简单的读写没问题,长期写入测试,会不定时出现USB口卡死的问题,调试发现是drv_usbfsh.c 里面的drv_pipe_xfer函数进入死循环了,此问题手里有三个U盘,新旧不一,牌子不同,有两个会出现此故障,一个不会。 不清楚是不是RT-thread usb host框架的问题,RT-thread 论坛上也有很多反馈usb host 此问题的,都是各显神通,没有最终定论。 希望咱雅特力可以给力些,看咱usb host驱动上还有啥完善的不,否则usb host 看着挺好,但无法实际工程应用,很是遗憾了。 曾经想使用CherryUSB包来替换咱的usb 驱动,发现at32F437的usb host 不支持dma 没发使用CherryUSB了。。。 |
|
相关推荐
1个回答
|
|
根据您提供的信息,AT32F437 USB HOST RT-thread 在读写U盘时出现不稳定的现象。以下是一些建议和可能的原因,以帮助您解决问题:
1. **固件和软件版本**:首先,请确保您使用的是最新版本的RT-Thread和相关的驱动程序。软件更新可能包含修复已知问题的新补丁。 2. **U盘兼容性**:不同的U盘可能具有不同的兼容性。您提到有三个U盘,其中两个出现故障,一个正常。这可能表明问题与U盘的兼容性有关。尝试使用其他品牌或型号的U盘,看看问题是否仍然存在。 3. **USB HOST驱动**:检查您的USB HOST驱动是否正确配置和初始化。确保驱动程序支持您的U盘类型,并正确处理USB请求。 4. **死循环问题**:您提到在 `drv_usbfsh.c` 文件中的 `drv_pipe_xfer` 函数出现死循环。这可能是由于错误的逻辑或资源管理问题导致的。检查该函数的实现,确保它正确处理USB传输请求,并在出现错误时正确地返回。 5. **硬件问题**:检查您的硬件连接,确保USB接口和U盘之间的连接稳定。此外,检查电源供应是否稳定,因为不稳定的电源可能导致USB设备出现问题。 6. **调试和日志**:增加调试信息和日志记录,以便更好地了解问题发生的原因。这可以帮助您确定问题是否与特定的USB请求或传输有关。 7. **资源竞争**:检查您的系统中是否存在资源竞争,例如中断处理或内存分配。资源竞争可能导致系统不稳定,从而影响USB传输。 8. **社区支持**:考虑在RT-Thread社区论坛或相关开发人员群体中寻求帮助。他们可能已经遇到类似的问题,并可以提供解决方案或建议。 9. **硬件测试**:如果可能,尝试在不同的硬件平台上测试您的代码,以确定问题是否与特定的硬件组件有关。 通过以上步骤,您可以逐步排查问题,并找到导致USB HOST RT-thread不稳定的原因。希望这些建议对您有所帮助。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
【⌈嵌入式机电一体化系统设计与实现⌋阅读体验】+《智能化技术在船舶维护中的应用探索》
493 浏览 0 评论
1220 浏览 0 评论
929 浏览 0 评论
378 浏览 0 评论
1467 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-9-1 07:29 , Processed in 0.555721 second(s), Total 73, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191