海思sdk快速上手

news2025/1/23 13:44:47

mpp:视频H.264的编码压缩

1.看linux、uboot的文档

2.移植SDK到ubuntu

        2.1、三个脚本

        source sdk.unpack解压

        2.2、osdrv/Makefile和readme

        make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all报错

        参考:ubuntu16.04 编译错误: /bin/sh: 1: pushd: not found的问题和安装32位交叉编译工具链的兼容包_Lewin~的博客-CSDN博客

        2.3、解决 没有符号链接 的问题

        cd ~/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/toolchain/arm-hisiv300-linux

        sudo ./cross.install.v300

        sudo vi ~/.bashrc

        export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/target/bin:$PATH

        source ~/.bashrc

        make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all

        2.4、解决 生成uImage错误 的问题

        cd ~/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/opensource/uboot/u-boot-2010.06/tools

        sudo cp mkimage /usr/local/bin

        2.5、解决 找不到zlib.h 的问题

e39ce1ba8c68416c9db0972782a8aef9.png

错误:compr_zlib.c:39:18: fatal error: zlib.h: No such file or directory

因为找不到zlib.h所以编译错误,zlib.h在tools/pc/zlib/tmp/include目录中有,只需要复制到tools/pc/jffs2_tool/tmp/include目录中即可。注意同时要将zconf.h也复制过去的。还有,要将tools/pc/zlib/tmp/lib目录下的libz.a libz.so libz.so.1 libz.so.1.2.7等4个文件复制到tools/pc/jffs2_tool/tmp/lib目录下,不然一会儿还得报错。

2.6、解决serve_image.c:32:18: error: storage size of ‘hints’ isn’t known问题

e41b9dbe7f9c4f7a914828f1f3665595.png

解决方案,参考:andorid编译报错serve_image.c:32:18: error: storage size of ‘hints’ isn’t known_Nate的博客-CSDN博客 方法2

2.7、重新编译make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all得到uboot、kernel、rootfs

46e3af15c9d84131b8e9d781be9535dc.png

2.8、复制到 /tftpboot目录下

1b8ade138f3b4f0a91d0da8904c1bcd3.png

3.烧录系统->通过主芯片提供的isp下载的机制来间接烧录板载flash。

cb7740cbdc62464eb3ccda546d931114.png

        3.1、安装jdk环境

        3.2、运行Hi_tool来给空板烧录uboot

d94cfcfa186547a59277ae7f38c109c3.png

        3.3、烧录uboot成功后,运行Securt CRT进入uboot命令行底下

        执行以下命令,使用tftp的方式烧录kernel、rootfs

                tftp更新并重新烧写uboot的命令序列:(由于已经烧录uboot,这步不需要)

                        mw.b 0x82000000 ff 0x100000

                        tftp 0x82000000 u-boot-hi3518ev200.bin

                        sf probe 0

                        sf erase 0x0 0x100000

                        sf write 0x82000000 0x0 0x100000

                tftp更新并重新烧写kernel的命令序列:

                        mw.b 0x82000000 ff 0x300000

                        tftp 0x82000000 uImage_hi3518ev200

                        sf probe 0

                        sf erase 0x100000 0x300000

                        sf write 0x82000000 0x100000 0x300000

                tftp更新并重新烧写rootfs的命令序列:

                        mw.b 0x82000000 ff 0xc00000

                        tftp 0x82000000 rootfs_hi3518ev200_64k.jffs2

                        sf probe 0

                        sf erase 0x400000 0xc00000

                        sf write 0x82000000 0x400000 0xc00000

        3.4、设置正确的环境变量

        正确的ipaddr和serverip对应的设置命令:

                set ipaddr 192.168.1.10

                set serverip 192.168.1.141

        正确的bootcmd和bootargs对应的设置命令:

                set bootcmd 'sf probe 0;sf read 0x82000000 0x100000 0x300000;bootm 0x82000000'

                set bootargs mem=32M console=ttyAMA0,115200 root=/dev/mtdblock2 rootfstype=jffs2 mtdparts=hi_sfc:1024K(boot),3072K(kernel),12288K(rootfs)

        3.5、save保存然后reset重启

020129ebae654fd4b7cb7b0659d70002.png

4.部署mpp中的ko文件和lib库

ko/中是视频编码相关的模块

之后会用这个文件装载模块Hi3518E_SDK_V1.0.3.0\package\mpp\ko\load3518e

执行命令是:./load3518e -i -sensor ar0130 -osmem 32 -total 64

lib/中是海思提供的一些动态库和静态库

这里使用动态库,所以之后会删除所有静态库 rm *.a

        4.1、开发板这边 启用网卡 并 挂载到主机Ubuntu

        ifconfig lo 127.0.0.1

        ifconfig eth0 192.168.1.10

        mount -t nfs -o nolock 192.168.1.141:/home/aston/rootfs /mnt

        4.2、主机这边 将mpp目录下的ko、lib目录复制到/home/aston/rootfs

de2a898fad464910a519bf2835e24008.png

        4.3、开发板这边 复制/mnt下的ko目录到/目录

        cd /mnt

        cp ko / -rf

        4.4、开发板这边 复制/mnt/lib下的所有文件到/usr/lib

        cd /mnt

        cp lib/* /usr/lib -r

至此ko文件和lib库文件都已部署完毕,接下来只需要装载ko模块就行了。。。

        但是之后要是重启的话,进入命令行下还是没有网络并且还是没有挂载到主机

                解决方法是修改/etc/profile文件

                在/etc/profile文件中启用网卡、设置ip、装载模块、挂载到主机。。。

        4.4、修改开发板中的/etc/profile文件

e44d9a0edab44eb381a59432fbbc0451.png

                mount -t nfs -o nolock 192.168.1.141:/home/aston/rootfs /mnt

                -t nfs:挂载的文件格式

                -o nolock:非锁定方式

        4.5、reset重启

5.sample的编译和测试

sample的编译详见Hi3518E_SDK_V1.0.3.0\package\mpp\sample\readme

这里只使用sample的venc(录像)功能

        5.1、进入venc目录编译得到sample_venc

f02f3d2daebe469ebecab2eb9c8e4a0b.png

        5.2、拷贝到~/rootfs目录下

fca09128e79345c2852866d91456fcfe.png

        5.3、在开发板中运行sample_venc

92b7e428829b4d96a7cef1f0d020c57b.png

        5.4、发现多了三个streamxxx.h264文件,拷贝到共享文件夹中使用VLC进行视频观看

a04620dc876e41fda5b77438f646301d.png

3aba1db13a154d7aa57e332469fcae2e.png

        5.5、进入到~/sambashare/Hi3518E_SDK_V1.0.3.0/osdrv/pub目录下,开始制作镜像,将之前的操作在这个文件夹形式的根文件系统中再做一遍

69282b57a8f9489db23e6eda41cdde7c.png

abc87e9fe7344e0c9cf1f44034fab1d1.png

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/582022.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

《写作脑科学:如何用脑科学改善写作能力》

《写作脑科学:如何用脑科学改善写作能力》 前言引言概述评价结论 🏘️🏘️个人简介:以山河作礼。 🎖️🎖️:Python领域新星创作者,CSDN实力新星认证,阿里云社区专家博主 前言 &…

【C++】23.C++的IO流(补)

1.C标准IO流 C标准库提供了4个全局流对象cin、cout、cerr、clog,使用cout进行标准输出,即数据 从内存流向控制台(显示器)。使用cin进行标准输入即数据通过键盘输入到程序中,同时C 标准库还提供了cerr用来进行标准错误的输出,以…

chatgpt赋能python:Python中OP怎么用

Python中OP怎么用 Python是一种高级编程语言,可用于快速开发网站、桌面应用程序、网络爬虫和数据科学等各种领域。Python作为一种功能强大的编程语言,其操作符(OP)是一个必须学习的基本知识点。本文将介绍Python中OP的使用方法。…

DataTables表格库(一)

目录 1、零配置使用 1.2、代码 1.3、步骤 1.4、效果 2、禁用分页,排序等功能的配置 2.1、说明 2.2、代码 2.3、效果 3、默认排序配置 3.1、说明 3.2、代码 3.3、效果 4、多列排序 4.1、说明 4.2、代码示例 4.3、效果 5、多个表格 5.1、说明 5.2、…

【源码解析】SpringBoot使用DeferredResult实现长轮询的原理分析

使用背景 在Nacos配置更新和Apollo的配置更新,我们可以看到长轮询(长连接)的身影。长连接的实现可以节约系统资源,长连接可以在连接建立后持续通信,避免频繁地建立和断开连接,减少系统开销。使用长连接可以…

LAMP的运用

LAMP的运用 一、LAMP二、编译安装apache http服务三、编译安装mysqld服务四、编译安装PHP解析环境五、安装论坛 一、LAMP LAMP架构是目前成熟的企业网站应用模式之一,指的是协同工作的一整套系统和相关软件,能够提供动态Web站点服务及其应用开发环境。L…

《痞子衡嵌入式半月刊》 第 77 期

痞子衡嵌入式半月刊: 第 77 期 这里分享嵌入式领域有用有趣的项目/工具以及一些热点新闻,农历年分二十四节气,希望在每个交节之日准时发布一期。 本期刊是开源项目(GitHub: JayHeng/pzh-mcu-bi-weekly),欢迎提交 issue&#xff0c…

【JavaSE】Java基础语法(二十八):HashSet集合

文章目录 1. HashSet集合概述和特点2. HashSet集合的基本应用3. 哈希值4. HashSet集合存储学生对象并遍历【应用】 1. HashSet集合概述和特点 底层数据结构是哈希表存取无序不可以存储重复元素没有索引,不能使用普通for循环遍历 2. HashSet集合的基本应用 存储字符串并遍历 …

Pytorch深度学习之神经网络入门详解

目录 Pytorch 入门 1.将每个图片的label作为txt文件写入另外一个文件夹(txt文件名与图片文件名相同) 2.tensorboard的summary writer 3.torchvision中的transforms 4.DataLoader 5.神经网络-卷积层Conv2d 6.最大池化层 7.非线性激活函数Relu 9.…

微信的大动作,很多人要颤抖了

4月25日,微信团队发布关于微信公众号营销内容合规规范通知,要求公众号在投放商业广告时需要标注广告字样。 刚开始觉得也没啥,无非就是加个广告的字样,让消费者可以及时识别出来, 但从效果来看,似乎效果并不…

华为OD机试真题B卷 Java 实现【猜密码】

一、题目描述 小杨申请了一个保密柜,但是他忘记了密码。只记得密码都是数字,而且所有数字都是不重复的。 请你根据他记住的数字范围和密码的最小数字数量,帮他算下有哪些可能的组合,规则如下: 输出的组合都是从可选的数字范围中选取的,且不能重复;输出的密码数字要按照…

意外的坚持,意外的收获!

前言: 转眼间,2023就快过了一半,回忆间感觉跟过完年没多久一样;时间是真的过的快...... 简单总结一下最近: 一、锻炼身体: 最近这段时间开始恢复锻炼身体,现在感觉一天下班回来,身体…

Java 21 新特性和改进

Java 21 是 Java 17 之后的下一个 LTS 版本。虚拟线程在 Java 21 中将成为正式功能。可以预期的是,Java 21 会成为一个很流行的 Java 版本。 Java 21 将在 2023 年 9 月 19 日发布。目前 Java 21 包含的内容已经基本确定了。下面来梳理一下 Java 21 中会包含的内容。…

【AI提示】ChatGPT提示工程课程(吴恩达OpenAI)转换文本(中文chatgpt版)

设置 翻译 通用翻译器 语调变换 格式转换 拼写检查/语法检查。 转换 在本笔记中,我们将探索如何使用大型语言模型进行文本转换任务,例如语言翻译、拼写和语法检查、语气调整和格式转换。 设置 import openai import osfrom dotenv import load_dotenv, f…

Maven初级

Maven初级 Maven简介 传统项目管理状态分析 jar包不统一,jar包不兼容工程升级维护过程操作繁琐 Maven是什么 Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)POM:项目对象模型 Ma…

一图看懂 itsdangerous 模块:将受信任的数据传递到不受信任的环境的帮助工具,资料整理+笔记(大全)

本文由 大侠(AhcaoZhu)原创,转载请声明。 链接: https://blog.csdn.net/Ahcao2008 一图看懂 itsdangerous 模块:将受信任的数据传递到不受信任的环境的帮助工具,资料整理笔记(大全) 🧊摘要🧊模块…

Ae:跟踪摄像机

在时间轴面板上选择要跟踪的素材图层,在跟踪器面板中单击跟踪摄像机 Track Camera按钮之后,会向素材图层添加“3D 摄像机跟踪器” 3D Camera Tracker效果,并立即对视频画面逐帧分析以反求原始摄像机运动。 还有其它几种添加 3D 摄像机跟踪器效…

GeForce RTX 3060 Ti+cuda 11.6+Anaconda3搭建Pytorch深度学习环境

室友新购入一个笔记本,笔记本的显卡是GeForce RTX 3060 Ti,记录一下使用GeForce RTX 3060 Ticuda 11.6Anaconda3搭建Pytorch深度学习环境。 安装很简单,当你有了Python环境时记住一个核心命令即可,显卡驱动因该在之前已经安装过了…

ChatGPT 与我合力开发 xargin blog archive 插件:曹大博客的新奇探险

之前写的批量删除 chatGPT 对话的插件[1],最近我收到了一个五星好评: 虽然不赚钱,交个朋友嘛,还是挺高兴的。而且借助 chatGPT,我是在与全世界的用户交流,想想就激动。 最近我发现自己让 chatGPT 帮忙写前端…

jQuery其他方法及插件使用

1. 拷贝对象 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta http-equiv"X-UA-Compatible" content"IEedge"><meta name"viewport" content"widthdevice-width,…