一、Ubuntu中安装arm-linux-gcc交叉编译器
在网上找了好多办法都没安装成功,网上大部分以及老师给的教程都是安装4.4.3版本的,我这边系统版本是64位的,但是安装之后4.4.3之后,即使安装了32位运行库,依旧报"not found"或”arm-linux-gcc不是可执行命令“。最后成功安装了64位的arm-linux-gcc交叉编译器。
步骤如下:
arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2
链接:https://pan.baidu.com/s/1iFrEWgjr16-IzELkguhVKQ?pwd=9asc
提取码:9asc
sudo tar -xjvf /tmp/arm-linux-gcc-4.6.4-arm-x86_64.tar.bz2 -C /
sudo mkdir /usr/local/arm
sudo chmod 777 /usr/local/arm
cd /
sudo cp -r opt/TuxamitoSoftToolchains/arm-arm1176jzfssf-linux-gnueabi/gcc-4.6.4 /usr/local/arm
(4)为了以后可以在任何位置使用该交叉编译器,打开/etc/profile配置环境变量和库变量,
sudo gedit /etc/profile
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
点击右上角的保存,然后关闭;
使用source命令加载生效该配置文件
source /etc/profile
export PATH=$PATH:/usr/local/arm/gcc-4.6.4/bin
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/arm/gcc-4.6.4/lib
保存后,关闭。
(6)检查是否安装成功
arm-linux-gcc -v
出现如上图提示,则证明安装成功。
(7)使用交叉编译工具验证;
在桌面上新建一个文件夹,里面存放c文件,在文件里编写hello.c文件
touch hello.c
直接双击该文件,进行编辑,
#include<stdio.h>
int main()
{
printf("Hello World\n");
return 0;
}
arm-linux-gcc hello.c -o Hello
使用执行命令;
./Hello
使用file Hello命令查看编译后的是不是arm的可执行文件;
file Hello
可以看到编译后的可执行文件是在32bit的arm架构上运行的。
二、安装配置网络文件系统NFS服务及目标机程序调试
(1)安装NFS
输入以下命令:
sudo apt-get update
sudo apt-get install portmap
sudo apt-get install nfs-kernel-server
sudo apt-get install nfs-common
如果出现以下问题,说明网络设置有问题,建议关机重启,或者将网络设置为自动。
sudo mkdir -p /mnt/ShareFolder
分配最高权限:
sudo chown nobody:nogroup /mnt/ShareFolder
sudo chmod -R 777 /mnt/ShareFolder/
(3)编辑exports配置文件
首先打开文件,然后在最后一行添加:
/mnt/ShareFolder *(rw,no_root_squash)
使用下面的命令使共享文件夹启用并生效;
sudo exportfs -arv
如果没有显示共享文件夹的路径,说明前面步骤有问题。
showmount -e
Ubuntu上重启NFS服务:
sudo /etc/init.d/nfs-kernel-server restart
(4)Xshell连接arm板
将pc机用交叉网线与开发板的网络接口连接,将开发板电源接口接到插座上,打开arm板,修改网络设置为:
IP为:192.168.16.95;
子网掩码为:255.255.255.0;
默认网关为:192.168.16.1;
DNS为:192.168.16.1;
打开Xshell,
连接好arm板之后,应该会有以太网这个选项,如果没有,拔掉arm板重新连接,将arm板连接到虚拟机上。
点击以太网,点击设置,
再次点击设置,
(6)使用ping命令·查看网络连通性;
如图所示,可以ping通,代表网络配置成功,可以连接。
(7)使用ssh连接开发板;
命令为:
ssh root@[开发板ip]
ssh root@192.168.16.95
如果报错,使用下面的命令:
ssh root@192.168.16.95 -oHostKeyAlgorithms=+ssh-dss
这边的密码为自己在Xshell中设置的连接密码。
(8)挂载共享文件夹
mkdir project
mount -t nfs 192.168.16.3:/mnt/ShareFolder /project -o nolock,tcp,bg,hard,intr,nfsvers
这个命令不成功使用下面这个命令:
mount -t nfs 192.168.16.3:/mnt/ShareFolder /project -o nolock
(9)接下来就是在/mnt/ShareFolder中创建c文件,编译运行。
ls
./Hello