海思UVC调试

前言

参考过的文章如下:

https://blog.csdn.net/zhenglie110/article/details/89360312
https://blog.csdn.net/zhenglie110/article/details/89360423
https://blog.csdn.net/zhenglie110/article/details/89361644
http://bbs.ebaina.com/thread-37986-1-1.html

但是上面这些文章里面也不全对,而且每个人需求都不太一样,因此下面我会重头再解释一遍

内核的修改

配置menuconfig增加驱动

我目前的配置就上面这些,而且是将驱动编译进了内核, 上有人把 打开了,经过我的测试打开这个选项将会导致USB2.0的接口无法识别设备,具体原因不清楚

驱动的修改

将USB摄像头插入板子上,观察打印信息

上面已经 告了VID 和 PID,因此不需要在windows里面费那么大劲去找VID和PID

修改文件

在 的末尾模仿之前的加上自己的USB设备信息,如果不加的话,设备插入时调用probe将会按默认的id_table来加载驱动,也就是这个uvc_ids末尾说的

注意一下这个driver_info的赋值,可以用来限制帧率,的值是512,这个设置好像是跟带宽有关系,没有深入了解,如果设的过小,将导致无法出图。而且USB2.0的带宽上限也只有480Mbit/s,连一个摄像头都够呛了。

sample_uvc

直接上sample代码了,原本SDK是没有uvc例子的,这个是我自己实现的,代码上传到附件,包括以下几个文件:

  • sample_comm.h
  • sample_comm_sys.c
  • sample_comm_vdec.c
  • sample_comm_vo.c
  • sample_comm_vpss.c
  • sample_uvc.c

下载地址:https://download.csdn.net/download/whitefish520/13216318

有一处错误,上传后才发现:tv_fmt.fmt.pix.height = uvcParam.u32inputHeight;

以下只粘贴了sample_uvc.c在这里,因为其它的内容基本上都是SDK里面原本就提供的,基本上没有改动,sample_uvc.c是这几天以来的心血,从0开始写的,关于程序中一些设置的解释,放在下一个章节,如果程序看的不太懂,先看后文的解读。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年11月1日
下一篇 2020年11月1日

相关推荐