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>;
            };
        };
    };
};

备注

  1. 如果要使用BT656模式,请打开bus-type参数;

  2. 如果是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