版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第5章章 ARM嵌入式系统开发环境嵌入式系统开发环境v5.1 基本原理v5.2 实验及其要求嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)15.1 基本原理基本原理v绝大多数的Linux软件开发都是以Native方式进行的,即本机Host开发、调试,本机运行的方式。这种方式通常不适合嵌入式系统的软件开发,因为嵌入式系统没有足够的资源在本机运行开发工具和调试工具。通常,嵌入式系统的软件开发采用一种交叉编译调试的方式,交叉编译调试环境建立在宿主机上,宿主机可以是一台PC或工作站,对应的目标板也称为开发板或实验板。图5.1给出了这种交叉编译环境的示意图。开发时使用宿主机上的交叉编译、
2、汇编及链接工具形成可执行的二进制代码,这种可执行代码不能在宿主机上执行而只能在目标板上执行,因此需要把可执行文件下载到目标板上运行。一般调试的方法包括串口调试和以太网口调试。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)25.1 基本原理基本原理v图5.1 交叉编译环境示意图嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)35.1 基本原理基本原理5.1.1 SemitARM9200实验箱实验箱本书后面的实验和开发实例均依托本书后面的实验和开发实例均依托SemitARM9200实验箱进行阐述,实验箱进行阐述,SemitARM9200实验箱中的开发目标板及其配实验箱中的
3、开发目标板及其配套软件由作者及其同事依托东南大学移动通信国套软件由作者及其同事依托东南大学移动通信国家重点实验室和南京东大移动互联技术有限公司家重点实验室和南京东大移动互联技术有限公司而开发。而开发。SemitARM9200实验箱分为上、下两层,它们实验箱分为上、下两层,它们所包含的模块名称及其数量分别列于表所包含的模块名称及其数量分别列于表5.1和表和表5.2中。中。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)45.1 基本原理基本原理表5.1 SemitARM9200实验箱上层表5.2 SemitARM9200实验箱下层模 块 名 称数 量模 块 名 称数 量Zigbee模
4、块(主)1块SemitARM9200开发底板1块Zigbee模块(从)1块SemitARM9200 核心板1块GPS模块1块7.5V 1200mA电源1块CDMA模块1块7.5V 800mA电源4块GPS天线1根GSM天线1根CDMA天线1根耳机1副802.11g无线网卡1块串口线(双公)1根串口线(公母)2根直连网线1根嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)55.1 基本原理基本原理v实验箱的实物图分别如图5.2和图5.3所示,开发板及接口、CDMA模块及电源、GPS模块及电源、Zigbee模块及电源、IEEE 802.11g无线网卡的实物图分别如图5.4图5.8所示。
5、另外,GSM天线在实验箱的最低层,取出来后装在图5.3中GSM天线底座的位置上。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)65.1 基本原理基本原理v图5.2 实验箱上层嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)75.1 基本原理基本原理v图5.3 实验箱下层嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)85.1 基本原理基本原理v图5.4 SemitARM9200 开发板及接口嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)95.1 基本原理基本原理v 图5.5 CDMA模块及电源嵌入式系统及其开发应用第二版)嵌入式系统及其开发应
6、用第二版)105.1 基本原理基本原理v图5.6 GPS模块及电源嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)115.1 基本原理基本原理v图5.7 Zigbee主、从模块及电源 v 图5.8 802.11g无线网卡嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)125.1 基本原理基本原理vSemitARM9200开发板由核心板和底板组成。核心板在实验箱的最低层,取出来后装在图5.3中的核心板插槽处。核心板上集成了Atmel的AT91RM9200处理器,64MB SDRAM及16MB的Flash,为应用研发提供了足够的空间。底板上则提供以下外设接口:两个RS-23
7、2 串口COM),一个USB Host接口,两个USB Device接口,一个10/100Mbps自适应以太网接口。v核心板和底板配合即构成一个最小的完整应用系统。系统具有体积小、耗电低、处理能力强等特点,能够装载和运行嵌入式Linux操作系统,用户可以在这个系统平台上进行自主软件开发。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)135.1 基本原理基本原理v AT91RM9200具有如下资源及接口:v 16KB数据Cache,16KB指令Cache,写缓冲区;v 虚拟内存管理单元NMU;v 带有Debug调试的在片Emulator;v 中级执行嵌入式Trace Macroce
8、ll;v 16KB的内部SRAM和128KB的内部ROM;v 外部总线接口EBI);v 支持SDRAM、SRAM、Burst Flash和CompactFlash、SmartMedia and NAND Flash的无缝连接;v 增强型的时钟产生器和电源管理单元;v 带有两个PLL的两个在片振荡器;v 慢速的时钟操作模式和软件电源优化能力;嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)145.1 基本原理基本原理 4个可编程的外部时钟信号; 包括周期性中断、看门狗和第2计数器的系统定时器; 带有报警中断的实时时钟; 带有8个优先级、可单个屏蔽中断源、Spurious中断保护的先进
9、中断控制器; 7个外部中断源和一个快速中断源; 4个32位的PIO控制器可以达到122个可编程I/O引脚每个都有输入控制、可中断及开路的输出能力); 20通道的外部数据控制器DMA); 10/100Mbps的以太网接口; 两个全速的USB2.0主接口和一个从口; 4个USART;嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)155.1 基本原理基本原理 三通道16位的定时/计数器TC); 两线接口TWI); IEEE 1149.1 JTAG标准扫描接口。 核心板各个部分的构成如图5.9所示。 内存部分:1片168Mb数据宽度的Flash,共16MB FlashIntel 28F1
10、28J3C,如有不同型号,则是完全兼容的器件);两片16M16b数据宽度的SDRAMHY 57V561620B T,如有不同型号,则是完全兼容的器件构成64MB SDRAM。 数据通信口和外部输入/输出口:底板实现了按键、UART、USB和百兆位以太网等功能。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)165.1 基本原理基本原理v 图5.9 SemitARM9200开发板中的核心板的构成嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)175.1 基本原理基本原理5.1.2 宿主机开发环境宿主机开发环境SemitARM9200开发板可采用串口调试,操作系统经过修改可
11、以实开发板可采用串口调试,操作系统经过修改可以实现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为现以太网口调试。宿主机和目标板的处理器一般都不相同,宿主机为Intel或或AMD处理器,而目标板例如本开发板的处理器为处理器,而目标板例如本开发板的处理器为ATMEL AT91RM9200。GNU编译器提供这样的功能,在编译时编译器提供这样的功能,在编译时可以选择开发所需的宿主机和目标机,从而建立开发环境。所以在进可以选择开发所需的宿主机和目标机,从而建立开发环境。所以在进行嵌入式开发前的第一步工作就是要安装一台装有指定操作系统的行嵌入式开发前的第一步工作就是要安装一台装有指定操作系统的
12、PC作为宿主开发机。宿主机上的操作系统一般要求安装作为宿主开发机。宿主机上的操作系统一般要求安装Linux,但,但Linux有多个发行版本,本系统推荐使用有多个发行版本,本系统推荐使用Redhat 9.0作为本开发板作为本开发板的宿主机的宿主机PC操作系统操作系统可以下载)。然后要在宿主机可以下载)。然后要在宿主机上建立交叉编译调试的开发环境。环境的建立需要许多软件模块协同上建立交叉编译调试的开发环境。环境的建立需要许多软件模块协同工作,这是一个比较繁杂的工作,为此工作,这是一个比较繁杂的工作,为此SemitARM9200实验系统实验系统提供了一套光盘,含有开发软件包及
13、提供了一套光盘,含有开发软件包及GNU编译工具,装载后安装工编译工具,装载后安装工作完全自动完成。作完全自动完成。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)185.1 基本原理基本原理v 当开发环境安装完毕后,会在根目录下生成两个目录:工作目录/home/arm和交叉编译环境目录/usr/local/arm。v 嵌入式开发通常要求宿主机配置有网络,支持NFS为交叉开发时mount所用),支持TFTP服务器为下载映像文件所用等,这些将在后面介绍。v (1安装步骤v 建议完全安装Redhat9.0 Linux操作系统:提供下载),可以使用系统所附光盘启动安
14、装Redhat9.0 Linux。刚开始安装不久,安装向导会弹出对话框询问安装服务器或工作站等,请选择自定义Custom)。安装过程中可以指定PC上网卡的IP地址。因为本开发板在烧写时默认的IP为3,所以建议宿主机IP地址也配置在此网段192.168.0.X)。IP地址可以在安装时指定,也可以在PC安装好以后指定IP。在配置防火墙Firewall时,选择不安装防火墙No Firewall)。在选择软件Package时,选择最后一项:Everything,即完全安装。完全安装完以后,大概占用4.8GB的硬盘空间。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)1
15、95.1 基本原理基本原理v 最后选择Linux启动以后进入X模式还是文本模式,这个可以根据自己的爱好决定。进入文本模式时,启动花费的时间少一些。即使进入X Windows,也可以按Ctrl + Alt +Fxx在默认情况下可以是1,2,6组合键,输入安装RedHat时设置的用户名root或已经建立的其他用户和密码,即可进入操作系统的Shell提示符,如:rootlocalhost root#。v 注意:安装完成以后也可以修改etcinittab文件来选择进入X Windows还是进入字符模式。v 将系统附带的光盘插入光驱,然后执行以下命令若主机系统是Redhat9.0,一般会自动识别并mou
16、nt挂载插入的光盘:嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)205.1 基本原理基本原理cd /mnt :进入mnt目录mkdir cdrom :建立cdrom目录mount /dev/cdrom /mnt/cdrom :mount插入的光盘cd /mnt/cdrom :进入CDROM所在目录./arminst:执行安装程序回车 :开始安装嵌入式实验系统软件注意:进入中文环境是为了能够看到安装启动时的一些中文提示信息,若没有中文环境也无所谓,只是会看到一些乱码而已,用户只需输入y并按回车键即可完成全部安装建议在安装前启动时就将串口线连好)。安装时,当前用户必须是root。执
17、行完毕后,会在根目录下生成工作目录:/home/arm,该目录含有Linux内核、应用程序源代码及各个工具软件。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)215.1 基本原理基本原理v 安装完系统后,安装程序自动配置Minicom终端程序,通常在宿主机上用Minicom观察开发板输出到串口的调试信息,也可以通过串口向开发板发送命令。Minicom类似于Windows下的超级终端程序。v 用串口线连接SemitARM9200开发板的ttys0和宿主机的COM1,在宿主机任意目录下执行minicom,然后给开发板上电,就可以看到开发板启动时显示出来的信息。开发板启动后运行一个简化
18、的shell进程,可以接受用户的控制,使用者可以输入一些简单的命令,如cd、ls来查看片上文件系统。运行程序直接输入程序名,/bin下面都是可执行程序,用ps命令可以查看系统正在运行的进程。v SemitARM9200开发板要求minicom设置COM1为所选串口,波特率为115 200bps,无硬件流控,8位数据位,1位停止位,无奇偶校验,即8N1。v 注意:串口线、JTAG线严禁带电拔插!嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)225.1 基本原理基本原理(2NFS服务器的配置首先在Redhat Linux PC上shell提示符root#下输入setup命令,弹出如图
19、5.10所示的菜单。选择System services项,按回车键进入系统服务选项菜单,选中*nfs项,然后退出setup界面返回命令提示符: vim /etc/exports 将这个默认的空文件修改为只有如下一行内容: / (rw) /即根目录可读写,/和(rw)之间要留空格 然后保存退出(:wq),执行如下命令启动NFS服务: /etc/rc.d/init.d/nfs restart 或 service nfs restart Shutting down NFS mountd: OK Shutting down NFS daemon: OK Shutting down NFS quotas
20、: OK 嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)235.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地址配置为2): mount 2:/ /mnt 然后到/mnt/目录下看是否可以列
21、出所指定的IP的机器可以是本机,当然也可以测试其他机器是否可以被mount根目录(/)下的所有文件和目录,如果可以,则说明mount成功,NFS配置成功。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)245.1 基本原理基本原理(3TFTP服务器的配置在PC上执行setup,选择System services项,将其中的tftp一项选中呈现*表示选中),并去掉ipchains和iptables两项服务即去掉它们前面的*号),如图5.11所示。最后,退出setup,执行如下命令以启动TFTP服务: service xinetd restart 配置完成后,建议简单测试一下TFTP服
22、务器是否可用,即在本机上tftp自己,例如,在PC上执行: cd / cp /etc/inittab /tftpboot/ /复制一个文件到/tftpboot目录下以供下面使用tftp命令下载嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)255.1 基本原理基本原理v 下面以etc/inittab文件为例进行说明:v tftp 2v tftp get inittab v 如果在/tftpboot目录里没有下载的文件,会提示没有找到相关文件。若出现如下信息:v Received 741512 bytes in 0.7 seconds v 就表示TFTP服务器配
23、置成功了,在根目录下就会有刚才下载的inittab文件存在了。若弹出信息为:Timed out,则表明未成功,建议用如下命令查看tftp服务是否开通: v netstat -a|grep tftp v 若TFTP服务器没有配置成功,需要按照上述步骤重新检查一遍。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)265.1 基本原理基本原理v图5.10 NFS的配置v图5.11 TFTP服务的配置嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)275.1 基本原理基本原理(4关闭防火墙输入setup,选择Firewall configuration项,选中No firewa
24、ll项,关闭防火墙,如图5.12所示。说明: Redhat Linux PC自测mount成功也不能完全说明NFS就可以工作了,因为还有一个防火墙的问题,为此建议读者在安装Redhat Linux时默认选择No firewall。但若读者没有这样选择的话,REDHAT启动时会加载防火墙规则,这样就能自测mount,但其他PC和开发板也无法mount这台PC。 注意:setup里面的防火墙显示永远都是HIGH,这个一直是Redhat的一个小BUG,即使安装时默认选择了No firewall,setup里面也照样会显示防火墙设置为HIGH。这个可以不必理会,只要选择了一次No firewall就可
25、以了。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)285.1 基本原理基本原理 有时根目录不让读/写,建议在PC的命令提示符下执行chmod 777 / 试试。 Redhat在加入网关设置后,网络建立TCP链接非常慢,如FTP/TELNET/NFS等都是。建立链接后,以太网通信还是很快的。若安装网络时加入了网关,就会出现在开发板操作NFS mount Redhat PC时,输入mount -o nolock XXX.XXX.XXX.XXX:/ /mnt后非常长的时间不返回Shell提示符,就一直停在那里,这是因为建立连接的时间非常长。遇到这种情况,建议在Redhat Linux
26、 PC上执行: route del default 即去掉网关,然后再进行NFS mount等操作就会非常快了。 测试NFS,必须用以太网将开发板和Redhat Linux PC连接起来才行,连接的方式有两种:一是开发板和PC都用普通的网线接到Hub或者交换机上;二是用交叉网线将开发板和PC嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)295.1 基本原理基本原理v图5.12 防火墙的配置嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)305.1 基本原理基本原理 直接连起来,不过一定要注意这种网线是特制的,其内部收发是交换的即一头按普通网线的做法,另一头把1和3、2
27、和6交换一下)。测试开发板和PC网络是否连通的方式是:开发板正常启动Linux后,在minicom里面ping一下PC看是否连通。当然,用PC来ping开发板看是否接通也是可以的。注意:开发板必须启动Linux后才能ping通,开发板处在bootloader阶段一般是无法ping通的,即使这时开发板的bootloader初始化了以太网也不行。在一般情况下,如果不设置网关,使用ping命令时,需要开发板和PC在同一个网段。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)315.1 基本原理基本原理v 若开发板跟PC的网络不通,则mount报错信息为:v # mount -o nolo
28、ck 2:/ /mnt v mount: RPC: Unable to receive; eNrno = No route Fo host mount: Sfsmount v failed:Bad file descriptor mount program didnt pass remote address! mount: v Mounting 2:/ on /mnt failed: Invalid argument v 关于TFTP服务安装的问题。有些读者在安装Redhat Linux 时,没有在CustomPackages中选择everythin
29、g,导致没有安装TFTP服务。典型的情况是,安装完成后没有/tftpboot目录,setupsystem services里面也没有tftp选项。这时若要重新完全安装就太麻烦了,可采用如下单独安装TFTP的方法:v rpm -ivh foo-1.0-5.i386.rpmv 其中,foo-1.0-5.i386.rpm在Redhat 9.0 Linux操作系统的安装光盘里面。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)325.1 基本原理基本原理说明:按照上面方法把PC上的Linux安装和配置好,就可以把系统提供的开发板的源代码包安装到PC上了。如果没有配置好上面的TFTP服务,则
30、SemitARM9200开发板就没有办法使用TFTP通过以太网下载映像文件。如果上面的NFS没有配置好,则下面开发的应用程序就没有办法使用NFS服务,这一项虽然不是必须的,但是有了这一项服务,可以大大方便调试应用程序的开发。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)335.1 基本原理基本原理5.1.3 文件与目录结构文件与目录结构1. 光盘目录介绍光盘目录介绍系统光盘的主目录内容如下。系统光盘的主目录内容如下。 SEMIT.tar.gz:整个软件源代码和编译器的压:整个软件源代码和编译器的压缩包。缩包。 arminstall:安装脚本文件,可以在:安装脚本文件,可以在She
31、ll提示提示符下输入符下输入vi来打开,进入光盘目录以后,输入来打开,进入光盘目录以后,输入./arminstall,就会提示安装上面提到的,就会提示安装上面提到的tgz扩扩展名的文件,并且安装相应的编译器和复制展名的文件,并且安装相应的编译器和复制minicom的设置文件。的设置文件。 doc:“ARM9嵌入式系统嵌入式系统+无线通信开发平台实无线通信开发平台实验指导书验指导书V1.2及其他芯片资料。及其他芯片资料。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)345.1 基本原理基本原理2. 安装开发环境软件包安装开发环境软件包启动启动PC上的上的Redhat 9.0 Lin
32、ux操作系统,并将产品附带的光盘插入操作系统,并将产品附带的光盘插入光驱,然后执行以下命令:光驱,然后执行以下命令:mount /dev/cdrom /mnt /挂载光盘挂载光盘 cd /mnt . /arminstall/执行安装脚本执行安装脚本 在安装的过程中会显示一些提示信息。在安装的过程中会显示一些提示信息。注意:执行完毕后,会在根目录下生成工作目录:注意:执行完毕后,会在根目录下生成工作目录:/home/arm,内,内含含Linux内核、蓝牙协议栈和应用程序、内核、蓝牙协议栈和应用程序、IEEE 802.11g模块驱动模块驱动源码及源码及bootloader。安装完光盘提供的源代码文
33、件和交叉编译环境以后,执行:安装完光盘提供的源代码文件和交叉编译环境以后,执行: cd / /回到其他目录才能卸载光盘回到其他目录才能卸载光盘 umount /mnt /卸载光盘卸载光盘 现在可以取出光盘了。现在可以取出光盘了。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)355.1 基本原理基本原理3. 安装光盘后的目录介绍安装光盘后的目录介绍安装光盘以后,会在安装光盘以后,会在PC的的/home目录下生成名称为目录下生成名称为arm的目录,并且的目录,并且把编译器安装到该目录下指定的路径中去,同时在根目录下生成把编译器安装到该目录下指定的路径中去,同时在根目录下生成“SEMI
34、T_Project的应用程序目录:的应用程序目录:/home/arm/linux-2.4.19-rmk7 Linux的内核;的内核;/home/arm/bluez 蓝牙协议栈和应用程序;蓝牙协议栈和应用程序;/home/arm/driver IEEE 802.11g模块的驱动源码;模块的驱动源码;/home/arm/bootloader/ SEMIT平台的引导代码,可以通过修平台的引导代码,可以通过修改这些源码来修改改这些源码来修改bootloader;/tftpboot / 其下是编译好的映像文件或者可执行文件,其中,其下是编译好的映像文件或者可执行文件,其中,zImage是编译好的是编译好
35、的Linux内核映像文件,内核映像文件,u-boot.bin是编译好的是编译好的引导程序二进制代码,引导程序二进制代码,ramdisk.image4ppp.gz是是ramdisk文文件系统压缩的映像文件,件系统压缩的映像文件,TECH-burn-cmd是烧写时要用到的一些是烧写时要用到的一些命令,已经把相关命令写到此文本文件中了。命令,已经把相关命令写到此文本文件中了。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)365.1 基本原理基本原理 minirc.dfl 本开发板启动时默认的串口终端配置,使用第一个串口ttyS0)。如果在串口设置时出了问题,可以把此文件复制到PC的/e
36、tc目录中,然后退出minicom,再重新进入minicom即可。注意:这里的bootloader for AT91RM9200分为如下3个。 AT91RM9200-Loader:生成loader.bin,在CPU内部SRAM中运行。这个可从home/arm/bootloader/AT91RM9200-Loader目录下的ld文件ld.script中看出:MEMORY ram : ORIGIN = 0 x200000, LENGTH = 0 x3000 #上面这个0 x200000就是INTERNAL SRAM的地址嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)375.1 基本原
37、理基本原理SECTIONS .text : _stext = . ; *(.text) *(.rodata) . = ALIGN(4); _etext = . ; ram .data : _sdata = . ; *(.data) *(.glue_7*) . = ALIGN(4); _edata = . ; ram .bss : _sbss = . ; *(.bss) . = ALIGN(4); _ebss = . ; ram 嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)385.1 基本原理基本原理 simple_boot:生成boot.bin,烧到Flash上运行。 u-bo
38、ot-0.4.8:生成u-boot.bin,可在SDRAM中运行,实际应用是烧到Flash上,由上面的boot.bin加载到SDRAM中运行。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)395.1 基本原理基本原理5.1.4 Linux系统的配置编译和文件系统系统的配置编译和文件系统嵌入式嵌入式Linux内核及设备驱动全部源代码光盘安装后建立完备的开发内核及设备驱动全部源代码光盘安装后建立完备的开发环境)、交叉编译的工具集被放置到环境)、交叉编译的工具集被放置到/usr/local/arm/2.95.3目目录下,其中录下,其中GNU工具集列于表工具集列于表5.3中。中。编译内核
39、的命令如下:编译内核的命令如下:cd /home/arm/linux-2.4.19-rmk7make zImage 编译完成后,就会自动把编译完成后,就会自动把zImage复制到复制到/tftpboot/目录下以供目录下以供TFTP下载。下载。如果需要对内核进行配置和裁剪,可以在如果需要对内核进行配置和裁剪,可以在/home/arm/linux-2.4.19-rmk7目录下输入如下指令:目录下输入如下指令:make menuconfig 这时将出现如图这时将出现如图5.13所示的内核和驱动模块的配置界面,在这里可以对所示的内核和驱动模块的配置界面,在这里可以对内核和驱动模块进行选择和设置。内核
40、和驱动模块进行选择和设置。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)405.1 基本原理基本原理v表5.3 GNU工具集嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)GNU工具集arm-linux-gccarm-linux-cc1plusarm-linux-ranlibarm-linux-asarm-linux-objcopyarm-linux-stringsarm-linux-ldarm-linux-objdumparm-linux-gdbarm-linux-g+arm-linux-striparm-linux-gasparm-linux-cc1arm-lin
41、ux-nmarm-linux-sizearm-linux-cpparm-linux-ararm-linux-addr2line415.1 基本原理基本原理v图5.13 内核和驱动模块的配置界面嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)425.1 基本原理基本原理v 若对系统类型进行设置,则出现如下内容:v System Type - v (AT91RM9200-based) ARM system type v - AT91RM9200 Implementation v * SMDK (MERI TECH BOARD) v * change AIJI v AT91RM9200
42、USB function support v - Processor Type v * ARM920T CPU idle v * ARM920T I-Cache on v * ARM920T D-Cache on v Force write through caches on ARM920T v Support Thumb instructions (experimental)嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)435.1 基本原理基本原理v完成设置后,退出,保存设置,然后执行make zImage命令,即可编译生成所定制的内核映像文件,并自动复制到/tftpboot/
43、目录下以供烧写。v如果想了解编译的过程,可输入如下命令把编译过程重新定向到log文件进行观察:vmake zImage &log /把编译信息输出到文件log 中vvim log v即可看到完整的编译过程。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)445.1 基本原理基本原理5.1.5 Linux系统在地址空间中的位置系统在地址空间中的位置开发板地址空间的分布开发板地址空间的分布Memory Map如图如图5.14所示。所示。AT91RM9200提供了提供了8个外部片选引脚用于外部个外部片选引脚用于外部寻址,即寻址,即nGCSn07,每个片选都指定了固,每个片选都指定了固定的
44、地址,其固定间隔为定的地址,其固定间隔为256MB。图。图5.15给出给出了整个了整个32位的位的4GB地址空间的分布情况,其中地址空间的分布情况,其中除了除了8个外部总线接口个外部总线接口EBI,External Bus Interface外,还包括内部存储器外,还包括内部存储器Internal Memory)、外设)、外设Peripheral及尚未定义及尚未定义Undefined的地址空间。内部的地址空间。内部存储器和尚未定义的地址分布如图存储器和尚未定义的地址分布如图5.16所示。所示。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)455.1 基本原理基本原理v图5.14
45、开发板地址空间分布嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)465.1 基本原理基本原理vAT91RM9200提供了8个外部片选引脚用于外部寻址,即nGCSn07,每个片选都指定了固定的地址,其固定间隔为256MB。图5.15给出了整个32位的4GB地址空间的分布情况,其中除了8个外部总线接口EBI,External Bus Interface外,还包括内部存储器Internal Memory)、外设Peripheral及尚未定义Undefined的地址空间。内部存储器和尚未定义的地址分布如图5.16所示。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)475.1
46、 基本原理基本原理v图5.15 整个32位的4GB地址空间的分布情况嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)485.1 基本原理基本原理v 图5.16 内部存储器和尚未定义的地址分布嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)495.1 基本原理基本原理v 外设部分的空间被映射到0 xFFFFF0000 xFFFFFFFF之间的4KB地址空间上。每个外设拥有256或者512字节,其详细的分布情况请参见光盘中CPU Manual第32页的图6 System Peripherals Mapping。v 本开发板内存由两片16M16b数据宽度的SDRAM构成,两片
47、拼成32位模式,公用nGCS1,共64MB RAM。起始地址为0 x20000000。v nGCS0接的是1片8M16b数据宽度的INTEL E28F128 Flash,起始地址为0 x10000000。其中内核zImage烧写在地址0 x10040000开始处,根文件系统RAMDISK烧在0 x10240000地址处。v INTEL E28F128J3A-150 Flash的单片16MB,共128个扇区,每个扇区都是128KB大小,均匀分布。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)505.1 基本原理基本原理5.1.6 中断中断AT91RM9200开发板上扩展的外设接口占
48、用片选开发板上扩展的外设接口占用片选和中断情况见表和中断情况见表5.4。中断资源列于表中断资源列于表5.5,由该表可以看出,由该表可以看出,AT91RM9200提供了提供了7路外部中断和路外部中断和1路路FIQ。表表5.4 外设接口占用片选和中断情况外设接口占用片选和中断情况嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)接 口占 用 片 选占 用 中 断13506视频芯片NCS2IDE硬盘NCS3PD23(中断号为5)PS/2键盘NCS4PD8(中断号为5)515.1 基本原理基本原理v表5.5 AT91RM9200的中断资源嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第
49、二版)外设ID外设助记符外 设 名 称外 部 中 断0AIC增强中断控制器FIQ1SYSIRO2PLOA并行I/O控制器A3PLOB并行I/O控制器B4PLOC并行I/O控制器C5PLOD并行I/O控制器D6US0USART 07US1USART 18US2USART 29US3USART 310MCI多媒体卡接口11UDPUSB器件端口12TWI两线接口13SPI串行外设接口14SSC0同步串行控制器015SSC1同步串行控制器116SSC2同步串行控制器217TC0定时器/计数器018TC1定时器/计数器119TC2定时器/计数器220TC3定时器/计数器321TC4定时器/计数器422T
50、C5定时器/计数器523UHPUSB主机端口24EMAC以太网MAC25AIC增强中断控制器IRQ026AIC增强中断控制器IRQ127AIC增强中断控制器IRQ228AIC增强中断控制器IRQ329AIC增强中断控制器IRQ430AIC增强中断控制器IRQ531AIC增强中断控制器IRQ6525.1 基本原理基本原理v 在Linux里面request_irq所需要的中断向量号,也就是表5.5中左边一行的数值,在ARMLinux内核中有如下的定义:v linux-2.4.19-rmk7/include/asm/arch/irqs.hv ARMlinux都是统一在这个地方定义的,但对于9200它
51、放到下面这个文件里:v linux-2.4.19-rmk7/include/asm/arch/AT91RM9200.hv #define AT91C_ID_FIQ ( 0) / Advanced Interrupt Controller (FIQ) v #define AT91C_ID_SYS ( 1) / System Peripheral v #define AT91C_ID_PIOA ( 2) / Parallel IO Controller A v #define AT91C_ID_PIOB ( 3) / Parallel IO Controller B v #define AT91C
52、_ID_PIOC ( 4) / Parallel IO Controller C v #define AT91C_ID_PIOD ( 5) / Parallel IO Controller D v #define AT91C_ID_US0 ( 6) / USART 0 v #define AT91C_ID_US1 ( 7) / USART 1 嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)535.1 基本原理基本原理#define AT91C_ID_US2 ( 8) / USART 2 #define AT91C_ID_US3 ( 9) / USART 3 #define AT9
53、1C_ID_MCI (10) / Multimedia Card Interface #define AT91C_ID_UDP (11) / USB Device Port #define AT91C_ID_TWI (12) / Two-Wire Interface #define AT91C_ID_SPI (13) / Serial Peripheral Interface #define AT91C_ID_SSC0 (14) / Serial Synchronous Controller 0 #define AT91C_ID_SSC1 (15) / Serial Synchronous C
54、ontroller 1 #define AT91C_ID_SSC2 (16) / Serial Synchronous Controller 2 #define AT91C_ID_TC0 (17) / Timer Counter 0 #define AT91C_ID_TC1 (18) / Timer Counter 1 #define AT91C_ID_TC2 (19) / Timer Counter 2 嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)545.1 基本原理基本原理#define AT91C_ID_TC3 (20) / Timer Counter 3 #define
55、 AT91C_ID_TC4 (21) / Timer Counter 4 #define AT91C_ID_TC5 (22) / Timer Counter 5 #define AT91C_ID_UHP (23) / USB Host port #define AT91C_ID_EMAC (24) / Ethernet MAC #define AT91C_ID_IRQ0 (25) / Advanced Interrupt Controller (IRQ0) #define AT91C_ID_IRQ1 (26) / Advanced Interrupt Controller (IRQ1) #de
56、fine AT91C_ID_IRQ2 (27) / Advanced Interrupt Controller (IRQ2) #define AT91C_ID_IRQ3 (28) / Advanced Interrupt Controller (IRQ3) #define AT91C_ID_IRQ4 (29) / Advanced Interrupt Controller (IRQ4) #define AT91C_ID_IRQ5 (30) / Advanced Interrupt Controller (IRQ5) #define AT91C_ID_IRQ6 (31) / Advanced I
57、nterrupt Controller (IRQ6)在开发板的minicom终端可以通过如下命令查看板上的中断信息: # cat proc/interrupts 嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)555.1 基本原理基本原理5.1.7 通用输入通用输入/输出接口和总线输出接口和总线1. 通用输入通用输入/输出接口输出接口通用输入通用输入/输出输出GPIO,General Purpose Input/Output是一种总线扩展器,当微控是一种总线扩展器,当微控制器或芯片组没有足够的制器或芯片组没有足够的I/O端口,或系统需要端口,或系统需要采用远端串行通信或控制时,采用
58、远端串行通信或控制时,GPIO接口能够提接口能够提供额外的控制和监视功能。供额外的控制和监视功能。AT91RM9200提供了提供了128路复用的路复用的I/O口线,口线,分为如下端口进行管理:分为如下端口进行管理:Port AGPA):):32路输入路输入/输出口线;输出口线;Port BGPB):):32路输入路输入/输出口线;输出口线;Port CGPC):):32路输入路输入/输出口线;输出口线;Port DGPD):):32路输入路输入/输出口线。输出口线。核心板已经将这些复用的信号引脚中未被占用的全核心板已经将这些复用的信号引脚中未被占用的全部引到底板上来了。部引到底板上来了。嵌入式
59、系统及其开发应用第二版)嵌入式系统及其开发应用第二版)565.1 基本原理基本原理2. 总线总线AT91RM9200的内部地址为的内部地址为32位,外部地址为位,外部地址为27位,数位,数据总线宽度为据总线宽度为32位,主频最高达位,主频最高达180MHz,总线信息速,总线信息速率最高达率最高达100Mbps。若外接若外接8位或位或16位数据宽度的外设芯片,与位数据宽度的外设芯片,与CPU相接时,相接时,本开发板的数据总线宽度是可配置的,分别为本开发板的数据总线宽度是可配置的,分别为32位、位、16位或位或8位模式,在位模式,在BWSCON中的中的BW位实现设置,具体位实现设置,具体方法请参见
60、系统所配光盘中方法请参见系统所配光盘中AT91RM9200X Users Manual的的Memory Controller。在给外设分配片选。在给外设分配片选时,设置好它的时,设置好它的BWSCON中的这两位,在访问它的地址中的这两位,在访问它的地址时就可以改变数据宽度。时就可以改变数据宽度。若设置若设置16位数据宽度模式,则低位数据宽度模式,则低16位数据线有效;若设置位数据线有效;若设置8位数据宽度模式,则最低位数据宽度模式,则最低8位数据线有效。位数据线有效。嵌入式系统及其开发应用第二版)嵌入式系统及其开发应用第二版)575.1 基本原理基本原理v注意:启动时上述设置对CS0是无效的,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《中药学(第2版)》课件16 止血药
- 大棚承包合同
- 大雪防冻防滑应急预案8篇
- 工程技术人员个人工作总结12篇
- 2026年项目专员项目供应商管理培训方案
- 2026年批发市场电气消防隐患排查培训计划
- 2026年心理咨询师真题练习卷
- 2026年涂装作业涂料储存安全管理培训方案
- 2026年消防系统联动调试方案及流程控制
- 危险化学品从业人员安全教育培训效果评估
- 人教版五年级语文上册第八单元:《青山处处埋忠骨》教案:通过情境朗读家国情怀引导学生理解担当落实革命文化启蒙培育责任意识与表达素养
- 民法典与医疗法律法规
- 养老社区2025年定位手环协议
- 2026年医学微生物学复习押题宝典通关考试题库附答案详解【突破训练】
- 2026云南楚雄州武定县事业单位选调37人备考题库及答案详解(真题汇编)
- 医疗机构防灾减灾课件
- 数学七年级下学期1.28 平行线-角度旋转问题
- 韦氏-儿童智力测验量表(全面)
- GB/T 26725-2023超细碳化钨粉
- 三腔二囊管使用课件
- 铁路路基病害
评论
0/150
提交评论