前面介绍了驱动搭建方法,这里主要是排查通路的正确性
2. 内核崩溃直接运行应用程序试试,发现直接内核崩了
debug : ionAlloc [ 35.243468] Unable to handle kernel NULL pointer dereference at virtual address 00000008 <__GetIonMemOpsS:925>: *** get _[ 35.255242] pgd = dfeac000 _GetIonMemOpsS *** debug : ion[ 35.261030] [00000008] *pgd=60354835Alloc <ion_alloc_open:134>: begi, *pte=00000000n ion_alloc_open debug : ce, *ppte=00000000darc <VeSetSpeed:1552>: *** set ve freq to 600 Mhz *** debug :[ 35.279154] Internal error: Oops – BUG: 17 [#1] PREEMPT SMP ARM ionAlloc <ion_alloc_open:175>: [ 35.288507] Modules linked in: sunxi_usbc** phy offset = 0 prepare main sunxi_usb_udc gma301channel time: 1506787227s.934854 industrialio_triggered_buffer sunxi_gpadcms [ISP]video device name is vi sunxi_aio vin_v4l2n_video2 [ISP]open video device nvp6124b vin_io[2] success! W0930 16:00:27.935 videobuf2_dma_contig 124 859 VIChannel.cpp:1820] 35.321237] CPU: 3 PID: 859 Comm: sdvcam Not tainted 4.4.55 #147 60D <prepare> Be ca[ 35.330695] Hardware name: sun8iw12 reful! not find match sensor par[ 35.337359] task: e08c3c00 ti: dfe4e000 task.ti: dfe4e000 am set! isp param will be select[ 35.346325] PC is at vin_pipeline_s_power+0x40/0x108 [vin_v4l2] ed near user param! [ 35.355605] LR is at vin_pipeline_s_power+0x8c/0x108 [vin_v4l2] [ 35.363946] pc : [<bf03e81c>] lr : [<bf03e868>] psr: 60000013 [ 35.363946] sp : dfe4fd88 ip : 00000000 fp : bf042fb9 [ 35.376740] r10: bf042fb0 r9 : 00000001 r8 : 00000008 [ 35.382560] r7 : 00000000 r6 : 00000001 r5 : e0a9fcbc r4 : 00000001 [ 35.389832] r3 : 00000000 r2 : 00000001 r1 : 00000000 r0 : dfc79d28分析原因: 虽然使用并口功能,但是是走mipi驱动的,所以mipi_sel必须打开
解决如下: 修改sysconfig中mipi_sel从0xff改为0x00
3. ISP报错frame error原因: combo0并口功能使用的ISP0和ISP1没有bypass功能,必须得关闭isp
sensor1_isp_used = 0 关闭 sensor1_fmt = 0 YUV关闭后ISP通路正常
4. 使用图像采集demo测试 ./csi_test 2 0 1280 720 /mnt 1 100 30说明: demo程序在SDK里面是有的,直接编译即可使用 参数1: 采集几个视频通道 参数3 4: 分辨率 参数5: 视频存储目录 参数6: 模式 参数7 8: 帧数和帧率
报错如下:
源码分析: mipi驱动支持的格式没有加上对YUV格式的支持
5. YUV格式扩展查看全志开发文档说明
YUV格式支持如下: 找到sunxi_mipi.c文件,添加如下
6. 接口模式修改按照上面修改后,继续报错
原因: 如果是传统并口数据(有HSYNC,VSYNC信号)应该选择V4L2_MBUS_PARALLEL 且Cfg->flags是需要加上V4L2_MBUS_MASTER
但是实际上是使用BT656信号,应该按如下修改:
按照上述修改后,现在运行demo不会再报错了
免责声明:文章内容来自互联网,本站不对其真实性负责,也不承担任何法律责任,如有侵权等情况,请与本站联系删除。
转载请注明出处:全志平台N3模块调试(2)视频通路调试记录 https://www.yhzz.com.cn/a/13803.html