海思项目学习记录 -1、HI3518E的sdk编译部署
发布日期:2021-06-29 11:09:20
浏览次数:2
分类:技术文章
本文共 2059 字,大约阅读时间需要 6 分钟。
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文件,不捉急动手转载地址:https://blog.csdn.net/zw1996/article/details/114213480 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
关注你微信了!
[***.104.42.241]2024年04月22日 13时17分18秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
php如何将base64数据流文件转换为图片文件?
2019-04-29
JavaScript 的addEventListener() 事件监听详解!
2019-04-29
JavaScript的DOMContentLoaded事件和load的区别?
2019-04-29
PHP+JavaScript实现图片预览上传功能开发!
2019-04-29
JSONView - Chrome插件安装详解!(谷歌浏览器插件)!
2019-04-29
上传图片到阿里云OSS和获取上传图片的url的详解 !
2019-04-29
webstorm 和 phpstorm 有什么区别呢?做 WEB 开发用哪个好?
2019-04-29
常见位运算
2019-04-29
武大学生用python敲出樱花开放 | 附源码
2019-04-29
【中文教程】简单粗暴入门TensorFlow 2.0 | 北大学霸出品
2019-04-29
经典面试题:如何保证缓存与数据库的双写一致性?
2019-04-29
一份来自亚马逊工程师的Google面试指南,GitHub收获9.8万星,已翻译成中文
2019-04-29
硬货 | Redis 性能问题分析
2019-04-29
Kafka为什么这么快?
2019-04-29
灵魂四连问:API 接口应该如何设计?如何保证安全?如何签名?如何防重?
2019-04-29
一个依赖搞定 Spring Boot 反爬虫,防止接口盗刷!
2019-04-29
酸爽!IDEA 中这么玩 MyBatis,让编码速度飞起!
2019-04-29
已拿 Offer!字节跳动面试经验分享
2019-04-29
Windows路由表透析
2019-04-29
Java LockSupport 实战
2019-04-29