基于arm的嵌入式远程控制系统的研究与应用-本科论文.doc
浙江科技学院本科毕业设计(论文)基于ARM的嵌入式远程控制系统的研究与应用徐永强(自动化与电气工程学院 指导教师:邵世凡)摘要:计算机技术发展到今天,嵌入式系统的应用越来越广泛:嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含5-10个嵌入式微处理器。而随着网络技术日新月异的发展,各种网络器件成为嵌入式系统新的应用。微处理器产生后,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构。20世纪90年代,ARM32位嵌入式RISC处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。Linux因其可应用于多种硬件平台;是免费软件,源代码可以得到;微内核,本身内置网络支持和高度模块化等优点,非常适合做嵌入式开发的操作系统。Uclinux是Linux的一个分支,是专为没有MMU(内存管理单元)的CPU而设计的。本论文主要研究了基于ARM的嵌入式Linux开发。这个研究开发是在实践的基础上完成的,设计了以三星ARM7TDMI CPU为核心的嵌入式硬件系统,并在此基础上嵌入Uclinux操作系统,在uclinux系统上可以开发各种应用,本文主要研究了其中一个应用-嵌入式WEB服务器,该WEB服务器采用HTTP协议。我们已经成功解决了ARM的开发难题,研究了ARM的开发方案,以及uclinux针对ARM的移植难题,这在嵌入式系统研究领域,有较高的实践和研究价值。我们所研究的这个嵌入式系统具有低成本,高效率的特点,值得推广。最后本论文对所做的工作地总结并展望了本嵌入式系统的其它应用。关键词:嵌入式; WEB服务器; 远程控制; ARM; Internet应用Abstract:With the rapid development of computer technology,embedded system is more and more widely used. By now, embedded computer system is much more than common computer in quantity: there are about 5-10 microprocessor in the peripheral equipment of a computer. At the mean time, lots of network equipments become the new application environment of embedded system since the progressively development of network technology. The cheap and powerful microprocessor and various kinds of peripheral equipments have make the hardware frames of all kinds of embedded applications stable and reliable. Since 1990s ,ARM which is 32-bit embedded RISC microprocessor,has been spread to the range of the world and occupied in the field of application of low consumption, low cost and high performance embedded system.Because its excellent kernel design and application performance, Linux is running on many kinds of hardware .Linux also owns other merits such as its free source code, its inherit networking functions and its modularization design in kernel. Therefore Linux is very suitable to be the operate system of embedded system. uClinux is a branch of embedded Linux And it is designed for NO-MMU CPU.In this thesis, the embedded Linux system based on ARM has been developed .The embedded hardware system was designed taking Samsung ARM7TDMI CPU as core. And a small uClinux system can be developed. This thesis introduces one application embedded web server and its protocol-HTTP. We have already solved the problem of developing ARM and rescarched the project of developing ARM.The important thing is that we successfully solved the difficultyes of porting uClinux into ARM hardware platform. This provides with a higher practice and research value in the field of studying embedded system. Our embedded system has the characters of low cost and high efficiency. At last, a sum-up and prospect of some other usage of Linux embedded system are given.Keywords: Embedded; WEB servers; Remoto control;ARM;Internet Application1 前 言随着互联网技术在全球的飞速发展,网络技术广泛应用于各种企业和工业系统,越来越多的信息化产品需要能够接入互联网通过web页面进行远程访问和控制。嵌入式web服务器是当今研究嵌入式的应用热点,可广泛的应用到工业设备,自动化农业,信息化家电,远程监控报警系统等。目前正在开发的嵌入式系统中,将近一半的项目都选用Linux作为嵌入式操作系统,而uClinux是一个经过对标准Linux内核改动,高度优化、代码紧凑的嵌入式Linux它保留了Linux的大多数优点,具有良好的移植性、优秀的网络功能123。目前,基于三星S3C4510b与uClinux下web服务器已经实现,而基于S3C44B045与uClinux下web服务器的实现尚不多见。本文通过网口控制芯片RTL8109AS与S3C44B0的连接,实现了硬件设计,采用uClinux源代码和boa服务器源代码的编译以及CGI网关接口程序的编写实现了软件设计,在自行设计的S3C44B0开发板上实现了基于uClinux下的boa服务器和动态网页CGI网关接口程序,通过浏览器输入开发板的IP地址就可以动态地访问开发板上的网页,通过网页控制远程电机执行相关操作。1.1 嵌入式系统现状及发展趋势在当前的数字信息技术和网络技术高速发展的信息时代,嵌入式系统已经广泛的渗入到人们的生产,生活等各个方面中。随着国内外嵌入式产品的进一步开发和推广,嵌入式技术越来越和人们的生活紧密相结合。嵌入式系统技术涉及到硬件软件技术,已经成为目前最热门的技术之一。1.1.1 嵌入式系统的理解一般来说,嵌入式系统是“执行专用功能并被内部计算机控制的设备或者系统。嵌入式系统不能使用通用型计算机,而且运行的是固化的软件,用术语表示就是固件(firmware),终端用户很难或者不可能改变固件。”1.1.2 嵌入式系统特点及应用领域与通用型计算机系统相比,嵌入式系统功耗低、可靠性高;功能强大、性能价格比高;实时性强,支持多任务;占用空间小,效率高;面向特定应用,可根据需要灵活定制。 嵌入式系统应用广泛:可用于移动计算平台(PDA、掌上计算机),信息家电(数字电视、机顶盒、网络设备),无线通信设备(智能手机、股票接收设备),工业/商业控制(智能工控设备、POS/ATM机),电子商务平台,甚至军事应用等诸多领域。据估计,其在全球每年带来的相关工业产值已超过1万亿美元。1.1.3 嵌入式系统的发展趋势Internet功能成为必然趋势随着二十一世纪的来临、全球化的趋势越来越明显、Internet作为获取信息的便捷手段,已逐渐被人们所共识。另外,未来Internet接入设备将呈现多元化的特征,因此嵌入式操作系统作为嵌入式Internet接入设备的灵魂必然向完善的Internet支持方向发展,并随着Internet的发展而发展。SOC(System on Chip)随着微电子技术的快速发展,软件硬件的紧密结合,SOC将成为趋势。这不仅能降低成本、缩小产品体积,还可以增强产品的可靠性。无线互联近几年来,无线互联已成为发展的主流,全球知名厂商纷纷推出自己的无线互联的解决方案。嵌入式设备,特别是消费电子类产品,具有很强的移动性,所以嵌入式操作系统对于无线互联的支持显得尤为重要,以实现任何人在任何地方任何时间获取任何信息。个性化与标准化并存 由于嵌入式设备种类繁多、千差万别,因而具有很强的个性特征。嵌入式操作系统为了满足这些需求,必须在个性化和标准化之间达到平衡以实现最优。嵌入式操作系统产业关联度大,市场前景好。发展嵌入式软件将有利于增强企业持续创新能力,有利于刺激消费,有利于培植新的经济增长点。中国有巨大的市场需求,有从事操作系统方面的开发队伍,中国企业呼唤中国的操作系统。1.2 嵌入式操作系统嵌入式操作系统由一个体积很小的内核及一些可以根据需要进行定制的系统模块组成。能够运行在各种不同的硬件平台上,提供最基本的程序运行环境和接口,成为应用软件运行的基础。1.2.1嵌入式操作系统的概述67嵌入式操作系统EOS(Embedded OperatingSystem)是一种用途广泛的系统软件,过去它主要应用于工业控制和国防系统领域。EOS负责嵌人系统的全部软、硬件资源的分配、调度工作,控制协调并发活动;它必须体现其所在系统的特征,能够通过装卸某些模块来达到系统所要求的功能。目前,已推出一些应用比较成功的EOS产品系列。随着Internet技术的发展、信息家电的普及应用及EOS的微型化和专业化,EOS开始从单一的弱功能向高专业化的强功能方向发展。嵌人式操作系统在系统实时高效性、硬件的相关依赖性、软件固态化以及应用的专用性等方面具有较为突出的特点。嵌入式操作系统作为嵌入式系统的核心。能运行于各种类型的微处理器上,兼容性好;内核精小、效率高,具有高度的模块化和扩展性;具备文件和目录管理、设备支持、多任务、网络支持、图形窗口以及用户界面等功能;具有大量的应用程序接口API;嵌入式应用软件丰富。1.2.2 嵌入式操作系统的特点 实时性在信息时代,人们需要在有效的时间里对接受的信息进行处理,为进一步的工作和决策争取时间,这就要求工作系统具有很高的实时性。所谓实时性,其核心含义在于操作系统在规定时间内准确完成应该做的事情,并且操作系统的执行线索是确定的,而不是单纯的速度快。 大多数嵌入式操作系统工作在对实时性要求很高的场合,主要对仪器设备的动作进行检测控制,这种动作具有严格的、机械的时序;而一般的桌面操作系统基本上是根据人在键盘和鼠标发出的命令进行工作,人的动作和反应在时序上并不很严格。比如,用于控制火箭发动机的嵌入式系统,它所发出的指令不仅要求速度快,而且多个发动机之间的时序要求非常严格,否则就会失之毫厘,谬以千里。在这样的应用环境中,非实时的普通操作系统无论如何是无法适应的。即使我们所开发的并不是生命攸关的或者生产控制那样的关键任务系统,例如对嵌入式操作系统应用来说很有前途的领域-消费电子产品,设备的高可靠性可以有效地减低维护成本,软件运行效率高也会降低对CPU的要求,从而降低硬件成本。对于此类价格十分敏感的产品,实时性、可靠性仍然是非常值得重视的问题。因此,实时性是嵌入式系统最大的优点,在嵌入式软件中最核心的莫过于嵌入式RTOS实时操作系统。 可剪裁性能否根据悠扬的乐曲对系统的功能模块进行配置是嵌入式系统与普通系统的另一区别。这可以从以下几个方面分析:i. 从硬件环境来看,普通系统具有标准化的CPU存储和I/O架构,而嵌入式环境的硬件环境只有标准化的CPU,没有标准的存储、I/O和显示器单元。ii. 从应用环境来看,桌面操作系统面向复杂多变的应用,而嵌入式操作系统面向单一设备的固定的应用。iii. 从开发界面来看,桌面操作系统给开发人员提供一个“黑箱”,让开发人员通过一系列标准的系统调用来使用操作系统的功能,而嵌入式试图为开发人员提供一个“白箱”,让开发人员可以自主控制系统的所有资源。普通系统的研究开发是尽可能在不改变自身的前途下具有广泛的适应性。也就是说:不论应用环境怎么改变,都不应对自身做太多的变化。而应用于嵌入式环境的RTOS,在研发的时候就必须立足于面向对象,改变自身、开放自身,让开发人员可以根据硬件环境和应用环境的不同而对操作系统进行灵活的裁剪和配置,因为对于任何一个具体的嵌入式设备,它的功能是确定的,因此只要从原有操作系统中把这个特定应用所需的功能拿来即可以。可剪裁性在软件工程阶段是利用软件配置方法实现软件构建的“即插即用”。 可靠性一般来说,嵌入式系统一旦开始运行就不需要人的过多干预。在这种条件下,要求负责系统管理的嵌入式操作系统具有较高的稳定性和可靠性。而普通操作系统则不具备这种特点。这导致桌面操作环境与嵌入式环境在设计思路上有重大的不同。i. 桌面环境假定应用软件与操作系统相比而言是不可靠的,而嵌入式环境假定应用软件与操作系统一样可靠。运行于嵌入式环境中的RTOS要求应用软件具有与操作系统同样的可靠性,这种设计思路对应用开发人员提出了更高的要求,同时也要求操作系统自身足够开放。ii. 桌面操作系统比较庞大复杂,而嵌入式系统提供的资源有限,由于硬件的限制,嵌入式操作系统必须小巧简捷。对于系统来说,组成越简单、性能越可靠,组成越复杂,故障概率越大是一个常理。局部的不足会导致整体的缺陷,系统中任何部分的不可靠都会导致系统整体的不可靠。89101.2.3 嵌入式操作系统的发展趋势目前各种嵌入式Linux操作系统正迅速发展,已经形成了能与Windows CE等嵌入式操作系统进行有力竞争的局面。嵌入式Linux操作系统的迅速崛起,主要由于人们对自由软件的渴望与嵌入式系统应用的特制性,要求提供系统源码层次上的支持,而嵌入式Linux正适应了这一需求,它不仅具有开放源代码,系统内核小、效率高、内核网络结构完整,裁减后的系统很适于如信息家电等嵌入式系统的开发。嵌入式Linux操作系统的产品化及可靠性是目前受制约的一个重要因素。 微软的Win CE是一个较具代表性的、由桌面操作系统演变而成的实时嵌入式操作系统。虽然提供了较为强大的类似于桌面操作系统的功能,但针对嵌入式系统的特征与特性而言,Win CE显得笨拙且在内核结构的设计中并未考虑适应系统的高度可裁减性的要求。以VxWorks为代表的传统嵌入式操作系统是应用最广泛、市场占有率较具优势的几个系统,它们是专门为嵌入式微处理器设计的高模块化、高性能的实时操作系统,广泛应用于高科技产品中,包括消费电子设备、工业自动化、无线通信产品、医疗仪器、数字电视与多媒体设备,具有很好的安全性、容错性以及系统灵活性。虽然它们都提供专有的API接口,但是缺乏应用的高效性,网络连接功能较差,系统对应用程序开发支持相对较弱。对现在复杂的、网络化的、多处理器的嵌入式系统的许多应用需要而言,它已显得力不从心。 随着硬件技术、应用需求和开发需求的变化,如,微电子技术-芯片的集成技术和片上系统;强实时、高可靠应用需求-飞机、火箭控制等;开发需求-信息家电需要越来越多的研究和设计人员参与嵌入系统的开发,如同台式系统一样嵌入系统需要使用方便、功能强大的开发系统,嵌入操作系统也需要支持面向对象和可重用等技术。111213141.2.4 几种主流嵌入式操作系统的比较在嵌入式操作系统中,可供选择的有很多,比如winCE,VxWorks,uClinux,cos等,但是如WinCE,VxWorks等价格比较高的操作系统就不予考虑了。uClinux和ucos都是不错的选择。比较ucos和uClinux: ucos和uClinux操作系统,是当前得到广泛应用的两种免费且公开源码的嵌入式操作系统。uc/os适合小型控制系统,具有执行效率高、占用空间小、实时性能优良和可扩展性强等特点,最小内核可编译至2k。uClinux则是继承标准linux的优良特性,针对嵌入式处理器的特点设计的一种操作系统,具有内嵌网络协议、支持多种文件系统,开发者可利用标准linux先验知识等优势。其编译后目标文件可控制在几百k量级。 ucos是一种免费公开源代码、结构小巧、具有可剥夺实时内核的实时操作系统。其内核提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。其内核是针对实时系统的要求设计实现的,相对简单,可以满足较高的实时性要求。 uClinux是一种优秀的嵌入式linux版本15。uClinux是micro-conrol-linux的缩写。同标准linux相比,它集成了标准linux操作系统的稳定性、强大网络功能和出色的文件系统等主要优点。但是由于没有mmu(内存管理单元),其多任务的实现需要一定技巧。在结构上继承了标准linux的多任务实现方式,仅针对嵌入式处理器特点进行改良。还继承了linux网络操作系统的优势,可以很方便的支持网络文件系统且内嵌TCP/IP协议,这为uClinux开发网络接入设备提供了便利。根据以上比较,在开源性,结构上面ucos和uClinux都比较好,体积上ucos更小,但是uClinux在网络上支持比较好,在实现多个移动机器人交互时比较方便,ucos在实时性方面比较好,uClinux是分时系统,如果要实现实时的话需要带有RTlinux模块。鉴于我们采用ARM系列的高性能单片机,我们不需要采用实时性比较高的操作系统,加上考虑以后的网络扩展等,uClinux也相对比较容易实现,加上uClinux资料相对多,所以最终方案决定采用uClinux。1.3 ARM概述及其应用领域ARM 即Advanced RISC Machines 的缩写, ARM嵌入式处理器是一种高性能、低功耗的RISC芯片。采用ARM技术IP核的微处理器遍及汽车、消费电子、成像、工业控制、海量存储、网络、安保和无限等各类产品市场。目前,基于ARM技术的处理器已经占据了32位RISC芯片75的市场份额。可以说,ARM技术几乎无处不在。1.3.1 ARM概述ARM(Advanced RISC Machines),既可以认为是一个公司的名字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。1617181991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前,采用ARM技术知识产权(IP)核的微处理器,即我们通常所说的ARM微处理器,已遍及工业控制、消费类电子产品、通信系统、网络系统、无线系统等各类产品市场,基于ARM技术的微处理器应用约占据了32位RISC微处理器75以上的市场份额,ARM技术正在逐步渗入到我们生活的各个方面。ARM公司是专门从事基于RISC技术芯片设计开发的公司,作为知识产权供应商,本身不直接从事芯片生产,靠转让设计许可由合作公司生产各具特色的芯片,世界各大半导体生产商从ARM公司购买其设计的ARM微处理器核,根据各自不同的应用领域,加入适当的外围电路,从而形成自己的ARM微处理器芯片进入市场。目前,全世界有几十家大的半导体公司都使用ARM公司的授权,因此既使得ARM技术获得更多的第三方工具、制造、软件的支持,又使整个系统成本降低,使产品更容易进入市场被消费者所接受,更具有竞争力。1.3.2 ARM微处理器的特点及应用领域采用RISC架构的ARM微处理器一般具有如下特点:1、具有大量的寄存器。绝大多数操作都在寄存器中进行,通过Load/Store的体系结构在内存和寄存器之间传递数据。2、寻址方式简单。3、采用固定长度的指令格式。4、除此之外,Arm体系采用了一些特别的技术,在保证高性能的同时尽量减小芯片体积,减低芯片的功耗。这些技术包括:5、在同一条数据处理指令中包含算术逻辑处理单元处理和移位处理。6、使用地址自动增加(减少)来优化程序循环处理。7、Load/Store指令可以批量传输数据,从而提高数据传输的效率。8、所有指令都可以根据前面指令执行结果,决定是否执行,以提高指令执行的效率。到目前为止,ARM微处理器及技术的应用几乎已经深入到各个领域:1、工业控制领域:作为32的RISC架构,基于ARM核的微控制器芯片不但占据了高端微控制器市场的大部分市场份额,同时也逐渐向低端微控制器应用领域扩展,ARM微控制器的低功耗、高性价比,向传统的8位/16位微控制器提出了挑战。2、无线通讯领域:目前已有超过85%的无线通讯设备采用了ARM技术, ARM以其高性能和低成本,在该领域的地位日益巩固。3、网络应用:随着宽带技术的推广,采用ARM技术的ADSL芯片正逐步获得竞争优势。此外,ARM在语音及视频处理上行了优化,并获得广泛支持,也对DSP的应用领域提出了挑战。4、消费类电子产品:ARM技术在目前流行的数字音频播放器、数字机顶盒和游戏机中得到广泛采用。5、成像和安全产品:现在流行的数码相机和打印机中绝大部分采用ARM技术。手机中的32位SIM智能卡也采用了ARM技术。除此以外,ARM微处理器及技术还应用到许多不同的领域,并会在将来取得更加广泛的用。1.3.3 ARM7TDMI系列的原理与特点ARM7系列微处理器核集成了16位的Thumb指令系统,具有32位机的性能,816位机的成本,其低成本和低功耗的特性在消费电子领域显得尤为重要。ARM7系列有四种32位RISC微处理器核ARM7TDMI、ARM7TDMI-S、ARM7EJ-S和ARM720T,其微处理器核体系结构比较如下表所示。ARM7系列微处理器核体系结构比较arm7tdmiarm7tdmi-sarm7ej-sarm720t内存管理单元MMU*高速缓存Cache8KB外围总线接口*Java功能模块*ICE调试*ETM7接口*ETM9*Thumb扩展*ARMv4T指令集架构*ARMvT5EJ*ARM7内核*相比ARM7TDMI微处理器核而言,ARM7EJ-S集成了增强的数字信号处理技术和Java技术,ARM720T增加了高速缓存、AHB(Advanced High-performance Bus)外部总线接口和存储器管理单元,兼容先进的嵌入式实时操作系统如Linux、Palm OS、Symbian OS和Windows CE等。然而,ARM7系列微处理器核具有以下基本特性。 .Von Neumman计算机结构; >指令执行3级流水线结构,运行速度高达0.9MIPSMHz; >代码密度高并兼容16的Thumb指令集: >嵌入式ICE实时调试功能; >具有协处理器接口; >指令的向上兼容; >极低功耗至6.65mW0.13gm; >体积小0.26mm20.13gm。 ARM7TDMI是低端ARM微处理器核,是使用广泛的32位RISC处理器,其TDMI的含义如下。T:支持16位Thumb指令集;D:支持片上调试(Debug);M:内嵌硬件乘法器(Multiplier);I:支持片上断点核调试点,嵌入式在电路仿真器(InCircuit Emulator)。图(1-1)图(1-2 )ARM单周期指令三级流水线操作1.4 嵌入式WEB服务器 嵌入式Linux的应用涉及面很广,包括网络设备、信息家电、机顶盒、工业控制、数据采集、测试等各个方面的应用。由于Linux强大的网络功能,使得嵌入式Linux在网络设备的应用显得尤为突出。连入互联网的嵌入式系统的出现,将给地球披上“电子皮肤”,嵌入式片上系统(SOC)被称为“瘦服务器”。预测未来Internet将向何处去,这是全世界科学家关心的问题,包括美国贝尔实验室总裁Arun Netravali 在内的一批科学家对此作出了预测:在这阶段“将会产生比PC时代成百上千倍的瘦服务器和超级嵌入式瘦服务器,这些瘦服务器将与这个世界你能想到的各种物理信息、生物信息相联接,通过Internet网自动地、实时地、方便地、简单地提供给需要这些信息的对象”。由此可见,如何设计和制造嵌入式瘦服务器、嵌入式网关和嵌入式因特网路由器已成为嵌入式Internet时代的关键和核心技术。HTTP(Hypertext Transfer Protocol,超文本传输协议)协议是WWW的核心机制中的重要组成部分。在WEB网站开发过程中,对HTTP协议的信息格式进行分析和有针对性的应用,是提高网站效率、增强网站功能的一条有效途径。HTTP协议是WEB服务器使用的主要协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。经过十多年的使用与发展,已经得到了不断的完善和扩展。1.5 研究工作及本论文内容本论文在分析了国内外嵌入式系统研究后,提出了自己的方案。目前国内外嵌入式系统研究主要有以下几个层次:硬件平台,软件平台都是买来的,就搞应用开发;硬件平台是买来的,软件自己开发;硬件,软件平台都是自己开发,这个有很大的难度和挑战性;本论文经过综合分析,比较,采用了第二种方式。在实际开发过程中,我们针对具体问题,先考虑嵌入式系统的整体设计,在大方向上定位我们的嵌入式操作系统为嵌入式Linux系统。然后开始我们的硬件选择,在选择嵌入式CPU上,因为ARM7TDMI是一种高效,低功耗的RISC处理器,所以在系统中采用了这个核心。最后,要选择具体的Linux系统来移植到我们的硬件上,因为我们的处理器的主要特征是没有MMU(内存管理单元),而uClinux是嵌入式Linux的一个分支,在支持无MMU的嵌入式系统中具有较好的技术优势,所以选用了uClinux嵌入式系统。 基于此,本论文构造了一个uClinux嵌入式操作系统,将它烧写到2M的flash中,并在这个系统中实现了一个嵌入式WEB服务器的应用,分析了HTTP协议,通过这个应用,我们完全可以举一反三,开发其它更多的应用。2 ARM开发平台的搭建2.1 ARM开发平台的结构图(2-1)开发板整体框架图开发板主要硬件规格: Samsung S3C44B0X 66MHz(ARM7内核) 8M SDRAM 2M FLASH 10M 以太网接口 2个RS232 接口 14针JTAG调试接口图(2-2)系统结构框图2.2 U-boot烧写与配置U-Boot,全称Universal Boot Loader,是遵循GPL条款的开放源码项目。从FADSROM、8xxROM、PPCBOOT逐步发展演化而来。其源码目录、编译形式与Linux内核很相似,事实上,不少U-Boot源码就是相应的Linux内核源程序的简化,尤其是一些设备的驱动程序,这从U-Boot源码的注释中能体现这一点。但是U-Boot不仅仅支持嵌入式Linux系统的引导,当前,它还支持NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS嵌入式操作系统。其目前要支持的目标操作系统是OpenBSD, NetBSD, FreeBSD,4.4BSD, Linux, SVR4, Esix, Solaris, Irix, SCO, Dell, NCR, VxWorks, LynxOS, pSOS, QNX, RTEMS, ARTOS。这是U-Boot中Universal的一层含义,另外一层含义则是U-Boot除了支持PowerPC系列的处理器外,还能支持MIPS、x86、ARM、NIOS、XScale等诸多常用系列的处理器。这两个特点正是U-Boot项目的开发目标,即支持尽可能多的嵌入式处理器和嵌入式操作系统。就目前来看,U-Boot对PowerPC系列处理器支持最为丰富,对Linux的支持最完善。其它系列的处理器和操作系统基本是在2002年11月PPCBOOT改名为U-Boot后逐步扩充的。从PPCBOOT向U-Boot的顺利过渡,很大程度上归功于U-Boot的维护人德国DENX软件工程中心Wolfgang Denk以下简称W.D本人精湛专业水平和持着不懈的努力。当前,U-Boot项目正在他的领军之下,众多有志于开放源码BOOT LOADER移植工作的嵌入式开发人员正如火如荼地将各个不同系列嵌入式处理器的移植工作不断展开和深入,以支持更多的嵌入式操作系统的装载与引导。选择U-Boot的理由: 开放源码; 支持多种嵌入式操作系统内核,如Linux、NetBSD, VxWorks, QNX, RTEMS, ARTOS, LynxOS; 支持多个处理器系列,如PowerPC、ARM、x86、MIPS、XScale; 较高的可靠性和稳定性; 较高的可靠性和稳定性; 高度灵活的功能设置,适合U-Boot调试、操作系统不同引导要求、产品发布等; 丰富的设备驱动源码,如串口、以太网、SDRAM、FLASH、LCD、NVRAM、EEPROM、RTC、键盘等; 较为丰富的开发调试文档与强大的网络技术支持;2.2.1 U-boot烧写到开发板可以通过开发板配套开发板中提供的U-boot.bat,批处理文件便可烧写U-boot到开发板。U-boot.bat的内容是:allowio.exe FluteD /a a -f U-boot.bin -v -s 0还可以通过JTAG烧写U-boot.bin二进制文件到FLASH中。2.2.2 运行U-boot的相关设置go : 启动在地址“addr”处的应用程序bootm: 引导应用程序或操作系统内核(压缩格式)tftp: 通过以太网(tftp协议)加载程序loadb: 通过串口下载程序md: 显示内存内容cp: 复制内存(同时也是烧写flash)prinenv: 打印环境变量setenv: 设置环境变量saveenv: 保存环境变量erase: 擦除flash内容 2.3下载及烧写uClinux需要把uClinux的镜像文件烧写到FLASH以固化,这样不用每次启动板子都要重新下载一遍内核。通动修改U-boot的设置和uClinux的 rc文件,我们便可以让板子加电自动加载uClinux系统及系统自动加载项。2.3.1 配置minicom相关参数为:波特率:115200数据位:8位奇偶校验位:无奇偶校验位停止位:1位流控制:无流控制2.3.2 内核烧写第一、通过tftp把uClinux内核镜像下载到SDRAM中:建立好tftp服务器,在minicom终端输入命令tftp 0x0c400000,等待下载完成。第二、擦除flash命令:erase 0x50000 0x 1fffff(0x0-0x3ffff是bootloader代码,0x40000-0x4ffff是参数保留区,所以只能从0x50000开始)第三、写入代码cp 0x0c008000 0x50000 n( n是你写入文件大小(16进制大小)/4得到的值)注:我们采用的压缩内核,uClinux的内核被压缩后存入flash,由bootloader解压到SDRAM中执行。解压需要稍等片核。登入压缩内核的命令是:bootm2.4 加载uClinux当我们把内核下载到flash以后,下一次加载uClinux内核,只要加电,u-boot便会自动加载uClinux,一直到uClinux启动加载完成。3 uClinux系统3.1 uClinux系统简介Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。3.2 uClinux的内存管理应该说uClinux同标准Linux的最大区别就在于内存管理,同时也由于uClinux的内存管理引发了一些标准Linux所不会出现的问题。对于uClinux来说,其设计针对没有MMU的处理器,即uClinux不能使用处理器的虚拟内存管理技术(应该说这种不带有MMU的处理器在嵌入式设备中相当普偏)。uClinux仍然采用存储器的分页管理,系统在启动时把实际存储器进行分页。在加载应用程序时程序分页加载。但是由于没有MMU管理,所以实际上uClinux采用实存储器管理策略(real memeory management)。这一点影响了系统工作的很多方面。 uClinux系统对于内存的访问是直接的,(它对地址的访问不需要经过MMU,而是直接送到地址线上输出),所有程序中访问的地址都是实际的物理地址。操作系统对内存空间没有保护(这实际上是很多嵌入式系统的特点),各个进程实际上共享一个运行空间(没有独立的地址转换表)。 虽然uClinux的内存管理与标准Linux系统相比功能相差很多,但应该说这是嵌入式设备的选择。在嵌入式设备中,由于成本等敏感因素的影响,普偏的采用不带有MMU的处理器,这决定了系统没有足够的硬件支持实现虚拟存储管理技术。从嵌入式设备实现的功能来看,嵌入式设备通常在某一特定的环境下运行,只要实现特定的功能,其功能相对简单,内存管理的要求完全可以由开发人员考虑。3.3 uClinux系统的内核构造a