海思sdk快速上手

news/2024/10/23 7:27:09/

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.ppmy.cn/news/100771.html

相关文章

公务员等级划分

您好部级干部:指国家行政机关中最高级别的干部,他们一般负责全国性的职务,一般由国务院任命,担任全国最高政府机构的领导职务。厅级干部:指国家行政机关中级别较高的干部,他们一般负责省级的职务&#xff0…

Vue实现二维码,让你的数据轻松传递

前言 在我们生活中,二维码的应用越来越广泛,特别是在移动互联网的时代,二维码成为了快速传达信息的一种利器。在这篇文章中,我们将会介绍如何在Vue框架下,实现一个具备扫描和查看数据的二维码。 在这一篇文章中&…

45°装备系统

45装备系统,规则:1、45 脚后剧情,场景地面出现,个体视角,非群体。2、产生寒暖对立,衣饰自动改变。3、地图下方块蛇,脚步顺逆差,让衣饰自动改变后出现形态特效。(形成进入…

山东理工大学第十五届ACM程序设计竞赛 R - Zyn的超能力

Description Zyn 需要能量提高自己的超能力,有两种能量存在:超级能量和小能量。对于超级能量,Zyn 绝对不可以错过,而且努力的 Zyn 希望得到更多的小能量。 但是 Zyn 每天最多可以获得 k 次能量,而且每个能量都会在第…

【SpringCloud组件——GateWay】

前言: 在我们之前所用的Nacos和Feign以及Eureka,这些组件都是用与系统内部之间进行互相访问的,但是当用户访问系统时,我们没有采取任何措施,举个例子:系统管理员可以访问哪些接口并具备哪些操作权限&#…

【网络编程】一文详解http协议(超文本传输协议)

目录 一、http协议 1、http协议的介绍 2、URL的组成 3、urlencode和urldecode 二、http的请求方法、状态码及状态码描述、常见的响应报头 1、http请求方法 2、http状态码及状态码描述 3、http常见的响应报头 三、http协议客户端和服务器的通信过程 1、如何保证请求和…

在Node.js中接受来自命令行的输入

目录 1、简介 2、readlineSync 3、列表选择一个项目: 4、类似滑块范围的UI: 1、简介 如何制作一个Node.js CLI程序使用内置的readline Node.js模块进行交互 如何制作一个节点js CLI程序交互? Node.js 从版本7起开始提供了readline模块来执行以下操…

研究人员发现新的 ICS 恶意软件工具包旨在导致电力中断

在过去几年中,国家支持的攻击者一直在提高攻击电网等关键基础设施以造成严重破坏的能力。 这个武器库的新成员是一个恶意软件工具包,它似乎是由一家俄罗斯网络安全公司为红队演习开发的。 该恶意软件被 Mandiant 的研究人员称为 COSMICENERGY&#xff…