《第05章ARM嵌入式系统开发环境培训教材》由会员分享,可在线阅读,更多相关《第05章ARM嵌入式系统开发环境培训教材(79页珍藏版)》请在金锄头文库上搜索。
1、第5章 ARM嵌入式系统开发环境,5.1 基本原理 5.2 实验及其要求,嵌入式系统及其开发应用(第二版),1,5.1 基本原理,绝大多数的Linux软件开发都是以Native方式进行的,即本机(Host)开发、调试,本机运行的方式。这种方式通常不适合嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机运行开发工具和调试工具。通常,嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机上,宿主机可以是一台PC或工作站,对应的目标板也称为开发板或实验板。图5.1给出了这种交叉编译环境的示意图。开发时使用宿主机上的交叉编译、汇编及链接工具形成可执行的二进制代码,这种可执行
2、代码不能在宿主机上执行而只能在目标板上执行,因此需要把可执行文件下载到目标板上运行。一般调试的方法包括串口调试和以太网口调试。,嵌入式系统及其开发应用(第二版),2,5.1 基本原理,图5.1 交叉编译环境示意图,嵌入式系统及其开发应用(第二版),3,5.1 基本原理,表5.1 SemitARM9200实验箱上层,表5.2 SemitARM9200实验箱下层,嵌入式系统及其开发应用(第二版),5,5.1 基本原理,实验箱的实物图分别如图5.2和图5.3所示,开发板及接口、CDMA模块及电源、GPS模块及电源、Zigbee模块及电源、IEEE 802.11g无线网卡的实物图分别如图5.4图5.8
3、所示。另外,GSM天线在实验箱的最低层,取出来后装在图5.3中GSM天线底座的位置上。,嵌入式系统及其开发应用(第二版),6,5.1 基本原理,图5.2 实验箱上层,嵌入式系统及其开发应用(第二版),7,5.1 基本原理,图5.3 实验箱下层,嵌入式系统及其开发应用(第二版),8,5.1 基本原理,图5.4 SemitARM9200 开发板及接口,嵌入式系统及其开发应用(第二版),9,5.1 基本原理,图5.5 CDMA模块及电源,嵌入式系统及其开发应用(第二版),10,5.1 基本原理,图5.6 GPS模块及电源,嵌入式系统及其开发应用(第二版),11,5.1 基本原理,图5.7 Zigbe
4、e(主、从)模块及电源,图5.8 802.11g无线网卡,嵌入式系统及其开发应用(第二版),12,5.1 基本原理,SemitARM9200开发板由核心板和底板组成。核心板在实验箱的最低层,取出来后装在图5.3中的核心板插槽处。核心板上集成了Atmel的AT91RM9200处理器,64MB SDRAM及16MB的Flash,为应用研发提供了足够的空间。底板上则提供以下外设接口:两个RS-232 串口(COM),一个USB Host接口,两个USB Device接口,一个10/100Mbps自适应以太网接口。 核心板和底板配合即构成一个最小的完整应用系统。系统具有体积小、耗电低、处理能力强等特点
5、,能够装载和运行嵌入式Linux操作系统,用户可以在这个系统平台上进行自主软件开发。,嵌入式系统及其开发应用(第二版),13,5.1 基本原理,AT91RM9200具有如下资源及接口: 16KB数据Cache,16KB指令Cache,写缓冲区; 虚拟内存管理单元NMU; 带有Debug调试的在片Emulator; 中级执行嵌入式Trace Macrocell; 16KB的内部SRAM和128KB的内部ROM; 外部总线接口(EBI); 支持SDRAM、SRAM、Burst Flash和CompactFlash、SmartMedia and NAND Flash的无缝连接; 增强型的时钟产生器和
6、电源管理单元; 带有两个PLL的两个在片振荡器; 慢速的时钟操作模式和软件电源优化能力;,嵌入式系统及其开发应用(第二版),14,5.1 基本原理,4个可编程的外部时钟信号; 包括周期性中断、看门狗和第2计数器的系统定时器; 带有报警中断的实时时钟; 带有8个优先级、可单个屏蔽中断源、Spurious中断保护的先进中断控制器; 7个外部中断源和一个快速中断源; 4个32位的PIO控制器可以达到122个可编程I/O引脚(每个都有输入控制、可中断及开路的输出能力); 20通道的外部数据控制器(DMA); 10/100Mbps的以太网接口; 两个全速的USB2.0主接口和一个从口; 4个USART;
7、,嵌入式系统及其开发应用(第二版),15,5.1 基本原理,三通道16位的定时/计数器(TC); 两线接口(TWI); IEEE 1149.1 JTAG标准扫描接口。 核心板各个部分的构成如图5.9所示。 内存部分:1片168Mb数据宽度的Flash,共16MB Flash(Intel 28F128J3C,如有不同型号,则是完全兼容的器件);两片16M16b数据宽度的SDRAM(HY 57V561620B T,如有不同型号,则是完全兼容的器件)构成64MB SDRAM。 数据通信口和外部输入/输出口:底板实现了按键、UART、USB和百兆位以太网等功能。,嵌入式系统及其开发应用(第二版),16
8、,5.1 基本原理,图5.9 SemitARM9200开发板中的核心板的构成,嵌入式系统及其开发应用(第二版),17,5.1 基本原理,5.1.2 宿主机开发环境 SemitARM9200开发板可采用串口调试,操作系统经过修改可以实现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为Intel或AMD处理器,而目标板(例如本开发板)的处理器为ATMEL AT91RM9200。GNU编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机,从而建立开发环境。所以在进行嵌入式开发前的第一步工作就是要安装一台装有指定操作系统的PC作为宿主开发机。宿主机上的操作系统一般要求安装Linux
9、,但Linux有多个发行版本,本系统推荐使用Redhat 9.0作为本开发板的宿主机PC操作系统(http:/www.linuxiso.org可以下载)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多软件模块协同工作,这是一个比较繁杂的工作,为此SemitARM9200实验系统提供了一套光盘,含有开发软件包及GNU编译工具,装载后安装工作完全自动完成。,嵌入式系统及其开发应用(第二版),18,5.1 基本原理,当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。 嵌入式开发通常要求宿主机配置有网络,支持NFS
10、(为交叉开发时mount所用),支持TFTP服务器(为下载映像文件所用)等,这些将在后面介绍。 (1)安装步骤 建议完全安装Redhat9.0 Linux操作系统(http:www.linuxiso.org提供下载),可以使用系统所附光盘启动安装Redhat9.0 Linux。刚开始安装不久,安装向导会弹出对话框询问安装服务器或工作站等,请选择自定义(Custom)。安装过程中可以指定PC上网卡的IP地址。因为本开发板在烧写时默认的IP为192.168.0.23,所以建议宿主机IP地址也配置在此网段(192.168.0.X)。IP地址可以在安装时指定,也可以在PC安装好以后指定IP。在配置防火
11、墙(Firewall)时,选择不安装防火墙(No Firewall)。在选择软件Package时,选择最后一项:Everything,即完全安装。完全安装完以后,大概占用4.8GB的硬盘空间。,嵌入式系统及其开发应用(第二版),19,5.1 基本原理,最后选择Linux启动以后进入X模式还是文本模式,这个可以根据自己的爱好决定。进入文本模式时,启动花费的时间少一些。即使进入X Windows,也可以按Ctrl + Alt +Fx(x在默认情况下可以是1,2,6)组合键,输入安装RedHat时设置的用户名(root或已经建立的其他用户)和密码,即可进入操作系统的Shell提示符,如:rootlo
12、calhost root#。 注意:安装完成以后也可以修改etcinittab文件来选择进入X Windows还是进入字符模式。 将系统附带的光盘插入光驱,然后执行以下命令若主机系统是Redhat9.0,一般会自动识别并mount(挂载)插入的光盘:,嵌入式系统及其开发应用(第二版),20,5.1 基本原理,cd /mnt :进入mnt目录 mkdir cdrom :建立cdrom目录 mount /dev/cdrom /mnt/cdrom :mount插入的光盘 cd /mnt/cdrom :进入CDROM所在目录 ./arminst:执行安装程序 回车 :开始安装嵌入式实验系统软件 注意:
13、进入中文环境是为了能够看到安装启动时的一些中文提示信息,若没有中文环境也无所谓,只是会看到一些乱码而已,用户只需输入y并按回车键即可完成全部安装(建议在安装前启动时就将串口线连好)。安装时,当前用户必须是root。 执行完毕后,会在根目录下生成工作目录:/home/arm,该目录含有Linux内核、应用程序源代码及各个工具软件。,嵌入式系统及其开发应用(第二版),21,5.1 基本原理,安装完系统后,安装程序自动配置Minicom终端程序,通常在宿主机上用Minicom观察开发板输出到串口的调试信息,也可以通过串口向开发板发送命令。Minicom类似于Windows下的超级终端程序。 用串口线
14、连接SemitARM9200开发板的ttys0和宿主机的COM1,在宿主机任意目录下执行minicom,然后给开发板上电,就可以看到开发板启动时显示出来的信息。开发板启动后运行一个简化的shell进程,可以接受用户的控制,使用者可以输入一些简单的命令,如cd、ls来查看片上文件系统。运行程序直接输入程序名,/bin下面都是可执行程序,用ps命令可以查看系统正在运行的进程。 SemitARM9200开发板要求minicom设置COM1为所选串口,波特率为115 200bps,无硬件流控,8位数据位,1位停止位,无奇偶校验,即8N1。 注意:串口线、JTAG线严禁带电拔插!,嵌入式系统及其开发应用
15、(第二版),22,5.1 基本原理,(2)NFS服务器的配置 首先在Redhat Linux PC上shell提示符root#下输入setup命令,弹出如图5.10所示的菜单。 选择System services项,按回车键进入系统服务选项菜单,选中*nfs项,然后退出setup界面返回命令提示符: vim /etc/exports 将这个默认的空文件修改为只有如下一行内容: / (rw) /即根目录可读写,/和(rw)之间要留空格 然后保存退出(:wq),执行如下命令启动NFS服务: /etc/rc.d/init.d/nfs restart 或 service nfs restart Shu
16、tting down NFS mountd: OK Shutting down NFS daemon: OK Shutting down NFS quotas: OK ,嵌入式系统及其开发应用(第二版),23,5.1 基本原理,Shutting down NFS services: OK Starting NFS services: OK Starting NFS quotas: OK Starting NFS daemon: OK Starting NFS mountd: OK 启动完成后,推荐采用在PC上mount本机看是否成功来判断NFS是否已经配好。例如,在PC的根目录下执行(假定PC的IP地址配置为192.168.0.22): mount 192.168.0.22:/ /mnt 然后到/mnt/目录下看是否可以列出所指定的IP的机器(可以是本机,当然也可以测试其他机器是否可以被mount)根目录(/)下的所有文件和目录,如果可以,则说明mount成功,NFS配置成功。,嵌入式系统及其开发应用(第二版),24,5.1 基本原理,(