700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 【交叉编译】海思平台和安霸平台交叉编译

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

时间:2020-04-30 13:41:19

相关推荐

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

海思平台

板端编译首先需要配置系统的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.installsource /etc/profile ### 安装交叉编译器的脚本配置的环境变量生效

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

sudo apt-get install lib32z1sudo 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/localsudo unzip arm-elf-4.5.2.zipcd arm-elf-4.5.2sudo tar jxvf arm-elf-64.tar.bz2 # (根据宿主机选择是32还是64)# 然后解压toolchain:cd /usr/localsudo tar xvJf linaro-armv7ahf-.11-gcc5.2-x86_64.tar.xz

然后增加环境变量:

sudo gedit /etc/profile

在最后一行增加

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

然后 终端执行:

source /etc/profile然后在同一个终端内输入arm然后按TAB看能否显示

,然后注销系统,使环境变量永久生效。

优化指令:

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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。