首页 > 技术知识 > 正文

1.概述

前面介绍了驱动搭建方法,这里主要是排查通路的正确性

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: 帧数和帧率

报错如下: 全志平台N3模块调试(2)视频通路调试记录

源码分析: mipi驱动支持的格式没有加上对YUV格式的支持

5. YUV格式扩展

查看全志开发文档说明

YUV格式支持如下: 找到sunxi_mipi.c文件,添加如下

全志平台N3模块调试(2)视频通路调试记录1

6. 接口模式修改

按照上面修改后,继续报错

全志平台N3模块调试(2)视频通路调试记录2

原因: 如果是传统并口数据(有HSYNC,VSYNC信号)应该选择V4L2_MBUS_PARALLEL 且Cfg->flags是需要加上V4L2_MBUS_MASTER

全志平台N3模块调试(2)视频通路调试记录3

但是实际上是使用BT656信号,应该按如下修改:

全志平台N3模块调试(2)视频通路调试记录4

全志平台N3模块调试(2)视频通路调试记录5

按照上述修改后,现在运行demo不会再报错了

猜你喜欢