NXP imx8 调试ISP camera
可以从NXP官网获取ISP camera调试文档。
i.MX 8M Plus_Cortex-A53/M7_NXP 半导体
export LD_LIBRARY_PATH=$pwd:$LD_LIBRARY_PATHexport 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
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-isprmmod 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.kocp -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.rawv4l2-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
NXP imx8 调试ISP camera相关推荐
- linux 定时器中断 imx,NXP iMX8 存储性能测试
1).简介 NXP iMX8系列应用处理器是NXP发布的基于Cortex-A72/A53/A35和Coretex-M4/M7等架构的ARM处理器,对于存储部分,主要支持MMC 5.1.SD Memor ...
- NXP iMX8系列处理器Pin Multiplexing定义说明
By Toradex秦海 1). 简介 为了提高处理器的设计灵活性和可用性,NXP的所有i.MX系列处理器都配备了基于 IOMUX Controller (IOMUXC)和IOMUX来使能Pin Mu ...
- NXP iMX8 Ubuntu 系统移植及 ROS 应用
By Toradex 胡珊逢 1). 简介 NXP iMX8 是NXP近期发布的基于Cortex-A72.Cortex-A53等性能非常强大的的ARM处理器, 默认 BSP 是基于 Yocto 工程编 ...
- NXP iMX8 存储性能测试
1). 简介 NXP iMX8系列应用处理器是NXP发布的基于Cortex-A72/A53/A35和Coretex-M4/M7等架构的ARM处理器,对于存储部分,主要支持MMC 5.1.SD Memo ...
- NXP iMX8和iMX6 ARM处理器网络性能对比
By Toradex秦海 1). 简介 NXP iMX8已经正式发布,相较于之前NXP i.MX系列的主力产品iMX6,其性能有了大幅提升,本文就针对网络接口对NXP iMX8和iMX6两款ARM处 ...
- mipi和isp处理_VS-RK3399 在linux系统下面调试Mipi camera接口介绍
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 debian系统目前支持Usb camera是没有问题,走UVC功能接口.那么mipi 接口camera和并口接口的camera,在Debian系统怎么设 ...
- 高通Android平台硬件调试之Camera篇
之前一段时间有幸在高通android平台上调试2款camera sensor,一款是OV的5M YUV sensor,支持jpeg out,同时也支持AF,调试比较比较简单,因为别的项目已经在使用了, ...
- linux 双mipi摄像头,VS-RK3399 在linux系统下面调试Mipi camera接口介绍
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 debian系统目前支持Usb camera是没有问题,走UVC功能接口.那么mipi 接口camera和并口接口的camera,在Debian系统怎么设 ...
- linux 扫描mipi设备,VS-RK3399 在linux系统下面调试Mipi camera接口介绍
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 debian系统目前支持Usb camera是没有问题,走UVC功能接口.那么mipi 接口camera和并口接口的camera,在Debian系统怎么设 ...
最新文章
- Vivado2018如何与Notepad++关联?
- linux net.ipv4.ip_forward 数据包转发
- ASP.NET 安全认证(一)
- [Android] ListView关于adapter多种view设置
- 为什么传值时加号变成了空格_为什么中英文字间距不一样?我想谈谈我的理解...
- IOS中通知中心(NSNotificationCenter)的使用总结
- windows 下 putty 登陆服务器 显示matlab图形界面
- ironpython console是否可以卸载_IronPython的第十块鳞片
- LeetCode -- 204. Count Primes
- 前端面试题vue-element汇总
- 【零基础学Java】—List集合(三十九)
- 怎么判断自己启动的线程是否执行完成 java_Java面试笔记(上)
- 看不懂简明python教程_简明python教程
- 依码仕喷码机编程指南
- 环评师考各个科目有哪些备考的好方法?
- 微信小程序简洁登录页面(附源码)
- hook read_chk 导致dex2oat进程 abort
- css特效:流光背景+动态边框+滑动效果+聚集效果+小耳朵+阴影流光效果
- 代理服务器与NAT技术
- arduino动态刷新显示_玩家国度XG27UQ绝影游戏显示器评测:DSC加持的满血4K显示器...