海思sdk快速上手

您所在的位置:网站首页 海思平台开发sdk 海思sdk快速上手

海思sdk快速上手

2023-06-06 18:25| 来源: 网络整理| 查看: 265

mpp: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



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3