完整版嵌入式Web服务器Boa的移植及其应用毕业设计.docx
《完整版嵌入式Web服务器Boa的移植及其应用毕业设计.docx》由会员分享,可在线阅读,更多相关《完整版嵌入式Web服务器Boa的移植及其应用毕业设计.docx(27页珍藏版)》请在冰豆网上搜索。
完整版嵌入式Web服务器Boa的移植及其应用毕业设计
嵌入式Web 服务器Boa 的移植及其应用
中文摘要
计算机技术发展到今天,嵌入式系统的应用越来越广泛嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器。
而随着网络技术日新月异的发展,各种网络器件成为嵌入式系统新的应用。
微处理器产生后,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构。
20世纪90年代,ARM32位嵌入式RISC处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。
Linux因其可应用于多种硬件平台;是免费软件,源代码可以得到;微内核,本身内置网络支持和高度模块化等优点,非常适合做嵌入式开发的操作系统。
本论文主要研究了基于ARM的嵌入式Linux开发。
这个研究开发是在实践的基础上完成的,设计了以三星ARM920TCPU为核心的嵌入式硬件系统,并在此基础上嵌入linux系统,在linux系统上可以开发各种应用
关键词:
嵌入式、ARM9、BOA、RISC
EmbeddedWebserverBoatransplantandapplication
ABSTRACT
Withtherapiddevelopmentofcomputertechnology,embeddedsystemismoreandmorewidelyused.Bynow,embeddedcomputersystemismuchmorethancommoncomputerinquantity,thereareabout5-10microprocessorintheperipheralequipmentofacomputer.Atthemeantime,lotsofnetworkequipmentsbecomethenewapplicationenvironmentofembeddedsystemsincetheprogressivelydevelopmentofnetworktechnology.Thecheapandpowerfulmicroprocessorsandvariouskindsofperipheralequipmentsspreadtotherangeoftheworld,andoccupiedinthefieldofapplicationoflowconsumption,lowcostandandapplicationperformance,Linuxisrunningonmanykindsofdesigninkernel.ThereforeLinuxisverysuitabletobetheoperatesystemofembeddedsystem.
Inthisthesis,theembeddedLinuxsystembasedonARMdeveloped.Theembeddedinlinuxsystemcanbedeveloped.
Keywords:
Embedded、ARM9、BOA、RISC
毕业论文(设计)原创性声明
本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。
据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。
对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。
作者签名:
日期:
毕业论文(设计)授权使用说明
本论文(设计)作者完全了解**学院有关保留、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。
有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。
学校可以公布论文(设计)的全部或部分内容。
保密的论文(设计)在解密后适用本规定。
作者签名:
指导教师签名:
日期:
日期:
注意事项
1.设计(论文)的内容包括:
1)封面(按教务处制定的标准封面格式制作)
2)原创性声明
3)中文摘要(300字左右)、关键词
4)外文摘要、关键词
5)目次页(附件不统一编入)
6)论文主体部分:
引言(或绪论)、正文、结论
7)参考文献
8)致谢
9)附录(对论文支持必要时)
2.论文字数要求:
理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。
3.附件包括:
任务书、开题报告、外文译文、译文原文(复印件)。
4.文字、图表要求:
1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写
2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。
图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画
3)毕业论文须用A4单面打印,论文50页以上的双面打印
4)图表应绘制于无格子的页面上
5)软件工程类课题应有程序清单,并提供电子文档
5.装订顺序
1)设计(论文)
2)附件:
按照任务书、开题报告、外文译文、译文原文(复印件)次序装订
3)其它
1绪论1
1绪论
随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分,并成为近年来新兴的研究热点。
嵌入式操作系统产业关联度大,市场前景好.发展嵌入式软件将有利于增强企业持续创新能力。
其中,Linux由于自身的优良特性,几乎是天然地适合作为嵌入式操作系统。
Linux的主要优势在源码开放,不用交纳版权费用;功能强大,稳定,健壮;并且有着非常优秀的网络功能,图像,文件管理功能,以及多任务支持功能;可定制性;有成千上万的开发人员支持;有大量的且不断增加的开发工具基于以上原因使得Linux成为很适合嵌入式开发的操作系统,嵌入式领域将是Linux最大的发展空间。
ARM即AdvancedRISCMachines的缩写,由英国AdvancedRISCMachines(ARM)Limited公司设计。
ARM公司是设计公司,本身不生产芯片,只提供知识产权(UP).ARM公司是32位嵌入式RISC微处理器领域的领先供应商,在世界范围有超过300个的合作伙伴—包括半导体工业的著名公司,从而导致了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场,参考文献[1][2]
本论文构造了一个基于ARM的嵌入式Linux操作系统,由于我们采用的是ARM920T核的三星S3C2410XCPU,该CPU的其中一个特点具有全性能的MMU,所以选择了Linux作为我们的嵌入式操作系统,并把它嵌入到flash中,我们的系统己经实现了正常启动、运行并支持基本的网络功能,在linux基础上,我们还可以开发各种应用。
1.1嵌入式系统及其发展趋势
嵌入式设备是指具有计算机功能,但又不称为计算机的设备或器材,嵌入式系统已成为当今最为热门的领域之一,它几乎包括了我们周围的所有电器设备:
PDA、手机、机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、立体音响、自动取款机等。
和通用计算机不同,嵌入式系统是针对具体应用的专用系统,一般具有成本敏感性,它的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。
好的嵌入式系统是完成目标功能的最小系统,从嵌入式的应用考虑在未来的发展中主要考虑如下几个方向:
●Internet功能成为必然趋势
随着二十一世纪的来临、全球化的趋势越来越明显、Internet作为获取信息的便捷手段,已逐渐被人们所共识。
另外,未来Internet接入设备将呈现多元化的特征,因此嵌入式操作系统作为嵌入式Internet接人设备的灵魂必然向完善的Internet支持方向发展,并随着Internet的发展而发展。
●SOC(SystemonChip)
随着微电子技术的快速发展,软件硬件的紧密结合,SOC将成为趋势。
这不仅能降低成本、缩小产品体积,还可以增强产品的可靠性。
无线互联近几年来,无线互联已成为发展的主流,全球知名厂商纷纷推出自己的无线互联的解决方案。
嵌入式设备,特别是消费电子类产品,具有很强的移动性,所以嵌入式操作系统对于无线互联的支持显得尤为重要,以实现任何人在任何地方任何时间获取任何信息。
●个性化与标准化并存
由于嵌入式设备种类繁多、千差万别,因而具有很强的个性特征。
嵌入式操作系统为了满足这些需求,必须在个性化和标淮化之间达到平衡以实现最优。
嵌入式操作系统产业关联度大,市场前景好。
发展嵌入式软件将有利于增强企业持续创新能力,有利于刺激消费,有利于培植新的经济增长点。
参考文献[2][3]
1.2嵌入式操作系统概述[2][3][6]
嵌入式系统(EmbeddedSystems)可以定义为:
以应用为中心的、以计算机技术为基础,软件,硬件可裁剪,适应于应用系统,对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。
它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部份组成。
它具有“嵌入性”、“专用性”、与“计算机系统”的三个基本要素。
简单的嵌入式系统一般并不使用操作系统,只包含一些控制流程,但是当嵌入式系统所提供的功能复杂化之后(如:
图形用户界面和网络支持等),简单的流程控制就不能满足系统的要求,这时就必须考虑使用操作系统做系统软件。
这时,嵌入式操作系统(EmbeddedOperatinBSystem,EOS)就应运而生。
随着EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。
随着各种应用的出现,EOS也从单一的弱功能向高专业化的强功能方向发展,归纳起来EOS应该有以下几个特点:
小的系统内核;较强的实时性,多任务功能;能够提供各种设备驱动程序;提供图形界面;提供TCPIP,PPP等协议支持。
1.2.1几种嵌入式操作系统的分析[2]
目前市场上流行的,使用最多的EOS产品包括有:
windowsCE,LYNXvVxwork,QNX,PowerTV公司的rowerTVOSt3Com公司的PalmOS,Microware公司的David和OS-9,ISI(IntematedSystemsinc)公司的OSEKWorks和pSOSystem等。
除了商业化的操作系统外还有一些非商业化的嵌入式操作系统可以便用,其中嵌入式Linux将成为完全可以和WindowsCE等EOS相抗衡的0S
1.WindowsCE.WindowsC是微软开发的一个开放的、可以升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。
它是精简Windows95。
WindowsCE的图形用户界面相当出色。
WindowsCE具有模块化、结构化和基于Win32应用程序接口以及处理器无关等特点。
它不仅继承了传统的windows图形界面,并且用户在windowsCE平台上可使用windows9598上的编程工具(如VisualBasic、visaul++等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数windows上的应用软件只需要简单修改和移植就可以在windowsCE平台上继续使用。
但与Vxworks相同,WindowsCE也比较昂贵的。
2.VxworksVxworks是WindRiverSystem公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率最高的嵌入式操作系统。
Vxworks的实时性做得非常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。
另外Vxworks提供的多任务机制,对任务的控制采用了优先级抢占和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。
另外Vxworks具有高度的可靠性,从而保证了用户工作环境的稳定,同时,Vxworks还有很完备强大的集成开发环境,这也大方便了用户的使用。
以其优良的可靠性、开放性、实时性和易用性赢得了大量的客户。
但是由于Vxworks的开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。
同时由于Vxworks的源码不公开,造成部分功能的更新滞后。
3.QNXQNX是QuantumnSoftwareSystem公司研制的基于PC的实时多任务的、可扩展的操作系统,它具有微内核结构,QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一,它具有独一无二的微内核实时平台,是建立在微内核和完全地址空间保护基础之上的,它同样具有实时性强、稳定可靠的优点。
用户可根据需要选择其中一些组件来定制操作系统。
4.PalmOS.PalmOS是一种专为掌上设备设计的32位操作系统,它运行在一个抢占式的多任务内核之上。
同一时刻用户界面仅仅允许一个应用程序被打开,这个被打开的程序将控制整个屏幕,应用程序始终运行在单用户界面进程上,PlamOS最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的可操作性。
5.Linux.嵌入式Linux(EmbeddedLinux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。
在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux这与它自身的优良特性是分不开的。
嵌入式Linux同linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。
另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改进,Linux也逐渐应用于工作站及桌面PC。
同样,Linux以也因为它服务器OS的特性而成为一个下一个智能型嵌入式设备的理想操作系统。
1.2.2嵌入式Linux操作系统
嵌入式Linux由于代码开放性以及强大的网络功能,在中低端的嵌入式网络设备中的应用,比起pSOS,VxWorks有许多优势。
Linux现在甚至支持蓝牙技术。
开发嵌入式Linux产品,从产品上市时间到产品系列化,除人员以外所需的投入均较少。
相对于WindowsCE,QNX以及国内的HOPEN等嵌入式操作系统,嵌入式Linux以其特有的开放性、与生俱来的网络特性成为嵌入式操作系统的主流之一。
1.2.3嵌入式Linux系统的优势所在
1.充分满足硬件设备的实时性要求
严格要求的实时性的决定因素与中断例程本身和内核中的其他驱动程序有关;而响应延迟时间主要受中断的优先级和其他进程暂时地关闭中断响应的影响。
因此管理和驱动中断的机制必须保证实时要求。
根据这个要求,大多数嵌入式系统并不具备严格的实时性,而windowsCE基本上不具备实时性的特点。
但是,嵌入式Linux可以很好得满足实时性要求。
对Inx86处理器,实时扩充可以在Linim系统中很容易进行,RT-Linux就是很好的例子。
它主要是把Linux的任务作为自己的一个任务,因此实时性要求很高的任务不受非实时的Linux的干扰,可以得到满足。
另外还提供了实时任务和Linux的基本核心和其他任务间的接口。
2.具有很高的适应性和可靠性
和其他运行于PC的系统相比,因为Linux继承了Unix优点,在适应和稳定方面性能是非常突出的。
而嵌入式的Linux也是如此。
嵌入式Linux不仅支持x86芯片,而且是一个跨平台的系统,到目前为止可以支持二、三十种CPU。
很多CPU包括家电业的芯片,都开始做Linux的平台移植工作。
移植的速度远远超过JAVA的开发环境,这是值得注意的。
也就是说,如果今天采用Linux环境开发产品,那么将来换CPU时就不会遇到困扰。
同时,嵌入式Linux内核的结构在网络方面是非常完整的。
提供了包括十兆、百兆、干兆的以太网络以及无线网络、Tokenring(令牌环)、光纤甚至卫星的支持。
所以Linux很适于做通信设备的开发。
3.具有成熟的开发工具,可以跨越ICE等屏障
开发嵌入式系统的关键是需要一套好用的开发和调试工具,而且在开发所不同阶段还需要不同的工具。
传统的开发调试工具就是ICE一在线仿真器,它取代目标板的微处理器,给目标程序提供仿真环境,同时可以连接监视器,允许开发者调试和监视程序的运行。
但是,这种设备价格非常贵。
如果使用嵌入式Linux,就不用ICE也可以很好地开发和调试工作了、同时还降低开发费用。
嵌入式Linux利用GNU项目的C编译器来编译程序,使用gab源程序级调试器来调试程序。
它们提供了合适的手段来使客户能够开发嵌入式的Linux各种应用程序。
通过串口和gab通讯,可以进行C源程序级的调试。
甚至客户还可以用串口把其他的程序下装到RAM或flash存储器。
通过串口,使用gab可以便得软硬件的初始化代码继续运行到核心全部启动。
一旦核心运行了,就可以使用其他的更好的调试工具,象Kgdb等。
如果连接了网络,也可让网络工作起来。
同时客户就可以用GUI的xgdb来调试应用程序。
4.具有小巧的功能完善的内核
一般说来,需要使用嵌入式操作系统的硬件体积都十分有限,不能像一般的计算机那样采用海量存储器来进行数据存储。
一般是采用软件固化的方法,将程序和操作系统嵌入到整个产品里面。
在这个技术中减少操作系统的体积是关键。
我们不能想象在一个紧凑的硬件设备外面再接一个通用的硬盘或是打算将几十兆上百兆的操作系统输入到普通的ROM或者RAM里面去。
因此,对嵌入式系统来讲:
功能和体积是一对互斥事件。
而PSOS以及其他的一些操作系统,虽然内核只有几十K,但是要为相关的产品添加额外的功能,实际应用的时候体积在百K以上。
嵌入式1inux除了本身体积较少以外,还保留了Linux操作系统中非常有特色的一点:
用户可以自己裁减内核。
用户完全可以根据不同的任务来选定特定操作内核模块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛盾。
1.3嵌入式Web服务器
嵌入式Linux的应用涉及面很广,包括网络设备、信息家电、机顶盒、工业控制、数据采集、测试等各个方面的应用。
由于Linux强大的网络功能,使得嵌入式Linux在网络设备的应用显得尤其突出。
连入互联网的嵌入式系统的出现,将给地球披上“电子皮肤”,嵌入式片上系统(SystemOnaChip)被称为“瘦服务器”。
预测未来Internet将向何处去,这是全世界科学家关心的问题,科学家对此做出了预测:
在这阶段“将会产生比PC时代多成百上千倍的瘦服务器和超级嵌入式瘦服务器,这些瘦服务器将与这个世界你能想到的各种物理信息、生物信息相联接,通过Internet网自动地、实时地、方便地、简单地提供给需要这些信息的对象”。
由此可见,如何设计和制造嵌入式瘦服务器、嵌入式网关和嵌入式因特网路由器己成为嵌入式Internet时代的关键和核心技术。
(HypertextTransferProtocol,超文本传输协议)协议W的核心机制中的重要组成部分。
在Web网站开发过程中,P协议的信息格式进行分析和有针对性的应用,是提高网站效率、增强网站功能的一条有效的途TP协议是Web服务器使用的主要协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。
经过十多年的使用与发展,己经得到了不断的完善和扩展。
参考文献[1][7][15]
2嵌入式系统硬件
2.1嵌入式系统微处理器[1][7][12]
本论文采用的处理器是三星公司的S3C2410X。
S3C2410是使用ARM920T核、采用0.18um的工艺CMOS标准宏单元和存储编译器开发而成的。
由于采用了由ARM公司设计的1632位ARM920TRISC处理器,S3C2410X实现了MMU和独立的16KB数据哈佛结构和缓存,每个缓存均为8个字长的流水线,它的低功耗、精简而出色的全静态设计特别适用于对成本和功耗敏感的领域.
ARM920T支持32位ARM和16位Thumb双指令集,同时支持ARM调试体系结构,它既包含用于硬件调试的逻辑,也包含用于软件调试的逻辑。
具有哈佛型Cache体系结构,并提供一个完整的高性能处理器了系统。
提供1.1MIPSMHz的哈佛结构。
全性能的MMU
指令和数据Cache
高速AMBA基于总线的接口
2.1.1处理工作状态
ARM920T可以工作在下面两种工作状态下的一种:
ARM状态:
执行32位字对齐的ARM指令;
THUMB状态:
执行16位半字对齐的THUMB指令。
在这种状态下,PC寄存器的第1位来选择一个字中的哪个半字。
2.1.2操作模式
ARM920T支持7种操作模式:
用户模式(user模式),运行应用的普通模式;
快速中断模式(fiq模式),用于支持数据传输或通道处理;
中断模式(irq模式),用于普通中断处理。
超级用户模式(svc模式),操作系统的保护模式
异常中断模式(abt模式),输入数据后登入或预取异常中断指令
系统模式(sys模式),是操作系统使用的一个有特权的用户模式
未定义模式(und模式),执行了未定义指令时进入该模式
外部中断,异常操作或软件控制都可以改变中断模式。
大多数应用程序都时是在用户模式下运行。
进入特权模式是为了处理中断或异常请求或操作保护资源服务的。
2.1.3寄存器
ARM共有37个32位的寄存器,其中31个是通用寄存器,6个是状态寄存器。
但在同一时间,对程序员来说并不是所有的寄存器都可见。
在某一时刻存储器是否可见(可被访问),是由处理器当前的工作状态和工作模式决定的。
2.1.4异常
当正常的程序执行流程被临时中断时,称为产生了异常。
例如程序执行转向一个外设的中断请求。
在异常能被处理前,当前处理器的状态必须被保留,这样按处理程序完成时就能恢复原始的程序。
有可能同时产生好几个异常,如果出现这种情况,就应该按固定的顺序处理。
详情请看后面对异常优先级的说明。
2.2S3C2410A的NANDflash控制器[10][9]
当前Flash主要分为Nor-Flash两类,但NORflash存储器的价格比较昂贵,而SDRAM和NANDflash存储器的价格相对来说比较合适,这样就激发了一些用户产生希望从NANDflash启动和引导系统,而在SDRAM上执行主程序代码的想法。
S3C2410A恰好满足这一要求,它可以实现从NANDflash上执行引导程序。
为了支持NANDflash的系统引导,S3C2410A具备了一个内部SRAM缓冲器,叫做“Steppingstone”。
当系统启动时,NANDflash存储器的前面4KByte字节将被自动载入到Steppingstone中,然后系统自动执行这些载入的引导代码。
一般情况下,这4K的引导代码需要将NANDflash中程序内容拷贝到SDRAM中,在引导码执行完毕后跳转到SDRAM执行。
使用S3C2410A内部硬件ECC功能可以对NANDflash的数据进行有效性的检测。
2.2.1特性:
●NANDFlash模式:
支持读擦编程NANDflash存储器。
●自动导入模式:
复位后,引导代码被送入Steppingstone,传送后,引导代码在S