Hi3518EV200学习记录之运行mpp/sample/sample_venc(ov9712)




Linux环境:Ubuntu10.04

SDK版本:(Hi3518E_SDK_V1.0.3.0.tgz)Hi3518EV200R001C01SPC030

一、Hi3518E_SDK_V1.0.3.0.tgz解压后默认sensor为ar0230,为了适配ov9712,需要做如下修改:

1、mpp/ko/load3518e中:

原来配置如下:

SNS_TYPE=ar0230             # sensor type

mem_total=64;               # 64M, total mem
mem_start=0x80000000;       # phy mem start

os_mem_size=32;             # 32M, os mem
mmz_start=0x82000000;       # mmz start addr
mmz_size=32M;               # 32M, mmz size

修改后配置如下:

SNS_TYPE=ov9712             # sensor type

mem_total=64;               # 64M, total mem
mem_start=0x80000000;       # phy mem start

os_mem_size=32;             # 32M, os mem
mmz_start=0x82000000;       # mmz start addr
mmz_size=32M;               # 32M, mmz size

2、mpp/sample/Makefile.param中

原来配置如下:

CHIP_ID ?= CHIP_HI3516C_V200

#CHIP_ID ?= CHIP_HI3518E_V200
#CHIP_ID ?= CHIP_HI3518E_V201

################# select sensor type for your sample ####################

#SENSOR_TYPE ?= APTINA_9M034_DC_720P_30FPS

SENSOR_TYPE ?= SONY_IMX222_DC_1080P_30FPS

#SENSOR_TYPE ?= SONY_IMX222_DC_720P_30FPS

#SENSOR_TYPE ?= APTINA_AR0130_DC_720P_30FPS

#SENSOR_TYPE ?= PANASONIC_MN34222_MIPI_1080P_30FPS

#SENSOR_TYPE ?= APTINA_AR0230_HISPI_1080P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV9712_DC_720P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV9732_DC_720P_30FPS
#SENSOR_TYPE ?= OMNIVISION_OV9750_MIPI_720P_30FPS
#SENSOR_TYPE ?= OMNIVISION_OV9752_MIPI_720P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV2718_MIPI_1080P_25FPS

修改后配置如下:

#CHIP_ID ?= CHIP_HI3516C_V200
CHIP_ID ?= CHIP_HI3518E_V200

#CHIP_ID ?= CHIP_HI3518E_V201

################# select sensor type for your sample ####################

#SENSOR_TYPE ?= APTINA_9M034_DC_720P_30FPS

#SENSOR_TYPE ?= SONY_IMX222_DC_1080P_30FPS

#SENSOR_TYPE ?= SONY_IMX222_DC_720P_30FPS

#SENSOR_TYPE ?= APTINA_AR0130_DC_720P_30FPS

#SENSOR_TYPE ?= PANASONIC_MN34222_MIPI_1080P_30FPS

#SENSOR_TYPE ?= APTINA_AR0230_HISPI_1080P_30FPS

SENSOR_TYPE ?= OMNIVISION_OV9712_DC_720P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV9732_DC_720P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV9750_MIPI_720P_30FPS
#SENSOR_TYPE ?= OMNIVISION_OV9752_MIPI_720P_30FPS

#SENSOR_TYPE ?= OMNIVISION_OV2718_MIPI_1080P_25FPS

二、运行load3518e加载mpp所需的ko

mount -t nfs 192.168.1.6:/nfsroot/ /nfsroot -o nolock

cd /nfsroot/hi3518e/mpp/ko

./load3518e -a -sensor ov9712 -osmem 32 -total 64

加载mmz.ko出错、OS和MMZ内存重叠了。错误原因:

设置boot启动参数时如下

setenv bootargs ‘mem=64M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)’
setenv bootcmd ‘sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000’
sa

其中 mem=64M,为OS内存,DDR总内存64M,而1中分配OS内存32M,MMZ内存32M。

修改uboot启动参数如下:

setenv bootargs ‘mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1M(boot),3M(kernel),12M(rootfs)’
setenv bootcmd ‘sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000’
sa

重启后再次运行,可以成功加载load3518e。

三、编译mpp/sample/venc/sample_venc并运行

Linux主机端:make

板卡端:

cd ../sample/venc

./sample_venc 0

起初会报错 system init failed,调用SAMPLE_COMM_SYS_Init进行SAMPLE_COMM_SYS_Init出错,追溯下去是HI_MPI_VB_Init出错,返回值是0xA002800C,分配内存失败,原因是没有进行一中2的修改,默认CHIP_HI3516C_V200的g_u32BlkCnt是10,所以VB分配出错。

可以成功获取h264码流文件,使用播放器播放可以出画面,只是白色区域偏粉,原因VI掩码设置与硬件不匹配,硬件使用的是D0~D9,修改如下:

VI_DEV_ATTR_S DEV_ATTR_OV9732_DC_720P_BASE ={

{0x03FF0000,    0x0},//{0xFFC0000,    0x0},//D2~D11

};

到此,可以成功的运行ov9712的sample_venc demo。

        </div>
            </div>
        </article>


猜你喜欢

转载自blog.csdn.net/superhubin/article/details/80520379