君正T31 uvc与wlan0 共存异常问题处理方法

来源:liwen01 嵌入式技术 16 次阅读
摘要:liwen01 2022.08.26 一、环境: 君正:T31ZL SDK版本:Zeratul_Release_20201230 WiFi 模块: Hi3861(单总线发送数据) 杰理:5226B方案屏幕(UVC) 二、问题现象: 可以单独使用UVC进行图像传输 可以单独使用SDIO进行wifi网络数据通信 如果UVC与SDIO wifi同时一起工作,系统负载就接近100%,整个程序异常

liwen01 2022.08.26


一、环境:

  • 君正:T31ZL SDK版本:Zeratul_Release_20201230
  • WiFi 模块: Hi3861(单总线发送数据)
  • 杰理:5226B方案屏幕(UVC)

二、问题现象:

  • 可以单独使用UVC进行图像传输
  • 可以单独使用SDIO进行wifi网络数据通信
  • 如果UVC与SDIO wifi同时一起工作,系统负载就接近100%,整个程序异常

三、测试步骤:

实验1
  • T31上电,通过wlan0拉流,系统工作正常;
  • 此时,将屏的UVC线插入,系统串口非常卡顿,查看cpu占用率,发现驱动hisi_hcc_tx cpu异常高;

  • 将kernel debug等级提高,再次重复上述操作,当插入UVC屏时,发现mmc 报错导致wlan0异常;

实验2:
  • T31上电,通过wlan0拉流,系统工作正常;
  • ifconfig wlan0 down;
  • 此时,将屏的UVC线插入,;UVC出图正常;
  • ifconfig wlan0 up,系统串口非常卡顿,查看cpu占用率,发现驱动hisi_hcc_tx cpu异常高;
实验3:
  • T31上电,通过wlan0拉流,系统工作正常;
  • 将UVC插入电脑,电脑打开相同分辨率的视频流, 系统工作正常;

从上面的现象:

  • a.初步怀疑,UVC屏的插入,会导致mmc工作异常,mmc跑进了一个死循环不停的在发数据,从而wlan0 Tx CPU占用率高;
  • b.电脑与wlan0可共存,而屏uvc与wlan0不可共存,可能是电脑容错性较高,望FAE帮忙一起分析并解决次问题,非常感谢!

四、可能原因

  • wlan0 与UVC的中断有冲突导致设备异常

  • 具体查看君正提供的《T31-UART-UVC改动.pdf

  • UART与UVC 中断冲突问题

  • UVC的同步信号不标准,导致T31无法适配

  • 可能是时钟有冲突导致

五、解决方法

按上图修改,不使用pio模式收发数据,可以解决该问题

默认数据少于64字节就走pio模式,这种模式时序很容易出问题

改成少于4字节,基本上就不会走pio了,正常就不会被其它中断影响了


该问题属于君正底层驱动的异常,跟君正的工程师调试很久仍然没有定位到具体原因

最后是咨询了一位对USB驱动非常熟悉的朋友才解决了这问题

相关推荐
评论区

登录后即可参与讨论

立即登录