ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

海思项目学习记录 -1

2021-02-28 22:00:15  阅读:239  来源: 互联网

标签:文件 记录 ko 学习 编译 aptitude 海思 视频


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文件,不捉急动手
在这里插入图片描述

标签:文件,记录,ko,学习,编译,aptitude,海思,视频
来源: https://blog.csdn.net/zw1996/article/details/114213480

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有