针对Hi35xx/HIVIEW系列海思开发------HIVIEW开发环境移植到另外一个开发板(瀚视已经成功移植了)-伟哥实现的
1)uboot、kernel、rootfs的准备:
将HIVIEW移植到3559av100使用的海思的SDK版本为031版本。对于uboot、kernel和rootfs的编译,只需要按照海思SDK的031版本的osdrv目录下readme_cn.txt的教程编译即可(编译链工具为:aarch64-himix100-linux-,编译uboot的时候,需要注意生成.reg使用的单板文件是否与板子的设计对应)
uboot、kernel、roorfs可参考:
《针对Hi35xx/HIVIEW系列海思开发------移植到Hi3516DV300------编译u-boot流程与注意点》https://www.cnblogs.com/iFrank/p/15583167.html
《针对Hi35xx/HIVIEW系列海思开发------移植到Hi3516DV300------编译kernel流程与注意点》https://www.cnblogs.com/iFrank/p/15583280.html
《针对Hi35xx/HIVIEW系列海思开发------移植到Hi3516DV300------制作根文件系统》https://www.cnblogs.com/iFrank/p/15583291.html
2)生成Hi3559av100的可执行文件
github上最新提交的版本git下来编译3559a存在一些bug(暂时没有解决),采用我以前git下来的版本是可以编译通过的(编译遇到的错误已经解决,基本上是缺少lib的原因),直接在虚拟机HIVIEW_old的目录下source build/3559a & make,然后在HIVIEW_old/bin目录下给生成的可执行文件加上权限:chmod -R 777 *。
3)保证板卡在执行海思sdk mpp的sample_vio是有摄像头实时采集的数据的
这一步执行的步骤为:
STEP1:确定摄像头型号(imx334?);
STEP2: 确定imx334所用的驱动(imx334.so? Imx334_slave.so?,主从模式);
STEP3:将mpp/sample目录下的Makefile.param进行修改:修改如下
STEP4:将mpp/sample/vio/sample_vio.c的1080P30修改为1080P60,将VO_OUTPUT_3840x2160_30修改为VO_OUTPUT_1080P60。
STEP5:make clean & make
STEP6:在板卡运行sample_vio: ./sample_vio 0 0
4)修改/添加摄像头代码
在编译HIVIEW之前,需要对HIVIEW的代码进行一个改动,使得HIVIEW可以调用摄像头。以瀚视板卡为例:使用的摄像头为imx334,经过运行海思SDK的sample_vio得知,该板卡使用imx334的salve模式,因此使用的驱动为SONY_IMX334_SLAVE_MIPI_8M_30FPS_12BIT。HIVIEW关于摄像头驱动选择的代码主要在mpp.c(HIVIEW_old/mod/mpp/3559a/src),其中关键的函数与变量如下:
A、SAMPLE_MPP_SENSOR_T 静态变量:保存着HIVIEW所支持的所有摄像头驱动信息;
B、函数SAMPLE_MPP_SERSOR_GET(char* name):根据形参name的传递来选择对应的驱动;
C、函数int gsf_mpp_cfg_sns(char *path, gsf_mpp_cfg_t *cfg):获取mpp相关的配置信息,关于摄像头name的选择主要是与snsstr变量相关,该变量的定义在codec.c。
对于codec.c(HIVIEW_old/mod/codec/ipc)关于mpp配置相关的函数为:int mpp_start(gsf_bsp_def_t *def):其中与3559a摄像头驱动选择的代码如下:
将该部分代码修改为板卡所支持的摄像头驱动信息即可,例如:现在由SONY_IMX334_MIPI_8M_30FPS_12BIT 修改为 SONY_IMX334_SLAVE_MIPI_8M_30FPS_12BIT 只需根据SAMPLE_MPP_SENSOR_T 静态变量的信息,将cfg.lane、cfg.wdr、cfg.res 、cfg.fps 进行修改即可(由cfg.lane = 0; cfg.wdr = 0; cfg.res = 8; cfg.fps = 30; 修改为 cfg.lane = 1; cfg.wdr = 0; cfg.res = 8; cfg.fps = 60;)
5)将HIVIEW编译好的可执行文件(/bin/*)拷贝到/nfsroot/hiview/app/bin目录当中(记得给权限:chmod -R 777 *)
6)运行脚本如下:
Step1: export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/mnt/hiview/app/lib
Step2: ./mnt/hiview/app/bin/bsp.exe /mnt/hiview/app/cfg/bsp_def.json /mnt/hiview/app/cfg/bsp_parm.json & ./mnt/hiview/app/bin/codec.exe /mnt/hiview/app/cfg/codec_parm.json & #./mnt/hiview/app/bin/rec.exe /mnt/hiview/app/cfg/rec_parm.json & ./mnt/hiview/app/bin/rtsps.exe /mnt/hiview/app/cfg/rtsps_parm.json & ./mnt/hiview/app/bin/rtmps.exe /mnt/hiview/app/cfg/rtmps_parm.json & ./mnt/hiview/app/bin/onvif.exe /mnt/hiview/app/cfg/onvif_parm.json & ./mnt/hiview/app/bin/webs.exe /mnt/hiview/app/cfg/webs_parm.json & ./mnt/hiview/app/bin/svp.exe /mnt/hiview/app/cfg/svp_parm.json & ./mnt/hiview/app/bin/app.exe /mnt/hiview/app/cfg/app_parm.json & ./mnt/hiview/app/bin/sleep 5;
屏蔽到rec.exe的目的是为了保证在运行错误的情况下不会使得板卡直接挂掉。因此rec.exe连接不上会疯狂打印信息,并且reboot之后会自动格式化sd、emmc、flash。
- 针对Hi35xx/HIVIEW系列海思开发------HIVIEW开发板初体验及软件升级(适用git上HIVIEW版本更新)
- 针对Hi35xx/HIVIEW系列海思开发------GitHub上新版本的HIVIEW(以HIVIEW2021-12-10-hybrid为例)编译Hi3559av100步骤
- 针对Hi35xx/HIVIEW系列海思开发------HIVIEW2021-12-10-hybrid编译Hi3559a过程
- 对Hi35xx/HIVIEW系列海思开发------HIVIEW2021-12-10-hybrid IPC---VDEC/VPSS/VO解码调试信息
- 黑莓开发学习入门系列,自己动手实现一个日历软件(二)
- 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
- 黑莓开发学习入门系列,自己动手实现一个日历软件(六)
- 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
- 基于GTK+3 开发远程控制管理软件(C语言实现)系列三 Windows7开发环境搭建
- 《Orange’s 一个操作系统的实现》1.搭建操作系统开发环境
- 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
- 海思开发板3520D移植Qt4.8.6环境变量配置
- QT开发环境的建立以及qte4.6.3、tislib1.4移植到博创star2410开发板
- 深圳远峰YFDVK-255-I开发板之bootloader移植及分析--Blob(一)开发环境准备
- 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
- 嵌入式Qt开发环境搭建及移植到开发板----Qt学习笔记
- 【Jetty Server 开发系列之一】搭建Jetty Server环境&&Http客户端实现交互
- 【实践驱动开发2-001】wifi 在android 下的实现 - AR6000 系列移植详细步骤
- 嵌入式Qt开发环境搭建及移植到开发板
- 树莓派开发板--Linux系统--ROS环境--实现一个简单的消息发布器和订阅器