NXP imx8 调试ISP camera

可以从NXP官网获取ISP camera调试文档。

i.MX 8M Plus_Cortex-A53/M7_NXP 半导体

export LD_LIBRARY_PATH=$pwd:$LD_LIBRARY_PATH

export VSI_LOG_LEVEL=1
export ISP_LOG_LEVEL=8
=================================================
以下为走ISP通路
					isp---到内存
  					dewrap从内存取
					做dewrap处理后,放到v4l2内存。 
sensor--->csi----->isp--->dewrap--->video0

修改内存带宽参数。
===================================================

以下为不走ISP通路

sensor--->csi----isi

写的比较细,不适合快速移植。

1、使用bitbake kernel-module-isp-vvcam -c compile -v -f

编译生存代码驱动。可以基于以下修改c和h,需要注意os08a20是raw12的,如果需要修改为raw10的,需要将文件中改全。如以下,这里SBGGR12改成BGGR10,在将h中初始化代码进行修改编译后生存ko文件。os08a20.ko

\build\tmp\work\imx8mpevk-poky-linux\kernel-module-isp-vvcam\4.2.2.13.0-r0\git\vvcam\v4l2\sensor\os08a20\
static const struct os08a20_datafmt os08a20_colour_fmts[] = {
	{MEDIA_BUS_FMT_SBGGR10_1X10, V4L2_COLORSPACE_JPEG},
};

2、使用bitbake isp-imx  -c compile -v -f

编译生成isp驱动代码。修改里面相应配置参数

build\tmp\work\cortexa53-crypto-mx8mp-poky-linux\isp-imx\4.2.2.13.0-r0\isp-imx-4.2.2.13.0\units\isi\drv\OS08a20\source/OS08a20.c

此文件生成路径:os08a20.drv

build\tmp\work\cortexa53-crypto-mx8mp-poky-linux\isp-imx\4.2.2.13.0-r0\build\generated\release\bin

3、dts文件可以使用imx8mp-evk-dual-ov2775.dts或者imx8mp-evk-ov2775.dts。如果rst和pd都没有修改,可以只修改i2c address.

以上三步:如果硬件没问题,参数没错,isp camera基本可以出图正常。

测试:运行以下脚本。

需要以下一些ko文件。

insmod os08a20.ko
insmod vvcam-video.ko
insmod vvcam-isp.ko
insmod vvcam-dwe.ko
insmod imx8-media-dev.ko

run.sh 

export LD_LIBRARY_PATH=$pwd:$LD_LIBRARY_PATH
#export VSI_LOG_LEVEL=1
export VSI_LOG_LEVEL=1
export ISP_LOG_LEVEL=0
chmod -x /opt/imx8-isp/bin/start_isp.sh
systemctl stop imx8-isp.service
sleep 1
ps -ef | grep video_test | grep -v grep | awk '{print $2}' |  xargs kill -9
ps -ef | grep isp_media_server | grep -v grep | awk '{print $2}' |  xargs kill -9

#systemctl stop weston*
#systemctl stop imx8-isp.service

#rmmod basler-camera-driver-vvcam.ko
#rmmod vvcam-video
#rmmod vvcam-isp

rmmod vvcam-dwe
rmmod vvcam-isp
rmmod vvcam-video
rmmod imx8-media-dev.ko
rmmod basler-camera-driver-vvcam.ko

#rmmod vvcam-csis
#rmmod ar1335
rmmod os08a20

#insmod basler-camera-driver-vvcam.ko
#insmod ar1335.ko
insmod os08a20.ko
insmod vvcam-video.ko
insmod vvcam-isp.ko
insmod vvcam-dwe.ko
insmod imx8-media-dev.ko

#insmod vvcam-csis.ko
#insmod ar1335.ko

cp -f  Sensor0_Entry.cfg.os08a20  Sensor0_Entry.cfg
cp -f  Sensor1_Entry.cfg.os08a20  Sensor1_Entry.cfg

#./isp_media_server case/config/2006_sensor_basler.json & gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! queue ! imxvideoconvert_g2d !  waylandsink
./isp_media_server CAMERA0 &
# ./isp_media_server CAMERA0 & gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720" ! queue ! waylandsink
# ./isp_media_server CAMERA0 & gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=3840,height=2160" ! queue ! imxvideoconvert_g2d !  waylandsink

#./isp_media_server DUAL_CAMERA &
# gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! queue ! glimagesink render-rectangle='<0, 0,480,270>' &
# gst-launch-1.0 -v v4l2src device=/dev/video1 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! queue ! glimagesink render-rectangle='<0, 0,480,270>' &

# gst-launch-1.0 -v v4l2src device=/dev/video0 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! queue ! waylandsink window-width=640 window-height=480 &
# gst-launch-1.0 -v v4l2src device=/dev/video1 ! "video/x-raw,format=YUY2,width=1920,height=1080" ! queue ! waylandsink window-width=640 window-height=480&

打开两个摄像头,可以依次执行以下命令,同时,run.sh脚本需要改成执行./isp_media_server DUAL_CAMERA &  。此时camera都能同时显示

gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720" ! queue ! glimagesink render-rectangle='<0, 0,320,240>' &
gst-launch-1.0 -v v4l2src device=/dev/video3 ! "video/x-raw,format=YUY2,width=1280,height=720" ! queue ! glimagesink render-rectangle='<640, 360,320,240>'  &

gst-launch-1.0 -v v4l2src device=/dev/video2 ! "video/x-raw,format=YUY2,width=1280,height=720" ! queue ! waylandsink
gst-launch-1.0 v4l2src device=/dev/video3 ! jpegparse ! matroskamux ! filesink location=out.mkv

或者使用以下命令抓去raw图rawdump_1280x720_268.pgm

/opt/imx8-isp/bin/video_test -w 1280 -h 720 -f RAW10 -t2 -m0 -d2

测试i2c是否ok

读i2c数据 

i2ctransfer -y -f 2 w2@0x10 0x01 0x00 r1

 写i2c数据

i2ctransfer -y -f 1 w3@0x60 0x30 0x06 0x02

一些测试工具命令 

//获取支持的分辨率和编码格式
# v4l2-ctl --list-formats-ext -d /dev/video3
//获取支持的编码格式
# v4l2-ctl  --list-formats -d /dev/video3
//获取支持的camera设备
# v4l2-ctl --list-devices -d /dev/video3

 以下命令可能有问题,谨慎使用:

v4l2-ctl -d2 --verbose --set-fmt-video=width=1280,height=720,pixelformat=YUYV --stream-mmap --stream-count=1 --stream-to=d1.raw

v4l2-ctl --device /dev/video2 --set-fmt-video=width=1280,height=720,pixelformat=YUYV; v4l2-ctl --device /dev/video2 --stream-mmap --stream-to=frame.raw --stream-count=1

  • 3
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值