Hi3519v101开发环境搭建

海思的文档其实挺详尽的,但是跟着走还是没有一次就成功,所以还是稍稍记录一下自己的步骤。

安装SDK
  • 解压SDK压缩包:tar -zxf Hi3159V101_SDK_V2.0.5.0.tgz

  • 进入解压后的文件夹:cd Hi3519V101_SDK_V2.0.5.0/

  • 给安装文件添加可执行权限:chmod 777 ./sdk.unpack

  • 安装SDK:这里需要注意,不同的Shell使用的指令不一样,使用ls -l /bin/sh来查看当前使用的Shell类型,如果是dash,执行source sdk.unpack进行安装,如果是bash,则跟文档一样,执行./sdk.unpack

    dash --> bash

    为了跟文档上的操作一致,可以将系统默认Shell更改为bash,执行sudo dpkg-reconfigure dash,在弹出的对话框里选择【否】,然后再执行ls -l /bin/sh查看是否真的切换成功。

安装交叉编译器

海思提供了两种交叉编译工具链,基于uclibc的arm-hisiv500-linux和基于glibc的arm-hisiv600-linux。两者的详细区别可以看一下Glibc_vs_uClibc_Differences.txt,简单的就看下面吧:

  • Glibc
    glibc = GNU C Library
    是GNU项目(GNU Project),所实现的 C语言标准库(C standard library)。
    目前,常见的桌面和服务器中的GNU/Linux类的系统中,都是用的这套C语言标准库。
    其实现了常见的C库的函数,支持很多种系统平台,功能很全,但是也相对比较臃肿和庞大。
  • uClibc
    一个小型的C语言标准库,主要用于嵌入式。
    其最开始设计用于uClinux(注:uClinux不支持MMU),因此比较适用于微处理器中。
    对应的,此处的u意思是μ,Micro,微小的意思。
    uClibc的特点:
    • 1、uClibc比glibc要小很多。
    • 2、uClibc是独立的,为了应用于嵌入式系统中,完全重新实现出来的。和glibc在源码结构和二进制上,都不兼容。

这里我选择arm-hisiv600-linux,安装很简单:

  • 解压工具链:执行tar -xvf arm-hisiv600-linux.tgz进行解压;(《Hi3519V101/Hi3516AV200 Linux 开发环境用户指南.pdf》文档上说工具链及其安装程序位于 osdrv/toolchain/arm-hisiXXX-linux/ 目录下,是错误的。实际上Hi3519V101_SDK_V2.0.5.0.tgz与arm-hisiv600-linux.tgz是分开的。)
  • 进入解压后的文件夹:cd arm-hisiv600-linux/
  • 给安装文件添加可执行权限:chmod +x arm-hisiv600-linux.install
  • 安装工具链:sudo ./arm-hisiv600-linux.install
  • 安装完成在最后会有提示export path /opt/hisi-linux/x86-arm/arm-hisiv600-linux/target/bin,因此需要使更改的环境变量生效source /etc/profile
  • 验证工具链是否可以正常使用:arm-hisiv600-linux-gcc -v,成功的话会有下面的提示:
Using built-in specs.
COLLECT_GCC=arm-hisiv600-linux-gcc
COLLECT_LTO_WRAPPER=/opt/hisi-linux/x86-arm/arm-hisiv600-linux/bin/../libexec/gcc/arm-hisiv600-linux-gnueabi/4.9.4/lto-wrapper
Target: arm-hisiv600-linux-gnueabi
Configured with: ../gcc-linaro-4.9-2015.06/configure --host=x86_64-linux-gnu --build=x86_64-linux-gnu --target=arm-hisiv600-linux-gnueabi --prefix=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/arm-hisiv600-linux --enable-threads --disable-libmudflap --disable-libssp --disable-libstdcxx-pch --with-arch=armv5te --with-gnu-as --with-gnu-ld --enable-languages=c,c++ --enable-shared --enable-lto --enable-symvers=gnu --enable-__cxa_atexit --enable-nls --enable-clocale=gnu --enable-extra-hisi-multilibs --with-sysroot=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/arm-hisiv600-linux/target --with-build-sysroot=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/arm-hisiv600-linux/target --with-gmp=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-mpfr=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-mpc=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-ppl=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-cloog=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-libelf=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --enable-libgomp --disable-libitm --enable-poison-system-directories --with-libelf=/home/sying/toolchain_ljhui/gcc4_9/arm-hisiv600-linux/gcc-glibc/install/host_lib --with-pkgversion=Hisilicon_v600_20180630 --with-bugurl=http://www.hisilicon.com/cn/service/claim.html
Thread model: posix
gcc version 4.9.4 20150629 (prerelease) (Hisilicon_v600_20180630)

验证环境是否搭建完成

进入osdrv目录,执行make OSDRV_CROSS=arm-hisiv600-linux CHIP=hi3519v101 FLASH_TYPE=spi all编译整个osdrv目录,编译成功,则环境已经搭建完成。
1、提示下面这个错误,需要安装libncurses5:sudo apt-get install libncurses5-dev

scripts/kconfig/lxdialog/dialog.h:38:20: fatal error: curses.h: No such file or directory

2、提示 fatal error: zlib.h: No such file or directory需要安装zilib:sudo apt-get install zlib1g-dev

你可能感兴趣的:(Hi3519v101开发环境搭建)