| 
前  言 本文主要介绍基于创龙科技TL3588-EVM评估板的视频开发案例,适用开发环境如下。 Windows开发环境:Windows 7 64bit、Windows 10 64bit 虚拟机:VMware16.2.5 开发环境:Ubuntu20.04.6 64bit U-Boot:U-Boot-2017.09 Kernel:Linux-5.10.160 Debian:Debian 11 LinuxSDK:LinuxSDK-[版本号](基于rk3588_linux_release_v1.2.1_20230720) 我司提供的视频开发案例位于产品资料“4-软件资料\Demo\platform-demos\”目录下,本文档对应案例的测试模块型号、测试结果说明如下表所示。  
![]()  
表 1 
评估板文件系统默认已支持GStreamer库,可执行如下命令查看GStreamer库使用说明。 Target# gst-inspect-1.0 -h  
![]()  
图 1 
GStreamer是用来构建流媒体应用的开源多媒体框架,其目标是要简化音视频应用程序的开发,目前可被用于处理MP3、Ogg、MPEG1、MPEG2、AVI、Quicktime等多种格式的多媒体数据。  
v4l2_capture案例案例说明本案例主要基于V4L2与DRM子系统实现MIPI摄像头的视频采集,并通过HDMI进行显示,验证CAMERA1~CAMERA6接口功能。 备注:当前程序仅支持NV12格式数据采集。 程序流程图如下图所示。  
![]()  
图 2 
V4L2(Video For Linux Two)为Video For Linux API的第二个版本,用于模拟无线电、视频捕获、输出驱动程序的内核接口。 DRM(Direct Rendering Manager)用于管理显示输出和分配buffer。关于DRM子系统的详细介绍可参考产品资料“6-开发参考资料\其他参考文档\”目录下的《brezillon-drm-kms》。  
![]()  
图 3 DRM整体框架 
案例测试我司提供已配置的内核镜像文件boot-xxx-xxx.img,位于产品资料“4-软件资料\Demo\platform-demos\v4l2_capture\dts\bin\”目录下,其对应关系如下表所示。  
![]()  
表 2 
本次以替换boot-ov13850-cam2.img内核镜像为例,请将其拷贝至评估板文件系统,执行如下命令替换评估板内核镜像。如需测试其他模块以及对应的接口,请根据实际情况替换内核镜像。 备注:如需固化至eMMC,请将设备节点修改为"/dev/mmcblk0p3"。 Target# dd if=boot-ov13850-cam2.img of=/dev/mmcblk1p3 Target# sync Target# reboot  
![]()  
图 4 
本次以测试创龙科技TL13850模块为例,请将产品资料"4-软件资料\Demo\platform-demos\iqfiles\"目录下的IQ参数文件ov13850_RK-CMK-8M-2-v1_CK8401.json拷贝至评估板文件系统"/etc/iqfiles/"目录下,然后执行如下命令,进行转换字符。 Target# dos2unix /etc/iqfiles/ov13850_RK-CMK-8M-2-v1_CK8401.json Target# sync Target# reboot  
![]()  
图 5 
备注:如需测试其他模块,请将对应IQ参数文件拷贝至评估板文件系统"/etc/iqfiles/"目录下,进行转换字符,对应IQ参数文件如下表所示。  
![]()  
表 3 
TL13850模块测试请使用FFC软排线将MIPI摄像头模块(创龙科技TL13850)连接至评估板CAMERA2接口,将评估板HDMI OUT接口连接至HDMI显示屏。 注意:请使用FFC软排线(30pin,间距0.5mm,同向),按照如下方法进行硬件连接,并仔细核对评估板接口、FFC软排线、摄像头三者线序,否则可能烧毁摄像头。  
![]()  
图 6 
执行如下命令采集视频,并输出至显示设备。 Target# ./v4l2_capture -M rockchip -i /dev/video-camera0 -S 1920x1080 -f NV12 -F NV12 -b 4 -o 208:71:1920x1080  
![]()  
图 7 
![]()  
图 8 
Camera Module v2模块测试请使用FFC软排线将MIPI摄像头模块(树莓派Camera Module v2)连接至评估板CAMERA3接口,将评估板HDMI OUT接口连接至HDMI显示屏。 注意:请使用FFC软排线(15pin,间距1.0mm,反向),按照如下方法进行硬件连接,并仔细核对评估板接口、FFC软排线、摄像头三者线序,否则可能烧毁摄像头。  
![]()  
图 9 
执行如下命令采集视频,并输出至显示设备。 Target# ./v4l2_capture -M rockchip -i /dev/video-camera0 -S 1920x1080 -f NV12 -F NV12 -b 4 -o 208:71:1920x1080  
![]()  
图 10 
![]()  
图 11 
案例编译设备树编译将案例"dts\src\"目录下tl3588-evm-imx219.dts、tl3588-evm-ov13850.dts设备树拷贝至LinuxSDK源码"kernel/arch/arm64/boot/dts/rockchip/"目录下。  
![]()  
图 12 
请按照《Debian系统使用手册》文档Debian系统镜像编译、生成章节,替换设备树并重新编译内核,将生成的内核镜像文件拷贝至评估板文件系统进行固化,评估板重启后将会加载新的内核镜像文件。 程序编译将案例源码拷贝至Ubuntu工作目录,进入src源码目录,执行如下命令修改Makefile文件中的SDK_ROOT_PATH路径,请根据实际情况修改为LinuxSDK源码路径。 Host# vi Makefile  
![]()  
图 13 
![]()  
图 14 
执行如下命令进行案例编译,编译完成将会在相同目录下生成可执行程序。 Host# make  
![]()  
图 15 
案例解析设备树说明我司提供的设备树文件tl3588-evm-xxx.dts,位于产品资料“4-软件资料\Demo\platform-demos\v4l2_capture\dts\src\”目录下。其对应关系如下表所示。  
![]()  
表 4 
如需使用相应接口测试摄像头模块,可参考如下方法修改对应设备树文件。本次以CAMERA3接口为例,测试树莓派Camera Module v2模块。 将代码"#define CAMERA3_ENABLE_IMX219  0"修改为:"#define CAMERA3_ENABLE_IMX219  1"即可。  
![]()  
图 16 tl3588-evm-imx219.dts  关键代码说明(1)显示初始化。 
 
![]()  
图 17 
(2)采集初始化。 
 
![]()  
图 18 
(3)DRM buffer申请与绑定。 
 
![]()  
图 19 
(4)图像采集与显示。 
 
![]()  
图 20 
 
 |