实验室实验1交叉开发环境搭建_第1页
实验室实验1交叉开发环境搭建_第2页
实验室实验1交叉开发环境搭建_第3页
实验室实验1交叉开发环境搭建_第4页
实验室实验1交叉开发环境搭建_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、项目一 交叉开发环境搭建1.能力培养目标l 熟悉项目开发的硬件系统l 掌握Linux宿主机的NFS共享的设置l 掌握串口调试工具的使用l 掌握宿主机与目标机的线路连接l 通过NFS共享,在目标机上运行程序2.项目任务要求(1)项目任务熟悉项目开发的硬件系统。搭建嵌入式软件项目开发环境,熟悉开发过程。(2)项目来源及应用不论开发任何软件项目,也不论项目大小,都需要事先搭建软件开发环境。掌握软件开发环境搭建和使用的方法,是所有项目的第一步,非常重要。熟悉软件项目编译、运行和调试的各种操作,减少以后重复该工作时所用的时间,能大大提高工作效率。(3)功能需求搭建项目开发环境,以个人电脑作为宿主PC机,

2、配置交叉编译环境,并与ARM目标机连接,通过NFS共享,在ARM目标机上运行交叉编译后的应用程序。熟悉交叉编译及程序运行方法,为以后的其他项目做准备。(4)开发环境需求硬件宿主机PC机、USB转串口线、网线 目标机ARM目标机软件宿主机windows系统:WinXP Xin7 其它: Linux 系统:RedHat 9 RHEL4 其它: VMware虚拟机: VMware Workstation 9 其它:串口调试工具:WinXP自带的超级终端Linux自带的minicom第三方串口工具: 目标机嵌入式Linux 3.项目预习(1)了解项目目标、项目任务要求、项目设计和项目实施步骤。(2)下

3、载本次实验所需要的软件:USB转串口驱动程序和超级终端软件。(3)完成第5大项中步骤。(4)回答以下问题l gcc是什么?如何使用gcc?l Make工具的作用是什么?如何编写makefile文件?l 什么是交叉编译?如何使用交叉编译工具?4.项目设计(1)宿主机与ARM目标机的通信示意图下图1描述宿主机(Windows系统、Linux虚拟机系统)以及ARM目标机的Linux系统三者之间的关系,以及文件传输和通信所使用的协议和线路。图1 交叉开发模式(2)项目开发流程项目开发的基本流程为:代码编写、交叉编译、通过NFS文件共享的方式mount到ARM目标机上运行。1)创建工程目录并编写源程序l

4、 方式一:在宿主机Linux虚拟机的项目开发目录中编写源代码。可以用任何编辑器编写源代码,如Vi、GEdit和Emacs等。l 方式二:在宿主机Windows下编辑、保存源代码并将其转移到Linux虚拟机的指定目录中。提示:使用VMware文件共享、samba服务或FTP等网络服务。2)编译工程利用Linux操作系统的宿主机进行交叉编译、汇编及连接,形成可在ARM目标机上执行的二进制代码(这种可执行代码并不能在宿主机上执行),可用两种方式编译:l 直接用交叉编译器arm-linux-gcc进行l 编写makefile文件,用make命令进行编译。3)通过NFS共享方式运行目标程序如图2所示,通

5、过NFS共享来把可执行文件所在项目工作目录挂载到目标机上运行。调试时可以使用串口进行调试。通过Windows的超级终端,或者Linux虚拟机的minicom,控制目标机,对其进行操作。图2 NFS共享方式5.项目实施(0) 熟悉目标机硬件系统(1)检查Linux虚拟机网络设置虚拟机的网络连接方式为桥接并且设备是connected,如图3、图4所示。图3 虚拟机设置界面图4 桥接设置界面有些同学选择上面的选项网络不好用,若不好用,则可按下面界面操作:(2)Linux虚拟机上,检查交叉编译器是否安装用以下命令可以检查Linux虚拟机是否已经安装好了交叉编译环境。#arm-linux-gcc -v思

6、考:如何设置交叉编译器的环境变量,并使其生效?提示:(1)PATH环境变量;(2)source命令。(3)Linux虚拟机上,设置虚拟机IP地址查看虚拟机IP#ifconfigLinux虚拟机IP需要设置为和ARM目标机同一个网段,并且不能相同。例如可以设置为0。#ifconfig eth0 0(4)Linux虚拟机上,设置NFS共享将/up-techpxa270cl设置为NFS共享目录,并确保NFS服务正在运行。NFS服务,可以实现两台Linux系统中文件的共享。在本书实验项目开发中,主要用于Linux虚拟机和ARM目标机之间文件共享,从而实现将实

7、验项目软件mount到ARM目标机上运行。点击Linux虚拟机系统主菜单运行“系统”“管理”,选择“服务器设置”,选择“NFS服务器”,点击“增加”,弹出如图6所示界面。在“基本”选项卡中,目录中填入需要共享的路径,在“主机”中填入允许进行连接的主机IP地址。设置为192.168.0.*或*,代表允许这个C类网段的所有机器都可以访问该共享。并选择允许客户对共享目录的操作为“读写”(Read/write)。如图5-图9所示: 图5设置NFS共享a图6设置NFS共享b“一般选项”选项卡设置,可以保留默认值。 图7设置NFS共享c“用户访问”选项卡设置,可以保留默认值;为了编程、操作方便,请将“远程

8、根用户当作本地根用户”,这样安全性虽然较差一些,但方便了开发。图8设置NFS共享d最后退出时则完成NFS 配置。配置好后,界面显示应如下图所示: 图9设置NFS共享e配置好后,需要在终端中输入“/etc/rc.d/init.d/nfs restart”命令,重新启动NFS服务,更改才会生效。#/etc/rc.d/init.d/nfs restart(5)开发系统物理连接a.连接电源(12V),将随机附带的一根电源线的一端插入到电源插座中,将另外一端插入目标机电源接口上;b.连接网线,将网线一端连接到目标机的网口上,另一端连接到PC机的网口上。c.连接串口线,一端连接PC机的串口,另一端连接到目

9、标机的UART0上(即COM1); 注意:目标机具有两个串口,分别为UART0和UART1,UART0为左侧靠近电源接口的串口。串口可使用相应的USB转接线来代替,如USB-RS232转接线,安装或更新相应的驱动程序后,将转接线的USB头插入宿主机的USB接口,会将其转化为串口,具体串口的编号可查看宿主机Windows系统的“设备管理器”à“端口”。如图10所示。图10 串口设置(6)Linux虚拟机上,设置串口通信工具Putty简介:Putty是一个免费的、Windows平台下的telnet、serial和ssh客户端。用它来远程管理目标板十分好用,其主要优点如下:完全免费;在Wi

10、ndows 9x/NT/2000下运行的都非常好;全面支持ssh1和ssh2;绿色软件,无需安装,下载后在桌面建个快捷方式即可使用;体积很小,仅364KB (0.54 beta版本);操作简单,所有的操作都在一个控制面板中实现。本书中使用它来代替超级终端使用。Putty操作指南:把Putty下载到机器上,双击putty.exe,出现如图11的启动界面。 图11 Putty启动界面点击“串口选项”,出现如图12所示界面。图12 串口界面在“连接到的串口”位置填写设备管理器中实际使用的串口号,选择为COM9,具体串口的编号可查看宿主机Windows系统的“设备管理器”à“端口”。“波特率

11、”设为115200,“数据位”设为8位,停止位设为1位,“奇偶校验位”设为无,“流量控制”设为无。设置界面如图13所示。图13 Putty设置界面点击会话选项“会话”,出现如图14所示界面。默认的连接类型为SSH。图14 连接类型选择界面选择“串口”,在“保存的会话”窗口输入想要保存的名字,我们输入名字为“neusoft”,如图15所示,点击“保存”按钮即保存了用户的配置,如图16所示。图15 保存设置界面图16 保存界面接着双击“neusoft”,即打开工作界面,如图17所示。图17 Putty调试界面完成串口通讯工具的设置。此处Putty界面就是目标机的操作界面!(7)关闭无线网,启动AR

12、M目标机,挂载NFS共享目录启动ARM目标机,Putty中将显示目标机的启动信息。按回车键,启动目标机Linux系统。正常启动后,会显示“rootIntel /#”,等待命令输入。然后,在终端程序中,用如下命令挂载共享目录,将Linux虚拟机的NFS共享目录/up-techpxa270cl挂载到ARM目标机的/mnt/nfs空目录中。在目标机上(Putty)上输入如下命令:#mount t nfs o nolock 192.168.0. 10:/up-techpxa270cl /mnt/nfs注意:mount:挂载命令-t nfs:挂载类型-o nolock:参数,不锁文件 192.168.0

13、.10:/up-techpxa270cl:宿主机上的文件夹 /mnt/nfs:目标机文件夹命令中的IP地址(0)为宿主开发机IP(Linux虚拟机),挂载成功后如图18所示。图18 NFS挂载成功如果出现version older than kernel等信息就说明挂载成功,如果出现Bad或failed信息,则说明挂载没成功, 要根据实际情况操作。如果挂载不成功,解决办法如下: 思考:如果在目标机上,mount宿主机的NFS共享目录不成功怎么办?提示:a) 测试网络连通性;b) NFS服务设置;c)查看无线网是否关闭a) 测试网络连通性先查看IP是否正确:命令如下:在虚拟

14、机上:ifconfig 查看IP是否为0在目标机上:ifconfig 查看IP是否为 05思考:目标机没有IP怎么办?提示:通过超级终端执行命令ifconfig检查ARM目标机的IP设置,可以用ifconfig命令查看,默认IP设置为05。如果IP没有设置,或者与宿主开发机设置的不在同一个网段,用ifconfig eth0 05修改为05。如果IP都对,则测试网络是否连能:命令如下:在目标机上:ping 05在目标机上:ping 0如果pin

15、g不通,原因可能是:没有连接网线或者连接松动,宿主机Linux系统的IP(0)和目标机的IP(05)配置不正确,windows防火墙未关闭、无线网卡未关闭、VM不是桥接(bridged)或者没有connected等。 b) 查看NFS服务设置service nfs status如果不是正在运行,则service nfs start或service nfs restartc)查看无线网是否关闭(8)在目标机(Putty)上操作NFS挂载成功之后,用cd命令切换到/mnt/nfs目录下,用ls命令可以看到Linux宿主机/up-techpxa270cl目

16、录下的所有文件和目录。如图19所示。#cd /mnt/nfs#ls图19 查看共享目录 (9)Linux虚拟机上编写示例程序源代码在Linux虚拟机中的/up-techpxa270cl 目录下创建目录test0,并在此目录下编写如下文件:main.c#cd /up-techpxa270cl#mkdir test0#cd test0参考代码:/* -main.c- */#include <stdio.h>int main(viod) printf("Hello is ok!n");printf("NFS is ok!n"); return 0;

17、 (10)Linux虚拟机上交叉编译#arm-linux-gcc main.c o hello(11)在目标机上(Putty)运行示例程序NFS挂载成功之后,用cd命令切换到/mnt/nfs目录下,用ls命令可以看到Linux宿主机/up-techpxa270cl目录下的所有文件和目录,运行刚刚编译好的程序hello和helloworld,并查看程序在目标机上运行的结果。 #cd /mnt/nfs#ls#cd test0#ls#./hello至此,我们的交叉开发环境就搭建好了,可以实现在Linux虚拟机上编写程序、编译程序,之后在目标机上运行程序的目的了,这样可以不用每次都把程序下载到目标机上,会大大方便开发过程和延长目标机的寿命!6.项目问题(1) 根据项目参考文档,说明本次实验中的硬件系统。(2) 说明本次实验中宿主机和目标机之间的通信连接。(3) 超级终端的作用是什么?(4) NFS文件系统挂载的作用、目的是什么?

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论