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>
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章