您的位置:首页 > 科技 > IT业 > 我想做代加工怎么找厂家_电商网站布局设计_教育培训机构推荐_百度指数搜索指数的数据来源

我想做代加工怎么找厂家_电商网站布局设计_教育培训机构推荐_百度指数搜索指数的数据来源

2025/2/27 9:48:42 来源:https://blog.csdn.net/weixin_44254079/article/details/145557829  浏览:    关键词:我想做代加工怎么找厂家_电商网站布局设计_教育培训机构推荐_百度指数搜索指数的数据来源
我想做代加工怎么找厂家_电商网站布局设计_教育培训机构推荐_百度指数搜索指数的数据来源

文章开头先表白我师父冬瓜

问题:
在rv1126开发板可以正常使用的触摸屏的HID报表描述符,在更换到rk3576开发板后无法正常识别

在这里插入图片描述

排查思路:
首先,先确认了报表描述符是否复制错误

之后使用Bus Hound工具捕捉传输报表描述符的数据,发现接收到的报表描述符不完整

然后cat节点内容,发现节点的数据就不完整,这说明usbdevice文件中执行echo操作时写入的数据就不完整

cat ./sys/kernel/config/usb_gadget/rockchip/functions/hid.0/report_desc

此时怀疑驱动内部问题:1. 内存大小问题 2. 拷贝问题
首先,内存大小,先怀疑了是否是缓冲区的大小不够,数了一下,发现丢失了前面的618个字节数据,并没有什么规律,并且此时丢失了前半部分,拷贝内存并不是环形内存,因此不存在后面数据覆盖前面数据的问题,排除这种可能
其次,是拷贝问题,查看驱动代码,可以发现拷贝操作是memcpy操作,不太可能有问题,排除可能

如果驱动内部没有问题,怀疑外部写入数据有问题
再次检查写入的报表描述符丢失的位置
从0x0A开始之前的全部丢失,只保留后面0x75开始向后的部分
突然想到0x0A在ASCII中是换行符
加之之前遇到过bash的内联echo函数遇到换行符后会分多次写入(详情见:关于bash内建echo输出多行文本)
于是大胆猜测很有可能是echo将0x0A识别为换行符,然后分多次写入,将前半部分给覆盖掉了

将原来的echo操作
echo 0x06 ... 0x0A 0x75 ... 0xc0 > report_desc 
更改为
echo 0x06 ... 0x0A 0x75 ... 0xc0 | tee report_desc 

果然问题被解决了

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com