AT91RM9200嵌入式Linux系统开发Word格式.docx
- 文档编号:6939286
- 上传时间:2023-05-07
- 格式:DOCX
- 页数:54
- 大小:454.44KB
AT91RM9200嵌入式Linux系统开发Word格式.docx
《AT91RM9200嵌入式Linux系统开发Word格式.docx》由会员分享,可在线阅读,更多相关《AT91RM9200嵌入式Linux系统开发Word格式.docx(54页珍藏版)》请在冰点文库上搜索。
本文将介绍ATMEL公司的AT91RM9200,这款基于ARM920T的外设丰富的、功能强大的、非常适合工控领域的微处理器,并在该处理器上进行的嵌入式linux的开发[11][12][13]。
1.2.2外围设备
外围设备是指在一个嵌入式系统中,除了嵌入式处理器以外,用于完成存储、通讯、显示等辅助功能的其他部件。
根据外围设备的功能可以分为如下3类:
Ø
存储设备:
静态易失性存储设备(RAM)、动态存储设备(DRAM)和非易失存储器(FLASH)。
其中,Flash可以擦写次数多、存储速度快、容量大价格低等特点,在嵌入式系统中得到广泛的应用。
通讯接口设备:
应用广泛的包括并口,串口,SPI串行外围设备,I2C总线接口、USB接口和以太网接口等等。
人机交换设备:
LCD、键盘和触摸屏等。
1.2.3嵌入式操作系统
在大型的嵌入式应用系统中,为了使嵌入式开发更为方便、快捷,需要具备一种稳定完全的软件模块集合,用以管理存储设备、中断处理、任务间通讯和定时器响应,以及提供多任务处理器等,即嵌入式操作系统。
嵌入式系统的引入大大提高了嵌入式系统的功能,方便了应用软件设计,但同时占用了嵌入式系统的宝贵资源。
一般在比较大型或者需要多任务的应用场合,才考虑嵌入式操作系统[14][15][16]。
1.2.4应用软件
嵌入式应用软件是针对特定的实际专业领域,基于相应的嵌入式硬件平台,并能完成用户任务的计算机软件。
由于嵌入式系统自身的特点要求嵌入式应用软件有高可靠性,高代码密度,高度优化等特点,以适应嵌入式系统的实时性和成本敏感的特性要求,另外嵌入式应用软件需要在特定的编译环境下编译。
1.3嵌入式系统特点
由于嵌入式系统是应用于特定的环境下,面对专业领域的应用系统,所以与通用计算机的多样化和适用性不同。
它与通用计算机系统相比具有如下特点:
嵌入式系统通常是面向特定应用的。
嵌入式系统是将先进的计算机技术、半导体工艺、电子技术和通信网络技术与各个领域的具体应用相结合的产物。
这一特点决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。
嵌入式系统的硬件软件都必须高效率的设计,在保证稳定、安全、可靠的基础上量体裁衣,去除冗余,力争在同样的硅片面积上实现更高的性能。
这样,才能最大限度的降低应用成本。
在具体的应用中,对处理器的选择决定了其市场竞争力。
嵌入式系统常常有低功耗的要求。
可靠性和稳定性对与嵌入式系统有着特别重要的意义。
嵌入式系统本身不具有自举开发能力。
既使设计完成后,用户也通常不能对其中的程序进行修改,必须有一套交叉开发工具和环境才能开发。
嵌入式系统有时要求实时性较高,特别是对于特定的应用。
嵌入式系统是面向用户、面向产品、面向应用的,它必须与具体用于相结合才会具有生命力,才会更具有优势。
嵌入式系统必须根据应用要求对软硬件进行裁减,满足应用系统的功能、可靠性、成本、体积等要求。
1.4嵌入式系统发展前景
后PC时代是一个真实的阶段,而且是一个可以预测的时代。
嵌入式系统就是与这一时代紧密相关的产物,它将拉近人与计算机的距离,形一个人机和谐的工作与生活环境。
从某一个角度来看,嵌入式系统可应用于人类工作与生活的各个领域,具有极其广阔的应用前景。
嵌入式系统在传统的工业控制和商业管理领域已经具有广泛的应用空间,如智能工控设备、POS/ATM机、IC卡等;
在家庭领域更具有广泛的应用潜力,如机顶盒、数字电视、WebTV、网络冰箱、网络空调等众多消费类和医疗保健类电子设备等;
此外还有在媒体手机、袖珍电脑、掌上电脑、车载导航器等方面应用,将极大地推动嵌入式技术深入到生活和工作的方方面面[8][4][10]。
它在娱乐、军事方面的应用潜力也是巨大的,而且是有目共睹的。
1.5嵌入式操作系统概述
早期的嵌入式系统很多都不采用操作系统,它们只是为了实现某个控制功能,使用一个简单的循环控制对外界的控制请求进行处理。
当应用系统越来越复杂、应用的范围愈来愈广泛的时候,每添加一项新的功能,就能需要从头开始设计,所以没有操作系统已经是一个最大的缺点。
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,它是嵌入式系统(包括软、硬件系统)极为重要的组成部分,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通讯协议、图形界面等。
嵌入式操作系统既有通用操作系统的基本特点,如能够有效的管理越来越复杂的系统资源;
能够把硬件虚拟化,使得开发人员从繁忙的驱动程序移植和维护中解脱出来;
能够提供库函数、驱动程序、工具集以及应用程序。
与通用操作系统相比较,嵌入式操作系统的系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。
嵌入式操作系统负责嵌入式系统的全部软、硬件资源的分配、调度、控制、协调并发活动;
它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能[35][38][40]。
1.5.1操作系统的概念和分类
操作系统OS(OperationSystem)是一组计算机程序的组合,用来有效的控制和管理计算机的硬件和软件的资源,即合理的对资源进行调度,并为用户提供更为方便的应用接口。
它为应用支持软件提供运行环境,即对程序开发者提供功能强、使用方便的开发环境[11][12][13]。
从资源管理的角度,操作系统主要包含如下功能:
处理器管理。
对处理器进行分配,并对其运行进行有效的管理和控制。
在多任务环境下,合理分配由任务分享的处理器,使得CPU能够满足各程序运行的需要提高处理器的利用率,并能在恰当的时候收回分配给任务的处理器。
处理器的分配和运行都是以进程为基本单元进行的,因此,对处理器的管理可以归结为对进程的管理,包括进程控制、进程同步、进程通讯、作业调度和进程调度等。
存储器管理。
存储器管理的主要任务是为多道程序的运行提供良好的环境,包括内存分配、内存保护、地址映射、内存扩充。
例如,为每道程序分配必要的内存空间,使它们各得其所,且不致因相互重叠而失去信息;
不因某个程序出现异常而破坏其他程序得运行;
方便用户使用存储器;
提高存储器得利用率;
并能从逻辑上扩充内存等。
设备管理。
完成用户提出得设备请求,为用户分配I/O设备;
提高CPU和I/O得利用率;
提高I/O速度,方便用户使用I/O设备。
设备管理包括缓存管理、设备分配、设备处理、形成虚拟逻辑设备等。
文件管理。
在计算机中,大量得程序和数据是以文件的形式存放的。
文件管理的主要任务就是对系统文件和用户文件进行管理,方便用户使用,保证文件的安全性。
文件管理包括对文件存储空间的管理、目录管理、文件的读写管理,以及文件的共享与保护等。
用户接口。
用户与操作系统的接口是用户能够方便的使用操作系统的关键。
用户通常只需以命令形式、系统调用(即程序接口)形式与系统打交道。
图形用户接口(GUI),可以将文字图形和图像集成在一起,用非常容易识别的图标将系统的各种功能、各种应用程序和文件直观的表示出来,用户可以通过鼠标来取得操作系统的服务。
操作系统的分类,按程序进行调度的方法,可以将计算机操作系统分为以下几种类型:
顺序执行系统。
即系统内只有一个运行程序。
它独占CPU时间,按语句顺序执行该程序,直至执行完毕,另一个程序才能启动运行。
DOS就是这种操作系统。
分时操作系统。
系统内同时可有多道程序运行。
所谓同时,只是从宏观上来看的,实际上系统把CPU时间按顺序分为若干时间片,每个时间片内执行不同的程序。
这类系统支持多用户、当今广泛用于商业、金融领域。
Unix操作系统就属于这类系统。
实时操作系统。
系统内部同时有多道程序运行,每道程序个有不同的优先级,操作系统按事件触发使程序运行。
当多个事件发生时,系统按优先级高低来确定哪道程序在此时此刻能占用CPU,以保证优先级高的事件、实时信息及时被采集。
实时操作系统是操作系统的一个分支,也是最为复杂的一个分支。
1.5.2嵌入式操作系统的特点
嵌入式操作系统是相对于一般的操作系统而言的,它除了具备一般操作系统最基本的功能,如任务调度、同步机制、终端处理、文件处理等外,还有如下特点[14][15][16]:
可装卸性。
具有开放性、可伸缩性的体系结构。
有时需要强实时性。
嵌入式操作系统的实时性一般较强,可用与各种设备控制当中。
统一的接口。
提供各种设备的驱动接口。
操作方便、简单,提供友好的用户界面。
提供强大的网络功能。
支持TCP/IP协议及其他协议,提供TCP/UDP/IP/PPP等协议支持,以及统一的MAC访问层接口,为各种移动计算机设备预留接口。
强稳定性,若交互性。
嵌入式系统一旦开始运行,就不需要用户过多的干预,这就要求负责系统管理的嵌入式操作系统具有较强的稳定性。
嵌入式操作系统的用户接口一般不提供操作命令,它通过系统的调用命令,向用户程序提供服务。
固化代码。
在嵌入式系统中,嵌入式操作系统和应用软件被固化在嵌入式系统计算机的ROM中。
辅助存储器在嵌入式系统中很少使用,嵌入式操作系统的文件管理功能应该能够很容易的拆卸,而用各种内存文件系统。
更好的硬件适应性,即良好的移植性。
1.5.3常见的嵌入式操作系统
国际上用于信息电器的嵌入式操作系统有40多种左右。
现在,市场上非常流行的产品包括3Com公司下属子公司的PalmOS、Microsoft公司的WindowsCE、美国WindRiver公司的VxWorks、开放源码的Linux。
1)PalmOS
Palm是3Com公司的产品,其操作系统为PalmOS。
PalmOS是一种32位的嵌入式操作系统。
Palm提供了串行通讯接口和红外传输接口,利用它可以方便的与其他外部设备通信、传输数据:
拥有开放的OS应用程序接口,开发商可根据需要自行开发所需的应用程序。
PalmOS是一套具有很强开放性的系统,现在有大约数千种转为PalmOS编写的应用程序,从程序内容上看,小到个人管理、游戏,大到行业解决方案,PalmOS无所不包。
在丰富的软件支持下,基于PalmOS的掌上电脑功能不断扩展。
PalmOS是一套专门为掌上电脑开发的OS。
在编写程序时,PalmOS充分考虑了掌上电脑内存相对较小的情况,因此它占有非常小的内存。
由于基于PalmOS编写应用程序占用的空间也非常小,基于PalmOS的掌上电脑可以运行多种应用程序。
2)WindowsCE
WindowsCE时微软开发的一个开放的、可升级的32位嵌入式操作系统,是基于掌上电脑类的电子设备操作。
它是精简的Windows95。
WindowsCE的图像用户界面相当出色。
与Windows95/98、WindowsNT不同的是,WindowsCE是所有源代码全部是微软自行开发的嵌入式新型操作系统,其操作界面来源于Windows95/98,但是WindowsCE是基于Win32API重新开发的、新型的信息设备平台。
WindowsCE具有模块化、结构化和基于Win32应用程序接口以及与处理器无关等特点。
WindowsCE不仅继承了传统的Windows图像界面,更有利的是可以使用类似于VisualBasic、VisualC++的集成开发工具(EmbeddedVisualBasic和EmbeddedVisualC++)在Windows平台上方便快捷的开发运行于WindowsCE平台上的应用程序,使用同样的函数、使用同样的界面网络,使绝大多数的应用软件只需简单的修改和移植就可以在WindowsCE平台上继续使用。
3)VxWorks
VxWorks操作系统使美国WindRiver公司于1983年设计开发的一种实时操作系统。
VxWorks拥有良好的继续发展能力、高性能的内核以及友好的用户开发环境,在实时操作系统领域占据一席之地。
它以良好的可靠性和卓越的实时性能被广泛的应用到通信、军事、航天等高精尖技术及实时性要求较高的领域种。
在美国的F-16、FA-18战斗机、B-2隐形轰炸机和爱国者导弹上,甚至1997年火星表面登陆的火星探测器上也使用了VxWorks。
它是目前嵌入式系统领域中使用最广泛、市场占有率最高的系统。
VxWorks支持多种处理器,如ARM、x86、MIPS、PowerPC、StrongARM等等。
大多数的VxWorks的API是专用的。
VxWorks具有一个高性能实时微内核,其任务切换时间短、中断延迟小、网络流量大的特点使得VxWorks的性能得到很大的提高。
VxWorks与POSIX兼容,用户在其他符合POSIX标准的系统如Linux上运行的软件,基本上只要重新编译一下就可以移植到VxWorks上运行。
VxWorks提供了良好的可配置能力,可配置的组建超过80个,用户可以根据自己系统的功能需求进行合理的配置。
而且,VxWorks提供了一个强大的开发调试环境Tornado,以方便广大嵌入式系统开发人员的开发使用。
4)Linux
Linux是一个类似Unix的操作系统。
它起源于芬兰一个名为LinusTorvalds的业余爱好,但是现在已经是最为流行的一款开放源代码的操作系统。
Linux从1991年问世到现在,短短十几年的时间已经发展成为一个功能强大、设计完善的操作系统,伴随网络技术进步而发展起来的Linux已经成为微软公司Windows的强劲对手。
Linux系统不仅能够运行于PC平台,还在嵌入式系统方面大放光芒,在各种嵌入式linux迅速发展的情况下,linux逐渐形成了可与WindowsCE等嵌入式操作系统进行抗衡的局面。
目前正在开发的嵌入式系统中,49%的项目选择Linux作为嵌入式操作系统。
Linux现已成为嵌入式操作的理想选择[20][22][23]。
嵌入式linux操作系统的有点在于:
Linux是源码开放的,不存在黑箱技术,遍布全球的众多linux爱好者都是linux开发者的强大技术支持者。
Linux的源代码随处可得,注释丰富,文档齐全,易于解决各种问题。
Linux的内核小,效率高。
Linux是开放源代码的操作系统,在价格上极具竞争力,适合中国国情
Linux不仅支持x86芯片,还是一个跨平台的系统,到目前为止,它可以支持30~40种CPU,很多CPU厂商开始作Linux的平台移植工作,而且移植的速度远远超过Java的开发环境。
如果今天采用Linux环境开发产品,那么将来更换CPU时就不会遇到更换平台的困扰。
Linux内核的结构在网络方面时非常完整的,它提供了对于包括10兆位百兆位及千兆位的以太网络,还有无线网络、Tokenring和光纤甚至卫星的支持。
Linux在内核结构的设计中,考虑适应系统的可裁减性的要求。
作为嵌入式系统核心的嵌入式操作系统时开发嵌入式应用的关键一环,在这个领域内,没有通常操作系统环境下的Windows系统那样一支独秀的商品。
因此,目前国内外相继推出了很多商业化嵌入式操作系统,都在努力为自己争取着嵌入式市场的份额。
而Linux凭借其价格免费、源码公开的特点在嵌入式应用中占有一席之地,由于Linux自身的诸多优势,吸引了许多开发上的目光,已经渐渐成为了嵌入式操作系统领域的新宠。
本论文将介绍在基于AT91RM9200微处理器的开发平台上,进行嵌入式Linux的移植。
1.6研究目标
本课题来源于北京理工大学同北京康拓工业电脑公司的合作项目“基于ARM平台的嵌入式控制系统开发”。
本文主要研究ARM920T核CPU的应用与嵌入式Linux操作系统的移植和底层驱动的开发,底层硬件采用康拓电脑公司自主开发的ARM人机界面卡。
开发主机采用Redhat9.0操作系统,开发平台使用GNU交叉开发环境。
最终目标是实现人机界面板卡的各种功能,完成在µ
C/OS-II下的各种驱动的调用,为用户提供一个完整的应用平台。
2ARM920T硬件平台设计
2.1ARM体系结构
ARM公司把ARM作为知识产权IP推向嵌入式处理器市场,目前已经占有80%左右的市场。
市场上出现的ARM体系结构有多种形式,既有处理器内核(如ARM9TDMI)形式,也有处理器核如(ARM9T)形式。
半导体厂商或片上系统SOC设计应用厂商采用ARM体系结构,生产相应的MCU/MPU(如ATMEL公司的AT91系列)或SOC芯片。
ARM即AdvancedRISCMachines的缩写。
ARM公司是知识产权(IP)供应商,本身不生产芯片,靠转让设计许可,由合作伙伴公司来生产各具特色的芯片。
作为32位嵌入式RISC微处理器业界的领先供应商,ARM公司商业模式的强大之处在于它在世界范围内有超过100个合作伙伴――包括半导体工业的著名公司,从而保证了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM的处理器核的设计可以很快的投入市场[1][2][3]。
ARM嵌入式处理器作为一种高端嵌入式处理器,以其高性能、低功耗的特性,广泛地应用于PDA、机顶盒、网络通信、无线产品等领域。
ARM体系结构的主要特点包括:
1)RISC型处理器结构
为减少复杂功能的指令,减少指令条件,选用使用频率最高的指令,简化处理器的结构,减少处理器的集成度,并使每一条指令都在一个机器周期内完成,以提高处理器的速度。
ARM采用RISC结构,并使的一个机器周期可执行一条指令。
2)Thumb指令集
由于RISC型处理器的指令功能相对比较弱,ARM为了弥补此不足,在新型的ARM体系结构中定义了16位的Thumb指令集。
Thumb指令集比通常的8位和16位CISC/RISC处理器具有更好的代码密度,而芯片的面积增加了6%,可以使得程序存储器更小。
3)多处理器状态模式
ARM可以支持用户、快中断、中断、中止、系统和为定义等7种处理器模式,除了用户模式外,其余的均为特权模式。
这也是ARM的特色之一,可以大大提高ARM处理器的效率。
4)嵌入式在线仿真调试
ARM体系结构的处理器芯片都嵌入了在线仿真ICE-RT逻辑,便于通过JTAG来仿真调试ARM体系结构芯片,可以省去价格昂贵的在线仿真器。
另外,在处理器核中还具有嵌入式跟踪单元ETM,用于监控内部总线,实时跟踪指令和数据的执行。
5)灵活方便的接口
ARM体系结构具有协处理器接口,这样,既可以使基本的ARM处理器内核尽可能的小,又可以方便的扩充各种功能。
另外,ARM处理器核还具有片上总线AMBA(AdvancedMicrocontrollerBusArchitechture)。
AMBA定义了3组总线:
AHB(AdvancedHighperformanceBus)、ASB(AdvancedSystemBus)和APB(AdvancedPeripheralBus)。
通过AMBA来方便的扩充各种处理器及I/O口,这样,就可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成到一块芯片中[8]。
ARM当前有5个产品系列:
ARM7、ARM9、ARM9E、ARM10和SecurCore。
其中,ARM7、ARM9、ARM9E和ARM10是四个通用处理器系列。
每个系列提供一套特定的性能,以满足设计者对功耗、性能&体积的要求、SecurCore是第五个产品系列,是专门为安全设备而设计的。
ARM作为嵌入式系统中的处理器,以其低电压、低功耗&的集成度等特点,及其开放&可扩展性,实际上已经成为嵌入式系统首选的处理器体系结构[7][9][18]。
2.2AT91RM9200微处理器简介
AT91RM9200是美国ATMEL公司于2003年推出的一款针对系统控制、通讯领域的基于ARM9内核的微处理器。
AT91RM9200微控制器与ATMEL以前推出的ARM7的AT91系列微处理器兼容,同时,AT91RM9200微处理器还提供了启动/禁用片上存储器的功能,以配合外围设备的需要。
如图1所示AT91RM9200结构框图[86][87][88]。
图1AT91RM9200结构框图
2.2.1ARM920T处理器的特点
ARM920TTM高速缓存处理器,是ARM9Thumb®
高性能32位片上系统处理器系列中的一款。
它提供了一个完全的高性能CPU系统,包括:
ARM9TDMITMRISC整型CPU
16K字节的指令缓存和16K字节的数据缓存
指令和数据存储管理单元(MMU)
写缓存功能
高级微处理器总线构架(AMBA)总线接口
嵌入式跟踪宏单元(ETM)接口
ARM920TTM的内核ARM9TDMITM可以执行32位的ARM指令集和16位的Thumb指令集。
ARM9TDMITM处理器采用哈佛结构的处理器,实现5级流水线操作,包括指令、译码、执行、存储和写。
ARM920TTM处理器包含两个写处理器:
CP14和CP15。
其中,CP14负责控制软件调试通信通道,而CP15是系统控制处理器,提供另外16个寄存器,用于配置&控制高速缓存、MMU、保护系统、时钟模式和其他系统功能。
ARM920TTM处理器的主要特点是:
1)基于ARM9TDMITM,ARMv4T结构;
2)具有两种指令集,包括ARM高性能32位指令集和Thumb高代码率的16位指令集;
3)5级流水线指令结构:
取指令(F)、指令译码(D)、执行(E)、数据存储访问(M)和写寄存器(W);
4)16K字节的数据缓存,16K字节的指令缓存
5)具有写缓冲
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- AT91RM9200 嵌入式 Linux 系统 开发