海思3518eSDK的整体介绍1(编译SDK)

环境介绍:

主机:windows 7
虚拟机:ubuntu 14.04.01
Hi3518E资料包:Hi3518E_V200R001C01SPC030.rar
SDK包:Hi3518E_SDK_V1.0.3.0.tgz

1、文件介绍

解压 Hi3518E_V200R001C01SPC030.rar 得Hi3518E_V200R001C01SPC030文件。
在这里插入图片描述
其中hardware是硬件相关的资料,software是软件相关的。我们关注的是software文件夹。
在01.software\board\document_cn目录里存放的是一些开发文档。
在这里插入图片描述
01.software\board\Hi3518E_SDK_V1.0.3.0.tgz是Hi3518e的SDK。
在这里插入图片描述

2、编译osdrv

2.1 通过共享文件夹, 将Hi3518E SDK复制到虚拟机里的文件夹里, 并解压
解压命令:tar -zxvf Hi3518E_SDK_V1.0.3.0.tgz
进入到Hi3518E_SDK_V1.0.3.0,先 source sdk.cleanup 然后source sdk.unpack, 解压缩package文件夹里的压缩包。得到drv、mpp、osdrv文件。
在这里插入图片描述
2.2 安装交叉编译工具链
步骤1.进入工具链及其安装程序的目录位置:
cd osdrv/opensource/toolchain/arm-hisiv300-linux
步骤2.解压工具链。tar -xvf arm-hisiv300-linux.tar.bz2
步骤3.安装工具链。sudo ./cross.install.v300
步骤4.使得工具链生效: source /etc/profile
步骤5.vim ~/.bashrc,然后在末行添加上面的环境变量导入语句命令export PATH=/opt/hisi-linux/x86-arm/arm-hisiv300-linux/bin:$PATH
2.3 修改系统默认shell为bash(否则会出现错误:pushd/popd: not found,意思是不能入栈压栈)
步骤1. which sh,结果是/bin/sh
步骤2. ls -l /bin/sh,结果sh指向dash
步骤3. sudo rm /bin/sh
步骤4. sudo ln -s /bin/bash /bin/sh
步骤5. ls -l /bin/sh,结果sh指向bash

2.4 编译遇到的各种错误,以及解决错误的方法
编译命令:make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all
/--------------------/
错误1:遇到mkyaff2image出错
/usr/bin/ld: i386:x86-64 architecture of input file `mkyaffs2image.o’ is incompatible with i386 output
make[2]:Leaving_directory /home/leaf/Hi3518E/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/mkyaffs2image/mkyaffs2image
问题原因是:有一些.o文件是64位系统上编译的,与32位系统不兼容。
解决:
步骤1:cd tools/pc/mkyaffs2image
步骤2:tar -xvf mkyaffs2image.tar.bz2
步骤3:rm -rf mkyaffs2image.tar.bz2
步骤4:cd mkyaffs2image/
步骤5:make clean
步骤6:tar -zcvf mkyaffs2image.tar.bz2 mkyaffs2image
(可以先解决上面的问题,然后再编译make OSDRV_CROSS=arm-hisiv300-linux CHIP=hi3518ev200 all)
/---------------------/
错误2:
“mkimage” command not found - U-Boot images will not be built
解决:
进入osdrv/opensource/uboot/u-boot 2010.06/tools: sudo cp mkimage /usr/local/bin/
/--------------------/

错误3:
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目录下,不然一会儿还得报错。
另一种解决:sudo apt-get install zlib1g-dev(推荐用这一种方法,因为还有别的地方用到zlib)
/--------------------/
错误4:
configure: error: ncurses or ncursesw selected, but library not found (–without-ncurses to disable)
解决:
sudo apt-get install libncurses5-dev libncursesw5-dev
/-----------------------/
错误5:
install: cannot stat ‘/home/leaf/Hi3518E/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/cramfs_tool/tmp/sbin/mkfs.cramfs’: No such file or directory
解决:
locate mkfs.cramfs ;
cp /sbin/mkfs.cramfs /home/leaf/Hi3518E/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/cramfs_tool/tmp/sbin/
找到的这个文件在/sbin目录下,直接复制过。
/----------------------------/
错误6:
checking for C++ compiler default output file name…
configure: error: C++ compiler cannot create executables
See `config.log’ for more details.

cp: cannot stat ‘/home/leaf/Hi3518E/Hi3518E_SDK_V1.0.3.0/osdrv/tools/pc/lzma_tool/lzma-4.32.7/src/lzma/lzma’: No such file or directory
解决:
sudo apt-get install build-essential
/-------------------------------/
错误7:
output_file.c:29:18: fatal error: zlib.h: No such file or directory
解决:
sudo apt-get install zlib1g-dev
/-------------------------------/
2.5 编译得到的结果
看到 finish osdrv work 则说明编译成功
编译好的文件会放在 osdrv/pub/image_uclibc目录下。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值