写在前面:
搭建海思Hi3518E_SDK开发环境分为1、2章,但是本章的第6节之后,走了点小弯路,但是还是留下来了
毕竟只是笔记而已,好好学习吧。
1、首先将Hi3518E_SDK_V1.0.3.0.tgz文件放入linux中,并解压。
2、这三个文件(脚本),了解一下,才能是如何编译海思的SDK
2.1、sdk.cleanup是用来清理编译的过的文件,make clean
2.2、sdk.unpack用来解压SDK的。
2.3、common文件中定义了很多函数。
3、修改过的代码记得要打包,要不然执行cleanup会将代码清除干净,然后从压缩包中又解压出来。
4、arm-hisiv300-linux 和 arm-hisiv400-linux。其中,arm-hisiv300-linux工具链对应uclibc库,arm-hisiv400-linux工具链对应glibc库。
uclibc库是精简版的,好处是比较小。
glibc库是gcc的标准库,很多功能都有,但是比较大。
5、具体命令如下
5.1、编译整个osdrv目录:
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 all
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 all
或者
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 all
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 all
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 all
5.2、清除整个osdrv目录的编译文件:
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 clean
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 clean
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 clean
或者
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 clean
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 clean
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 clean
5.3、彻底清除整个osdrv目录的编译文件,除清除编译文件外,还删除已编译好的镜像:
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3516cv200 distclean
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 distclean
make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev201 distclean
或者
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3516cv200 distclean
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev200 distclean
make OSDRV_CROSS=arm-hisiv400-linux CHIP=hi3518ev201 distclean
6、在Hi3518E_SDK_V1.0.3.0目录中,先执行./sdk.cleanup 清除当前目录里面的文件,在执行./sdk.unpack 解压开sdk里面的文件。这样以防里面残留文件影响我们的编译。
(弯路不做参考)6、安装一下交叉编译工具链,在SDK包里面有,通过查看makefile,我们可以得知,交叉编译工具链要安装在osdrv下。
接下来跳转到第二章的14点,先在/osdrv/opensource/toolchain/arm-hisiv300-linux下执行sudo ./cross.install.v300
7、执行make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all 会出现如下问题,百度之后可以得知的:pushd命令要在bash下才能使用,所以更改一下sh的链接地址即可。
执行命令:
which sh
which bash
sudo rm /bin/sh
sudo ln -s /bin/bash /bin/sh
ls /bin/sh -l
8、修改完成之后,执行相应的make指令,还是会出现错误,主要原因是我这里使用的是64位的ubuntu,所以要打32位的补丁才能正常使用。
在交叉编译工具链的文件夹中使用file命令,可以看出这个交叉编译工具链是32位的,而我们的ubuntu是64位的。
9、给ubuntu16.0403X64安装32位兼容包
(1)参考:
http://blog.csdn.net/ma57457/article/details/68923623
apt-get install lib32ncurses5
apt-get install lib32z1