6.4.4. 测试指南
6.4.4.1. 测试环境
6.4.4.1.1. 硬件
开发板
可转接摄像头的子板
摄像头,如OV5640
6.4.4.1.2. 软件
PC端的串口终端软件,用于PC和开发板进行串口通信
DVP模块的测试demo:dvp_test
6.4.4.1.3. 软件配置
6.4.4.1.3.1. 配置 OV5640 摄像头
测试中需要用到摄像头,以OV5640为例,参考快速入门 - 编译概述 - Kernel配置,按如下选择:
Linux
Device Drivers
Multimedia support
Media ancillary drivers
Camera sensor devices
<*> OmniVision OV5640 sensor support
在board.dts中,也需要增加OV5640的配置,假设OV5640是接在I2C3通道:
&i2c3 {
pinctrl-names = "default";
pinctrl-0 = <&i2c3_pins_a>, <&clk_out1_pins>; /* i2c3 引脚及 clock 引脚 */
status = "okay";
ov5640: camera@3C {
compatible = "ovti,ov5640";
reg = <0x3C>;
clocks = <&cmu CLK_APB1>;
clock-names = "xclk";
reset-gpios = <&gpio_p 5 GPIO_ACTIVE_LOW>;
powerdown-gpios = <&gpio_p 6 GPIO_ACTIVE_HIGH>;
port {
ov5640_out: endpoint {
remote-endpoint = <&dvp0_in>;
/* V4L2_FWNODE_BUS_TYPE_BT656
bus-type = <6>; */
bus-width = <8>;
data-shift = <2>;
hsync-active = <0>;
vsync-active = <1>;
pclk-sample = <1>;
};
};
};
};
备注
如果要使用BT656模式,请打开bus-type参数;
如果是YUV422,不需要配置bus-type,代码中默认采用YUV422(即V4L2_FWNODE_BUS_TYPE_PARALLEL,定义在drivers/media/v4l2-core/v4l2-fwnode.c)。
6.4.4.1.3.2. dvp_test 配置
在openwrt根目录,运行make menuconfig,按如下选择:
zx (openwrt)
sample-code
[*] test-dvp
6.4.4.2. dvp_test 测试
dvp_test的主要功能是将摄像头的数据采集后,传给DE模块的Video图层去显示。其设计详见 APP Demo
在打开dvp_test的编译后,板子上的dvp_test位于 /usr/local/bin/
,无需进入该目录,直接运行dvp_test即可:
[aic@] # dvp_test -u
Usage: dvp_test [options]:
-f, --format format of input video, NV12/NV16 etc
-c, --count the number of capture frame
-w, --width the width of sensor
-h, --height the height of sensor
-r, --framerate the framerate of sensor
-u, --usage
-v, --verbose
Example: dvp_test -f nv16 -c 1
# 使用示例:
# 设置摄像头的分辨率为 720*576,帧率为15帧/s,
# 使用 NV12 格式(默认)输出到 Video Layer 显示,共采集并显示100帧数据
[aic@] # dvp_test -w 720 -h 576 -r 15 -c 100