Loading...
首页专栏正文

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

 
1人已赏
free-jdx 发布于 2020-11-26 18:28:21 浏览 4660 点赞 56 收藏 41

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

报错如下:

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

5. YUV格式扩展

查看全志开发文档说明

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

6. 接口模式修改

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

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

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

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

*本文仅代表作者观点,不代表易百纳技术社区立场。系作者授权易百纳技术社区发表,未经许可不得转载。

精彩评论

内容存在敏感词
打赏
打赏作者
free-jdx
您的支持将鼓励我继续创作!
金额:
¥1 ¥5 ¥10 ¥50 ¥100
支付方式:
微信支付
支付宝支付
微信支付
打赏成功!

感谢您的打赏,如若您也想被打赏,可前往 发表专栏 哦~

易百纳技术社区
确定要删除此文章、专栏、评论吗?
确定
取消
易百纳技术社区