Hi3518EV200学习记录之运行mpp/sample/sample_venc(ov9712)
来源:互联网 发布:如何修改高德导航端口 编辑:程序博客网 时间:2024/06/03 20:23
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。
- Hi3518EV200学习记录之运行mpp/sample/sample_venc(ov9712)
- Hi3518EV200学习记录之环境搭建
- Hi3518EV200学习记录之用户态SPI
- hi3518E + ov9712调试时,sample_venc居然取不到video data!
- 在Hi3531上运行QT, 并对 mpp/sample/hifb/sample_hifb.c 修改
- 零基础Ar学习之Unity3D运行EasyAr Sample
- 学习记录:Hadoop之WordCount运行
- MPP
- MQL4学习之MACD Sample解读
- Tuscany Sample 运行成功
- dx sample学习(更新中)
- Hawq学习笔记 --- MPP(大规模并行处理)架构(Massively Parallel Processing)
- pig的limit无效(返回所有记录)sample有效
- HEVC之-------sample adaptive offset(SAO)
- GWT(google web toolkit)教程(二) 运行sample
- R-ArcGIS探秘(1)安装以及Sample运行
- 热更新Tinker研究(一):运行tinker-sample-android
- 海思Hi3518EV200(5)图像sensor驱动开发
- Google Java编程风格指南
- 享元模式
- Python百度采集教程一
- Day10-35.A compendium of operators
- Centos6.5上安装python3.4.3+django1.10.3+sqlite3
- Hi3518EV200学习记录之运行mpp/sample/sample_venc(ov9712)
- java集合类图
- ajaxFileUpload进行文件上传时,总是进入error
- C++中的case标签
- URLDecoder: Illegal hex characters in escape (%) pattern
- 对JAVASCRIPT匿名函数的理解(透彻版)
- 码流 / 码率 / 比特率 / 帧速率 / 分辨率 / 高清的区别
- 动态加载控件
- 关于自定义的compareTo方法