项目用usb连接SIMCOM的一个4G模块,/dev/目录下生成了ttyUSB0-2,也能够生成usb0虚拟网口,如果4G模块插上sim卡时,模块正常工作,正常通信。当4G模块在不插sim卡的时候而,应用会每两分钟让4G模块掉电,然后再重新上电,4G模块断开和重连到usb总线上,内核打印信息如下图1所示,经过一段时间断开重连后,会出现CPU占用率很高的现象,此时维护串口无法工作,系统的很多命令无法执行,top命令显示的log如图2,图中kworker是内核工作线程,但是目前没法确定是不是连接4G模块的usb驱动导致kworker进程占用CPU过高,不知道你们有没有碰到过类似的问题,请帮忙看下,谢谢!
图1
图2
Shine:
请问使用的是哪个版本的processor SDK?
user1794335:
回复 Shine:
ti-processor-sdk-linux-am335x-evm-05.00.00.15
Shine:
回复 user1794335:
SDK版本已经是较新的了,请看一下4G模块的驱动稳定性如何?
user1794335:
回复 Shine:
想问下核配置Device Drivers—> USB support—> [ ]Disable DMA (always use PIO),这个选项选中和不选具体有什么区别?
Shine:
回复 user1794335:
区别是是否使用usb 内部DMA通道搬移数据。
user1794335:
回复 Shine:
目前测试选中Disable DMA (always use PIO)选项,不会出现CPU占用率过高的问题,这个PIO是指的什么呢,能详细解答一下吗?
yongqing wang:
回复 user1794335:
指的是PIO模式
yongqing wang:
回复 yongqing wang:
Programmed I/O Mode