main() {printf(“hello,I am studying Embeded System!\\n”); return 0; }
2、在宿主机上用本机的编译器编译运行 gcc hello.c -o pchello ./pchello 3、交叉编译
arm-linux-unknown--gcc hello.c -o armhello ./armpchello 4、下载到目标机
重复第(一)步,下载这个文件 # cd /var
# rz < 通过超级终端菜单“发送文件”选择从vmware共享来的hello文件,使用“Zmodem与崩溃恢复”,点击发送
rz ready. To begin transfer, type \"sz file ...\" to your modem program ?# B000000023be50 # ls
#chmod 777 ./armhello #./armhello
四、Windows+Vmware Linux平台上配置交叉编译环境
1、在Linux中安装vmware tools
(1)在“虚拟机”菜单中选择“安装vmware tools”; (2)在命令终端拷贝Vm„.gz这个文件到“/tmp”目录 (3)#cd /tmp
#tar xzvf Vm„.gz #cd vm„tool„ #./vm„.pl
安装过程采用默认参数
(4)在“虚拟机”菜单中选择“设置”----“选项”; (5)“共享文件夹”;
Windows文件夹-------------Linux中“/mnt/hgfs/„”对应。
2、在宿主机上建立交叉编译器编译环境――Linux
(1)把Windows下F:\\ armv4l-tools文件夹作为VmWare的共享文件夹armtools; (2)在VmWare Linux中进入共享目录(/mnt/hgfs/armtools),
执行安装命令:source ./install.sh;
(3)查看结果:cd /opt/host/arm4l/bin下面应该有相应的交叉编译工具集; (4)为了以后应用方便,把路径“/opt/host/arm4l/bin”加入到/root/.bash_profile的PATH中:
用vi /root/.bash_profile命令打开文件,找到PATH命令这一行,把在后面追加上面的路径,变成“PATH=$PATH:$HOME/bin:/opt/host/armv4l/bin”。
(5)用source /root/.bash_profile,使设置马上生效。验证方法:随便在一个目录中用arm后按TAB键应该出“armv4l-unknown-linux-”
五、在Cygwin中配置交叉编译环境
1、交叉编译建立环境准备: (1)实验前,在c:/cygwin目录下建立“tmp”子目录,拷贝CD3中“05linux-source”
中的两个文件“cross-armtools-linux-edukit2410.tar.bz2”和“set_env_linux.sh”到C:/Cygwin/tmp目录下。
(2)运行Cygwin开发环境,执行以下命令: $>cd /
$>source /tmp/set_env_linux.sh < 以后每次打开Cygwin时,均要执行一次这条命令行
2、安装交叉编译工具: $>cd /tmp
$>tar -P -xvjf cross-armtools-linux-edukit2410.tar.bz2
验证: $>ls
„armtools-linux„ ;表示正常
$>source armtools-linux/cross-install.sh
验证: $>ls /usr
„arm-linux„ ;表示正常
$>arm-linux-gcc 这个命令可以运行即为成功。 3、测试交叉编译环境
在/home目录下新建一个hello.c的源文件,然后: $>arm-linux-gcc hello.c -o hello
如果生成hello可执行文件,即为成功,且生成的程序只能在arm平台上运行。
六、建立NFS调试环境
1、在Linux图形界面下配置网络。
“开始”——“系统设置”——“网络”,即可打开网络配置窗口,双击网卡就进入配置界面。
IP地址要跟实验箱在同一IP地址段;掩码、网关、路由;无防火墙。 2、启用NFS服务: “系统设置”——“服务器设置”——“服务”,将“iptables”服务的勾去掉,把“nfs”前的勾打上。
3、配置NFS:
“系统设置”——“服务器设置”——“NFS服务器”: 在“目录(directory)”中填入需要共享的路径;在“主机(host)”中填入允许进行连接的主机IP地址(可以IP地址段,如192.168.0.*);选择允许客户对共享目录的操作为“只读(read-only)”或“读写(read/write)”。如下图所示:
其它设置可以采用默认的值。
另:也可手工编写/etc/exports文件,格式如下: 共享目录 可以连接的主机(读写权限,其它参数)。 如:/arm2410 192.168.0.*(rw,sync)
表示将本机的/arm2410目录共享给IP地址为192.168.0.1――192.168.0.254的所有计算机,可以读写。
4、测试:(在宿主机上自己mount自己)
在宿主机上自己mount自己,如果成功则表示配置好了。
mount 192.168.0.10:/arm2410 /mnt/nfs ;(/mnt/nfs这个文件夹存在) 然后到/mnt/nfs目录下看是否可以列出/arm2410目录下的内容。 5、把交叉编译过的hello放到共享文件夹“/arm2410”,在实验箱上mount宿主机: mount -t nfs -o nolock 192.192.192.192:/home/arm /mnt
cd /mnt
ls (列出的内容应该与宿主机的/arm2410目录的内容一样) 直接执行程序。
思考题:
1、宿主机与目标开发板之间的关系?
2、宿主机的监视终端窗口在交叉编译开发环境中的作用? 3、简述用NFS调试程序的方法。