【交叉编译】海思平台和安霸平台交叉编译

海思平台

板端编译首先需要配置系统的NFS,挂载NFS服务器;然后安装ubuntu下的交叉编译环境(3516A和3518为例);登录板端;板端编译(需要修改相关的makefile文件);板端运行;

一 NFS配置

1 下载相关软件

sudo apt-get install nfs-kernel-server  # 安装nfs服务端
sudo apt-get install nfs-common         #  安装nfs客户端

2 建立共享目录

sudo mkdir /nfsshare        # 设置共享目录,尽量不要设置的太长
sudo chmod 777 /nfsshare    # 更改目录的使用权限

3 修改该配置文件

sudo gedit /etc/exports

在里面加入

/nfsshare *(rw,sync,no_root_squash)
### *代表允许所有的网络段访问
### rw是可读写权限
### sync是资料同步写入内存和硬盘
### no_root_squash是NFS客户端分享目录使用者的权限,如果客户端使用的是root用户,### 那么对于该共享目录而言,该客户端就具有root权限
### 最后重新扫描配置文件,使用户修改/etc/exports配置文件不必重启NFS服务
sudo exportfs -ra

4 重启服务

sudo /etc/init.d/nfs-kernel-server restart
[OK ] Restarting nfs-kernel-server.......  # 正常

5 测试服务器

showmount -e    # 查看服务目录和权限

6 测试客户端

touch /nfsshare/testfile      # 在/nfsboot里新建文件,主要是作测使用
# 在其他分区挂载nfs文件系统,记得该目录要先存在才行
sudo mount 192.168.0.10:/nfsshare   /mnt  
# 192.168.0.10为本机的IP地址,可通过ifconfig查询。
#  查看一下,出现testfile,正常
ls /mnt
sudo  umount  192.168.0.10:/nfsshare  /mnt     # 解除mount,注意用的时候用相对路径

二 安装ubuntu下的交叉编译环境

1 下载或拷贝安装包

下载SDK包"Hi3518C_V100R001C01SPC081"
下载SDK包"Hi3516A V100R001C01SPC050"
解压缩该文件得到一个目录

2 展开SDK包内容

返回Hi3516A…目录,运行

# 更改 sdk.unpack里的第一行 (在运行不可用时,bin/sh ---> bin/bash)
sudo ./sdk.unpack   

3 安装交叉编译器

安装uclibc交叉编译器,(注意,需要有sudo权限或者root权限):
进入Hi3516A_SDK_Vx.x.x.x/osdrv/opensource/toolchain/arm-hisiv300-linux目录,

sudo chmod +x cross.install 
sudo ./cross.install
source /etc/profile   ### 安装交叉编译器的脚本配置的环境变量生效

由于ubuntu16.04是64位的 交叉编译工具为32位的,还需要安装两个库:

sudo apt-get install lib32z1
sudo apt-get install lib32stdc++6

三 板端交叉编译

准备程序,可以在ubuntu或者其他linux系统上能编译和运行的源码;

1 挂载目录

在/etc/exports里写入 /home/usrname 192.168.0.0/24(rw) # 需要挂载的目录

sudo ufw disable ### 关闭防火墙,可以在板端对服务器访问
sudo /etc/init.d/nfs-kernel-server restart ### 重启NFS服务
telnet 192.168.0.228 ### 远程登录到板端

输入用户名和密码

root/nvsS3 ### xx相机的用户名和密码

mount -t nfs -o nolock,rsize=1024 (nfs服务器IP):(服务器共享路径) (板子路径) ### 板子上运行
如:
mount -t nfs -o nolock,rsize=1024 192.168.0.129:/home/usrname /mnt/usrname

2 交叉编译

进入到应用程序目录,修改makefile的编译器为

CC = arm-hisiv300-linux-gcc # 3516

Make 应用程序,生成静态库

在ubuntu上将程序拷贝到3516A/mpp/sample目录下,通过cd 进入到sample下的路径

海思开发板上的重要优化选项,加上,至少可以提速20%

-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4

安霸平台

nfs配置(跟海思系列一致)

安装

主要是交叉编译链安装不太一致。

将S2L两个压缩文件分别拷贝到/usr/local/下:

在S2L目录下

sudo cp filename /usr/local/
cd  /usr/local
sudo unzip arm-elf-4.5.2.zip
cd arm-elf-4.5.2
sudo tar jxvf arm-elf-64.tar.bz2 # (根据宿主机选择是32还是64)

# 然后解压toolchain:
cd /usr/local
sudo tar xvJf linaro-armv7ahf-2015.11-gcc5.2-x86_64.tar.xz

然后增加环境变量:

sudo gedit /etc/profile

在最后一行增加

export PATH="/usr/local/linaro-armv7ahf-2015.11-gcc5.2/bin:$PATH"

然后 终端执行:

source /etc/profile 然后在同一个终端内输入arm然后按TAB看能否显示
,然后注销系统,使环境变量永久生效。

优化指令:

CFLAGS = -O3 -mcpu=cortex-a9 -fPIC

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

黄金旺铺

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值