海思项目学习记录 -1

1、视频从产生到被消费的整个流程
(1)基本认知:视频是由单帧图像以每秒x帧的速率连续组成的,单帧图像类似位图。
(2)原始视频产生:镜头和sensor
(3)图像处理:ISP(image signal processing)
(4)视频编码压缩:h.264/h.265压缩算法,运算,内置DSP进行压缩运算的。
(5)视频流传输:网络传输、http/rtsp等
(6)视频存储:打包成MP4等格式存储,等待调阅
(7)视频回放:解码+播放

2、海思SDK了解
2.1;三个脚本
sdk.unpack 解压
sdk.cleanup 清理解压产生的文件,因此操作前如果有文件被修改要被备份
scripts/common.sh 主要提供一些函数由前两个脚本包含

2.2、osdrv海思提供的编译操作
\package\osdrv 海思已经提供的交叉编译工具链、uboot、kernel、文件系统等。

交叉编译工具链提供了两种,可以通过编译的时候传参指定,uclic库不全但是精简,而glibc库庞大但全

2.3、交叉编译工具列的系列问题
1)工具链是32位的,与系统位数不匹配
给ubuntu16.0403X64安装32位兼容包
(1)参考:http://blog.csdn.net/ma57457/article/details/68923623
或者:https://www.cnblogs.com/leaven/p/5084902.html
(2)用aptitude方式安装lib32z1。使用sudo apt-get install lib32z1,发现装不了。原因是ubuntu太新了,里面很多库都是新版本的,但是基于这个新版本的lib32z1还没有,所以不能装。解决方案就是用aptitude工具来装,但是基于这个新版本的lib32z1还没有,所以不能装。解决方案就是用aptitude工具来装。
注意的是aptitude也不一定成功,
首先注意保证虚拟机联网(因此要注意网络切换,与开发板通信时、和联网时是不同的interface文件内容)、而可以尝试N-Y-Y的选择,不然有时候搞半天还没有下载一个东西,尝试第一个选择N,之后选择Y则能成功

(3)测试执行arm-xxx-gcc -v,提示找不到stdc++错误:
./arm-hisiv300-linux-uclibcgnueabi-gcc -v
./arm-hisiv300-linux-uclibcgnueabi-gcc: error while loading shared libraries: libstdc++.so.6: cannot open shared object file: No such file or directory
(4)再用aptitude方式安装lib32stdc++6-4.8-dbg
sudo aptitude install lib32stdc++6-4.8-dbg
再次测试arm-xxx-gcc -v,终于可以运行了。

最后还是编译出错,名字不对,其实海思跟sdk一起给我们写了一个现成的交叉编译工具链的脚步,我们只需要去执行即可生成对应的链接文件,注意我们将生成的路径加入PATH环境变量即可,

又确实mkinit执行文件,因为uboot生成需要,
/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/uboot/u-boot-2010.06/tools$ sudo cp mkimage /usr/local/bin/ 复制到PATH包含路径下即可执行

如果一些操作需要单独被操作,则最好参考makefile文件当初整体是怎么编译的,从而不会出错,提高效率。

2.4、mmp部署
mmp就是海思封装在sdk里面的一些ko文件、以及lib库文件和.h文件。目的就是为了支持后面应用开发编解码使用的API的。
ko文件;就是海思那边提前编译好的模块,提供出来之后我们可以直接使用。ko文件其实就是封装起来的驱动,这些模块几乎都是直接操作硬件的,再提供lib库文件,我们就直接调用库文件里面的API。
如hi3518E_h264e.ko 就是与h.264编码相关的 encode
hi3518e_chnl.ko 管道相关的
hi3518e_isp.ko ISP图像调试相关的

sample;示例代码,就是使用lib库结合ok模块来完成一个简单的应用,给我们仿照看的。

配置部署mmp
1)关键文件;./ko/load3518e 是一个sh脚本 管理ko模块的安装卸载
并识别传入的snseron摄像头传感器,根据不同硬件有所不同操作。
./load3518e -i -sensor ar0130 -osmem 32 -total 64 查看load3518e脚本设置。

2)sample编译测试
使用前要注意查看readme和makefile文件,不捉急动手
海思项目学习记录 -1

上一篇:海思看门狗 HI3516 看门狗使用


下一篇:不将文件打开进行编辑(echo)