海思AI芯片(Hi35XX): 搭建linux环境(Ubuntu18.0.4)

此篇搭建环境的Linux平台为ubuntu18.0.4 64位系统,SDK的目标平台为Hi3516DV300\CV500系列。
准备工作
arm-himix200-linux 、 Hi3519AV100_SDK_V2.0.1.0
打包下载网址:
搭建工作
安装交叉编译链。

  1. Linux 上安装arm-himix200-linux 交叉编译器
    1)将Windows下arm-himix200-linux.rar包拷贝到ubuntu下。根据readMe进行安装。命令如下:
    a. tar –xzf arm-himix200-linux.tgz
    b. cd arm-himix200-linux
    b. sudo ./arm-himix200-linux.install
    c. source /etc/profile
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    或者:
    安装在/文档/his_linux/x86-arm, 直接source ./arm-himix200-linux.install ./x86-arm会产生写不进的情况;
    首先 sudo -s # 获取root权限,
    然后 source ./arm-himix200-linux.install ./x86-arm
    最后 source /etc/profile # 使环境变量生效

  2. 检查arm-himix200-linux是否安装成功:
    在命令行输入:arm-himix200-linux-gcc -v
    如果报错如图所示:
    在这里插入图片描述
    首先检查一下安装的目录(opt/hisi-linux/x86-arm-himix200-linux/bin)下是否有arm-himix200-linux-gcc。如果存在此文件,就有可能是环境变量未配置,先在终端输入一个 source /etc/profile。再检查是否安装成功,输入:arm-himix200-linux-gcc -v,若如图所示,则代表安装成功。如还是报错,如下图所示,
    问题分析:
    原因就在于宿主机ubuntu是64位,而交叉编译环境是32位,没有安装lib32z1-dev库
    在这里插入图片描述
    解决方法:
    sudo apt install lib32z1-dev
    如果缺少这个库,在交叉编译opencv4也会报错,所以在这里安装一下。
    再次输入命令:a–c的命令
    再次检查一下:
    在普通用户下:
    在这里插入图片描述
    在root用户下:
    在这里插入图片描述
    结果提示:
    在这里插入图片描述
    完美结束!!!!!!

  3. 交叉编译环境成功了完成,下面开始编译sample
    make nnie目录下的Makefile文件
    D:\software\HISI3519ASoftwareEn\Hi3519AV100R001C02SPC010\01.software\board\Hi3519AV100_SDK_V2.0.1.0\package\mpp_smp_linux\sample\svp\nnie make
    报错如图所示,按提示命令安装make/make-guile:
    在这里插入图片描述
    在这里插入图片描述
    若报如图所示错误:
    在这里插入图片描述
    将lib.tar解压在opensource\Hi3516CV500R001C02SPC010\01.software\board\Hi3516CV500_SDK_V2.0.1.0\package\mpp文件下.
    再重新编译:
    smf@ubuntu:~\opensource\Hi3516CV500R001C02SPC010\01.software\board\Hi3519AV100_SDK_V2.0.1.0\package\mpp_smp_linux\sample\svp\nnie$ make clean
    smf@ubuntu:~\opensource\Hi3516CV500R001C02SPC010\01.software\board\Hi3519AV100_SDK_V2.0.1.0\package\mpp_smp_linux\sample\svp\nnie$ make
    在这里插入图片描述
    根据提示缺少头文件,将头文件include.tar拷贝到错误提示的位置,并解压缩:sample/common下
    再重新编译:
    smf@ubuntu:~\opensource\Hi3516CV500R001C02SPC010\01.software\board\Hi3519AV100_SDK_V2.0.1.0\package\mpp_smp_linux\sample\svp\nnie$ make clean
    smf@ubuntu:~\opensource\Hi3516CV500R001C02SPC010\01.software\board\Hi3519AV100_SDK_V2.0.1.0\package\mpp_smp_linux\sample\svp\nnie$ make
    这次应该能编译通过了。
    在这里插入图片描述
    问题总结:
    问题1:/bin/sh: 1: Syntax error: “(” unexpected
    在这里插入图片描述
    解决办法:
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    问题1就可以解决了。
    问题2:collect2: error: ld returned 1 exit status
    在这里插入图片描述
    检查makefile文件
    原因在于:我复制了sample_nnie.c文件,所以sample文件下有两个sample_nnie.c和sample_nnie(copy).c,导致编译出现问题,所以删除复制的。C文件就可以解决上面的问题。

猜你喜欢

转载自blog.csdn.net/SMF0504/article/details/105307018