海思芯片部署MPP并验证功能

Posted 代二毛

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了海思芯片部署MPP并验证功能相关的知识,希望对你有一定的参考价值。

1. 前期准备

1.1搭建好开发环境:

1.这里说的是以个人电脑进行开发:安装好虚拟机,在虚拟机中搭建好nfs服务器,确保开发板可以挂载上虚拟机;
2.确保开发板和PC可以通过串口通信;

1.2熟悉海思芯片的SDK开发包

1.SDK开发包里有mpp文件夹,文件夹里的都是MPP依赖的库和示例程序,多花点时间研究;
2.mpp/ko目录下是音视频编解码相关的驱动;
3.mpp/lib目录下是相关的静态库和动态库,包括sensor依赖的库;
4.mpp/sample目录下是示例程序,编译生成可执行程序就可以在芯片上运行,是学习海思芯片开发不错的代码;
5.我开发板用的芯片是海思芯片本身就支持的sensor型号,所以我只需要将SDK包里的库部署到海思芯片上就可以运行;如果你用的sensor型号海思芯片的SDK包不支持,你需要手动去添加sensor型号和sensor的驱动;

2.什么是MPP

MPP就是海思提供的一套音视频开发的体系,具体内容可以参考SDK里的文档《HiMPP IPC V2.0 媒体处理软件开发参考.pdf》。具体以*.ko、.a和.so文件的形式提供,我们只需要在海思芯片上加载上相关的库,就可以调用API进行音视频的开发。

3.MPP的部署

3.1 开发板挂载到虚拟机

(1)提前将mpp/ko夹和mpp/lib文件夹拷贝到nfs服务器挂载的目录/home/aston/rootfs/下;
(2)挂载设备的/mnt目录到/home/aston/rootfs/目录下:mount -t nfs -o nolock 192.168.1.141:/home/aston/rootfs /mnt

3.2部署驱动:*.ko文件

1.将/mnt/ko整个文件夹拷贝到根目录下,你也可以不拷贝根目录下,这个随便你,这一步主要是将整个ko文件夹从虚拟机拷贝到设备里;
2.ko文件夹里有个load3518e文件,这里面是加载整个ko文件的脚本,花点时间看看;
3.load3518e文件里的重点内容介绍:
(1)SNS_TYPE=ar0230 # 指定sensor型号
(2)mem_total=64; # 总共有64M的内存
(3)mem_start=0x80000000; # 内存起始地址是0x80000000
(4)os_mem_size=32; # 系统分配32M内存,这里要和bootargs里的对应上
(5)mmz_start=0x82000000; # mmz内存的地址地址
(6)mmz_size=32M; # mmz分配32M内存
4.执行load3518e脚本:./load3518e -i -sensor ar0130 -osmem 32 -total 64;-i是代表加载ko,ar0130是sensor型号,-osmem 32 是指名系统内存32M,-total 64指明总共有64M的内存;
5.将执行load3518e脚本的命令写到/etc/profile文件里,确保每次系统启动都会执行加载ko的命令。不知道为什么要写到/etc/profile文件的可以参考博客《/etc/profile文件简单介绍》

3.2 部署动态库

(1)将/mnt/lib目录下的*.so文件都拷贝到/usr/lib目录下,这样程序运行时就可以调用动态库。一般不要导入到/lib目录下,/lib目录下实系统依赖的.so库;
(2)你也可以不拷贝到/usr/lib目录下,自己建一个目录来放这些*.so文件,但是要记得将这个目录的路径导入到环境变量里;

4.验证MPP

(1)在mpp\\sample目录下有Makefile.param文件,在文件里有指明海思的芯片型号和sensor型号,根据自己的情况进行修改;
(2)进入到mpp/sample/venc目录,会看到Makefile文件和一个sample_venc.c文件,执行Makefile就可以得到一个可执行程序,将该可执行程序拷贝到海思芯片上运行。程序运行后会得到h.264的文件,将该文件拷贝到PC端用VLC文件进行查看,如果图像没有问题,说明部署的MPP就成功了。

以上是关于海思芯片部署MPP并验证功能的主要内容,如果未能解决你的问题,请参考以下文章

海思Hi3519A MPP从入门到精通(一 系统概述)

4将MPP部署到开发板上

华为海思芯片都有哪些

海思芯片介绍

海思芯片介绍

海思芯片介绍