海思平台
板端编译首先需要配置系统的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