嵌入式系统开发环境实验
一 实验目的与要求
1.熟悉Linux系统环境。 2.了解实验板的结构组成。
3.了解嵌入式系统开发的基本知识。
4. 熟悉嵌入式Linux交叉编译环境的建立过程,并通过一个HelloWorld程序的编写、编译、下载运行及调试过程,了解嵌入式开发的基本方法和流程。
二 实验设备与软件环境
1.硬件:SemitARM9200开发板,PC机PIII800MHz,256MB以上,串口线(公母)1条,网线1条,7.5V电源1个。
2.软件:RedHat 9.0以上Linux操作系统.
三 实验原理
1.宿主机开发环境
绝大多数的Linux软件开发都是以Native方式进行的,即本机(Host)开发、调试,本机运行的方式。这种方式通常不适合于嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机(即板子上系统)运行开发工具和调试工具。通常的嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机(即一台PC机)上,对应的开发板叫做目标板。如下图所示。
开发时使用宿主机上的交叉编译、汇编及链接工具形成可执行的二进制代码,(这种可执行代码不能在宿主机上执行,而只能在目标板上执行)然后把可执行文件下载到目标机上运行。一般调试的方法包括串口调试和以太网口调试。对于本实验板,目前可采用串口调试,操作系统经过修改可以实现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD处理器,而目标板如本实验板的处理器为ATMEL AT91RM9200 。GNU编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机从而建立开发环境。所以在进行嵌入式开发前第一步的工作就是要安装一台装有指定操作系统的PC机作宿主开发机,宿主机上的操作系统一般要求安装Linux,但Linux由多个发行版本,在此,我们推荐使用Redhat 9.0作为本实验板的宿主机PC操作系统(http://www.linuxiso.org可以下载)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多的软件模块协同工作,这将是一个比较繁杂的工作,但现在只要安装我们提供的光盘,开发软件包及GNU编译工具已完全自动完成了。
当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。
嵌入式开发通常要求宿主机配置有网络,支持NFS(为交叉开发时mount所用),支持TFTP服务器(为下载映像文件所用)等等,这个将在后面介绍。 下面介绍安装步骤:
我们建议您完全安装的Redhat9.0 Linux操作系统(www.linuxiso.org提供下载),可以使用光盘启动安装Redhat9.0 Linux时,刚开始安装不久,安装向导会弹出对话框询问您安装服务器或工作站等,请选择自定义(Custom);安装过程中可以指定PC机上网卡的IP地址,由于本实验板在烧写时默认的IP为192.168.0.23,所以建议您的PC机也在此网段(192.168.0.X),IP地址可以在安装时指定,也可以在PC机安装好以后指定IP;在配置防火墙(Firewall)时,选择不安装防火墙(No Firewall),在选择软件Package时选择最后一项:Everything,即完全安装。完全安装完以后,大概占用4.8GB的硬盘空间。
最后会让您选择Linux启动以后进入X模式还是文本模式,根据自己的爱好决定,进入文本模式时启动花费的时间少一些,即使进入X windows,也可以按Ctrl + Alt +Fx(x 在默认情况可以是1,2,??6),输入安装RedHat时节输入的用户名(root或已经建立的其它用户)和密码,即可进入操作系统的Shell提示符,例如像:[root@localhost root]# 【注意】安装完成以后也可以修改/etc/inittab文件来选择进入X windows还是进入字符模式。
四 实验内容与步骤
1.交叉编译环境的建立
开发板上的ttys0与PC的串口1相连。 开发板的网卡与PC的网口相连。 开发板接7.5V电源。
在Windows环境下启动超级终端,进入超级终端。
输入连接名称,这个名称可以随便输入,您可以输入“semit”,然后点击“确定”按钮。
设置连接使用串口1(COM1),点击“确定”进入COM1的属性设置窗口。
设置串口每秒位数为115200,数据位为8,奇偶校验无,停止位1,数据流控“无”,确定后进入超级终端窗口。
按下本开发板上的复位键(具体位置见33页SemitARM9200 开发板实物图及接口示意图)后启动开发板,进入如下界面。
设置宿主机的IP地址为192.168.0.22。输入mount –t nfs 192.168.0.22:/ /mnt/挂载,建立交叉编译环境。
挂载成功后输入cd /mnt,输入ls,就可以看到mnt目录下面有哪些文件了。
2.运行hello world应用程序 输入cd /mnt/helloworld/,
输入ls,显示helloworld文件里的内容。