嵌入式Web服务器Boa的移植及其应用毕业论文.doc

上传人:仙人指路1688 文档编号:2392820 上传时间:2023-02-17 格式:DOC 页数:55 大小:630KB
返回 下载 相关 举报
嵌入式Web服务器Boa的移植及其应用毕业论文.doc_第1页
第1页 / 共55页
嵌入式Web服务器Boa的移植及其应用毕业论文.doc_第2页
第2页 / 共55页
嵌入式Web服务器Boa的移植及其应用毕业论文.doc_第3页
第3页 / 共55页
嵌入式Web服务器Boa的移植及其应用毕业论文.doc_第4页
第4页 / 共55页
嵌入式Web服务器Boa的移植及其应用毕业论文.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《嵌入式Web服务器Boa的移植及其应用毕业论文.doc》由会员分享,可在线阅读,更多相关《嵌入式Web服务器Boa的移植及其应用毕业论文.doc(55页珍藏版)》请在三一办公上搜索。

1、嵌入式Web服务器Boa的移植及其应用中文摘要计算机技术发展到今天,嵌入式系统的应用越来越广泛嵌入式计算机在应用数量上远远超过了各种通用计算机,一台通用计算机的外部设备中就包含了5-10个嵌入式微处理器。而随着网络技术日新月异的发展,各种网络器件成为嵌入式系统新的应用。微处理器产生后,价格低廉、结构小巧的CPU和外设连接提供了稳定可靠的硬件架构。20世纪90年代,ARM 32位嵌入式RISC处理器扩展到世界范围,占据了低功耗、低成本和高性能的嵌入式系统应用领域的领先地位。Linux因其可应用于多种硬件平台;是免费软件,源代码可以得到;微内核,本身内置网络支持和高度模块化等优点,非常适合做嵌入式

2、开发的操作系统。 本论文主要研究了基于ARM的嵌入式Linux开发。这个研究开发是在实践的基础上完成的,设计了以三星ARM920T CPU为核心的嵌入式硬件系统,并在此基础上嵌入linux系统,在linux系统上可以开发各种应用关键词:嵌入式、ARM9、BOA、RISCEmbedded Web server Boa transplant and applicationABSTRACTWith the rapid development of computer technology, embedded system is moreand more widely used. By now, emb

3、edded computer system is much more thancommon computer in quantity, there are about 5-10 microprocessor in the peripheralequipment of a computer. At the mean time, lots of network equipments become thenew application environment of embedded system since the progressivelydevelopment of network techno

4、logy. The cheap and powerful microprocessors andvarious kinds of peripheral equipments have made the hardware frames of all kinds ofembedded applications stable and reliable. Since 1990s, ARM which is 32-bitembedded RISC microprocessor, has been spread to the range of the world, andoccupied in the f

5、ield of application of low consumption, low cost and highperformance embedded system.Because its excellent kernel design and application performance, Linux isrunning on many kinds of hardware. Linux also owns other merits such as its freesource code, its inherit networking functions and its modulari

6、zation design in kernel.Therefore Linux is very suitable to be the operate system of embedded system. In this thesis, the embedded Linux system based on ARM has been developed.The embedded hardware system was designed taking Samsung ARM920T CPU asthe core. And a small linux system is embedded into t

7、his hardware system. Variouskinds of application in linux system can be developed. Keywords: Embedded、ARM9、BOA、RISC毕业论文(设计)原创性声明本人所呈交的毕业论文(设计)是我在导师的指导下进行的研究工作及取得的研究成果。据我所知,除文中已经注明引用的内容外,本论文(设计)不包含其他个人已经发表或撰写过的研究成果。对本论文(设计)的研究做出重要贡献的个人和集体,均已在文中作了明确说明并表示谢意。 作者签名: 日期: 毕业论文(设计)授权使用说明本论文(设计)作者完全了解*学院有关保留

8、、使用毕业论文(设计)的规定,学校有权保留论文(设计)并向相关部门送交论文(设计)的电子版和纸质版。有权将论文(设计)用于非赢利目的的少量复制并允许论文(设计)进入学校图书馆被查阅。学校可以公布论文(设计)的全部或部分内容。保密的论文(设计)在解密后适用本规定。 作者签名: 指导教师签名: 日期: 日期: 注 意 事 项1.设计(论文)的内容包括:1)封面(按教务处制定的标准封面格式制作)2)原创性声明3)中文摘要(300字左右)、关键词4)外文摘要、关键词 5)目次页(附件不统一编入)6)论文主体部分:引言(或绪论)、正文、结论7)参考文献8)致谢9)附录(对论文支持必要时)2.论文字数要求

9、:理工类设计(论文)正文字数不少于1万字(不包括图纸、程序清单等),文科类论文正文字数不少于1.2万字。3.附件包括:任务书、开题报告、外文译文、译文原文(复印件)。4.文字、图表要求:1)文字通顺,语言流畅,书写字迹工整,打印字体及大小符合要求,无错别字,不准请他人代写2)工程设计类题目的图纸,要求部分用尺规绘制,部分用计算机绘制,所有图纸应符合国家技术标准规范。图表整洁,布局合理,文字注释必须使用工程字书写,不准用徒手画3)毕业论文须用A4单面打印,论文50页以上的双面打印4)图表应绘制于无格子的页面上5)软件工程类课题应有程序清单,并提供电子文档5.装订顺序1)设计(论文)2)附件:按照

10、任务书、开题报告、外文译文、译文原文(复印件)次序装订3)其它目录1绪论11.1嵌入式系统及其发展趋势11.2嵌入式操作系统概述21.2.1几种嵌入式操作系统的分析21.2.2嵌入式Linux操作系统21.2.3嵌入式Linux系统的优势所在31.3嵌入式Web服务器42嵌入式系统硬件52.1 嵌入式系统微处理器62.1.1处理工作状态62.1.2操作模式62.1.3寄存器62.1.4异常72.2 S3C2410A的NAND flash控制器 72.2.1特性:72.3 CS8900网络芯片83嵌入式Linux系统83.1 Linux简介93.2 Linux的内存管理103.3 linux的进

11、程和线程管理113.4 Linux的交叉开发环境124 Uboot在GEC2410上的移植154.1 BootLoader的介绍154.2 BootLoader启动模式介绍154.3 u-boot介绍164.4 u-boot目录结构164.5 uboot的启动过程及工作原理17 4.5.1 阶段1介绍17 4.5.2 阶段2介绍21 4.6.1步骤:22 4.6.2烧写u-boot.bin到开发板的nand flash23 4.7 u-boot的使用26 5嵌入式 linux 内核移植实现27 5.1嵌入式 linux 简介27 5.2 linux-2.6内核的新特征27 5.3 linux内

12、核源代码29 5.4移植linux-2.6到gec2410开发板29 5.4.1 准备工作30 5.4.2修改顶层 Makefile30 5.4.3修改内核源码30 5.4.4配置内核31 5.4.5 下载内核镜像到开发板运行31 5.4.6 烧写内核映象 zImage33 5.5 制做根文件系统 33 5.5.1Cramfs 根文件系统的制作33 5.5.2烧写根文件系统34 5.5.3在u-boot 下设置启动参数;34 5.6.4重新启动开发板,启动linux 系统34 6嵌入式WEB服务器BOA的移植35 6.1 Boa服务器与Apache服务器区别35 6.2嵌入式web服务器Boa

13、的移植36 6.2.1 Boa程序的移植36 6.2.2 Boa的配置36 6.3 Boa的执行37 6.4 CGI脚本测试37 6.5应用展望38 参考文献39 致谢:39 1 绪论随着计算机技术的发展,嵌入式系统已成为计算机领域的一个重要组成部分,并成为近年来新兴的研究热点。嵌入式操作系统产业关联度大,市场前景好.发展嵌入式软件将有利于增强企业持续创新能力。其中,Linux由于自身的优良特性,几乎是天然地适合作为嵌入式操作系统。Linux的主要优势在源码开放,不用交纳版权费用;功能强大,稳定,健壮;并且有着非常优秀的网络功能,图像,文件管理功能,以及多任务支持功能;可定制性;有成千上万的开

14、发人员支持;有大量的且不断增加的开发工具基于以上原因使得Linux成为很适合嵌入式开发的操作系统,嵌入式领域将是Linux最大的发展空间。ARM即Advanced RISC Machines的缩写,由英国Advanced RISC Machines(ARM) Limited公司设计。ARM公司是设计公司,本身不生产芯片,只提供知识产权(UP). ARM公司是32位嵌入式RISC微处理器领域的领先供应商,在世界范围有超过300个的合作伙伴包括半导体工业的著名公司,从而导致了大量的开发工具和丰富的第三方资源,它们共同保证了基于ARM处理器核的设计可以很快投入市场,参考文献12本论文构造了一个基于A

15、RM的嵌入式Linux操作系统,由于我们采用的是ARM920T核的三星S3C2410X CPU,该CPU的其中一个特点具有全性能的MMU,所以选择了Linux作为我们的嵌入式操作系统,并把它嵌入到flash中,我们的系统己经实现了正常启动、运行并支持基本的网络功能,在linux基础上,我们还可以开发各种应用。1.1嵌入式系统及其发展趋势嵌入式设备是指具有计算机功能,但又不称为计算机的设备或器材,嵌入式系统已成为当今最为热门的领域之一,它几乎包括了我们周围的所有电器设备:PDA、手机、机顶盒、汽车、微波炉、电梯、安全系统、自动售货机、医疗仪器、立体音响、自动取款机等。和通用计算机不同,嵌入式系统

16、是针对具体应用的专用系统,一般具有成本敏感性,它的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上实现更高的性能。好的嵌入式系统是完成目标功能的最小系统,从嵌入式的应用考虑在未来的发展中主要考虑如下几个方向: Internet功能成为必然趋势随着二十一世纪的来临、全球化的趋势越来越明显、Internet作为获取信息的便捷手段,已逐渐被人们所共识。另外,未来Internet接入设备将呈现多元化的特征,因此嵌入式操作系统作为嵌入式Internet接人设备的灵魂必然向完善的Internet支持方向发展,并随着Internet的发展而发展。 SOC (System on Chi

17、p)随着微电子技术的快速发展,软件硬件的紧密结合,SOC将成为趋势。这不仅能降低成本、缩小产品体积,还可以增强产品的可靠性。无线互联近几年来,无线互联已成为发展的主流,全球知名厂商纷纷推出自己的无线互联的解决方案。嵌入式设备,特别是消费电子类产品,具有很强的移动性,所以嵌入式操作系统对于无线互联的支持显得尤为重要,以实现任何人在任何地方任何时间获取任何信息。 个性化与标准化并存由于嵌入式设备种类繁多、千差万别,因而具有很强的个性特征。嵌入式操作系统为了满足这些需求,必须在个性化和标淮化之间达到平衡以实现最优。嵌入式操作系统产业关联度大,市场前景好。发展嵌入式软件将有利于增强企业持续创新能力,有

18、利于刺激消费,有利于培植新的经济增长点。参考文献231.2嵌入式操作系统概述236嵌入式系统(Embedded Systems)可以定义为:以应用为中心的、以计算机技术为基础,软件,硬件可裁剪,适应于应用系统,对功能,可靠性,成本,体积,功耗严格要求的专用计算机系统。它主要由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用软件等部份组成。它具有“嵌入性”、“专用性”、与“计算机系统”的三个基本要素。简单的嵌入式系统一般并不使用操作系统,只包含一些控制流程,但是当嵌入式系统所提供的功能复杂化之后(如:图形用户界面和网络支持等),简单的流程控制就不能满足系统的要求,这时就必须考虑使用操作系

19、统做系统软件。这时,嵌入式操作系统(Embedded OperatinB System, EOS)就应运而生。随着EOS的广泛应用,业界已推出一些应用比较成功的EOS产品。随着各种应用的出现,EOS也从单一的弱功能向高专业化的强功能方向发展,归纳起来EOS应该有以下几个特点:小的系统内核;较强的实时性,多任务功能;能够提供各种设备驱动程序;提供图形界面;提供TCP / IP, PPP等协议支持。1.2.1几种嵌入式操作系统的分析2目前市场上流行的,使用最多的EOS产品包括有:windows CE, LYNX v Vxwork, QNX,PowerTV公司的rower TVOSt3Com公司的P

20、alm OS, Microware公司的David和OS-9, ISI(Intemated Systemsinc)公司的OSEKWorks和pSOSystem等。除了商业化的操作系统外还有一些非商业化的嵌入式操作系统可以便用,其中嵌入式Linux将成为完全可以和Windows CE等E OS相抗衡的0S1. Windows CE. Windows C 是微软开发的一个开放的、可以升级的32位嵌入式操作系统,是基于掌上型电脑类的电子设备操作系统。它是精简Windows 95。Windows CE 的图形用户界面相当出色。W indows CE 具有模块化、结构化和基于Win32应用程序接口以及处

21、理器无关等特点。它不仅继承了传统的windows图形界面,并且用户在windows CE平台上可使用windows 95/98上的编程工具(如 Visual Basic、visaul+ 等)、也可以使用同样的函数、使用同样的界面风格,使绝大多数windows上的应用软件只需要简单修改和移植就可以在windows CE平台上继续使用。但与Vxworks相同,Windows CE 也比较昂贵的。2. Vxworks Vxworks是Wind River System公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),它是在当前市场占有率最高的嵌入式操作系统。Vxworks 的实时性做得非

22、常好,其系统本身的开销很小,进程调度、进程间通信、中断处理等系统公用程序精练而有效,使得它们造成的延迟很短。另外Vxworks提供的多任务机制,对任务的控制采用了优先级抢占和轮转调度机制,这充分保证了可靠的实时性,并使同样的硬件配置能满足更强的实时性要求。另外Vxworks具有高度的可靠性,从而保证了用户工作环境的稳定,同时,Vxworks 还有很完备强大的集成开发环境,这也大方便了用户的使用。以其优良的可靠性、开放性、实时性和易用性赢得了大量的客户。但是由于Vxworks的开发和使用都需要交高额的专利费,因此大大增加了用户的开发成本。同时由于Vxworks 的源码不公开,造成部分功能的更新滞

23、后。3. QNX QNX是Quantumn Software System公司研制的基于PC的实时多任务的、可扩展的操作系统,它具有微内核结构, QNX是业界公认的X86平台上最好的嵌入式实时操作系统之一,它具有独一无二的微内核实时平台,是建立在微内核和完全地址空间保护基础之上的,它同样具有实时性强、稳定可靠的优点。用户可根据需要选择其中一些组件来定制操作系统。4. PalmO S. PalmO S是一种专为掌上设备设计的32位操作系统,它运行在一个抢占式的多任务内核之上。同一时刻用户界面仅仅允许一个应用程序被打开,这个被打开的程序将控制整个屏幕,应用程序始终运行在单用户界面进程上,Plam

24、OS 最明显的特点在精简,它的内核只有几千个字节,同时用户也可以方便地开发定制,具有较强的可操作性。5.Linux. 嵌入式Linux(Embedded Linux)是指对标准Linux经过小型化裁剪处理之后,能够固化在容量只有几KB或者几MB字节的存储芯片或者单片机中,是适合于特定嵌入式应用场合的专用Linux操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使用的是Linux这与它自身的优良特性是分不开的。嵌入式Linux同linux一样,具有低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地适应嵌入式领域的开发,嵌入式Linux还在Linux基础上做了部分改

25、进,Linux也逐渐应用于工作站及桌面PC。同样,Linux以也因为它服务器OS的特性而成为一个下一个智能型嵌入式设备的理想操作系统。1.2.2嵌入式Linux操作系统嵌入式Linux由于代码开放性以及强大的网络功能,在中低端的嵌入式网络设备中的应用,比起pSOS, VxWorks有许多优势。Linux现在甚至支持蓝牙技术。开发嵌入式Linux产品,从产品上市时间到产品系列化,除人员以外所需的投入均较少。相对于Windows CE, QNX以及国内的H OPEN等嵌入式操作系统,嵌入式Linux以其特有的开放性、与生俱来的网络特性成为嵌入式操作系统的主流之一。1.2.3嵌入式Linux系统的优

26、势所在1. 充分满足硬件设备的实时性要求严格要求的实时性的决定因素与中断例程本身和内核中的其他驱动程序有关;而响应延迟时间主要受中断的优先级和其他进程暂时地关闭中断响应的影响。因此管理和驱动中断的机制必须保证实时要求。根据这个要求,大多数嵌入式系统并不具备严格的实时性,而windows CE基本上不具备实时性的特点。但是,嵌入式Linux可以很好得满足实时性要求。对Intel x86处理器,实时扩充可以在Linim系统中很容易进行,RT-Linux就是很好的例子。它主要是把Linux的任务作为自己的一个任务,因此实时性要求很高的任务不受非实时的Linux的干扰,可以得到满足。另外还提供了实时任

27、务和Linux的基本核心和其他任务间的接口。2. 具有很高的适应性和可靠性和其他运行于PC的系统相比,因为Linux继承了Unix优点,在适应和稳定方面性能是非常突出的。而嵌入式的Linux也是如此。嵌入式Linux不仅支持x86芯片,而且是一个跨平台的系统,到目前为止可以支持二、三十种CPU。很多CPU包括家电业的芯片,都开始做Linux的平台移植工作。移植的速度远远超过JAVA的开发环境,这是值得注意的。也就是说,如果今天采用Linux环境开发产品,那么将来换CPU时就不会遇到困扰。同时,嵌入式Linux内核的结构在网络方面是非常完整的。提供了包括十兆、百兆、干兆的以太网络以及无线网络、T

28、oken ring(令牌环)、光纤甚至卫星的支持。所以Linux很适于做通信设备的开发。3.具有成熟的开发工具,可以跨越ICE等屏障开发嵌入式系统的关键是需要一套好用的开发和调试工具,而且在开发所不同阶段还需要不同的工具。传统的开发调试工具就是ICE一在线仿真器,它取代目标板的微处理器,给目标程序提供仿真环境,同时可以连接监视器,允许开发者调试和监视程序的运行。但是,这种设备价格非常贵。如果使用嵌入式Linux,就不用ICE也可以很好地开发和调试工作了、同时还降低开发费用。嵌入式Linux利用GNU项目的C编译器来编译程序,使用gab源程序级调试器来调试程序。它们提供了合适的手段来使客户能够开

29、发嵌入式的Linux各种应用程序。通过串口和gab通讯,可以进行C源程序级的调试。甚至客户还可以用串口把其他的程序下装到RAM或flash存储器。通过串口,使用gab可以便得软硬件的初始化代码继续运行到核心全部启动。一旦核心运行了,就可以使用其他的更好的调试工具,象Kgdb等。如果连接了网络,也可让网络工作起来。同时客户就可以用GUI的xgdb来调试应用程序。4.具有小巧的功能完善的内核一般说来,需要使用嵌入式操作系统的硬件体积都十分有限,不能像一般的计算机那样采用海量存储器来进行数据存储。一般是采用软件固化的方法,将程序和操作系统嵌入到整个产品里面。在这个技术中减少操作系统的体积是关键。我们

30、不能想象在一个紧凑的硬件设备外面再接一个通用的硬盘或是打算将几十兆上百兆的操作系统输入到普通的ROM或者RAM里面去。因此,对嵌入式系统来讲:功能和体积是一对互斥事件。而PS OS以及其他的一些操作系统,虽然内核只有几十K,但是要为相关的产品添加额外的功能,实际应用的时候体积在百K以上。嵌入式1 inux除了本身体积较少以外,还保留了Linux操作系统中非常有特色的一点:用户可以自己裁减内核。用户完全可以根据不同的任务来选定特定操作内核模块,而将不用的部分去掉,减少体积,从根本上解决了体积和功能的矛盾。1.3嵌入式Web服务器嵌入式Linux的应用涉及面很广,包括网络设备、信息家电、机顶盒、工

31、业控制、数据采集、测试等各个方面的应用。由于Linux强大的网络功能,使得嵌入式Linux在网络设备的应用显得尤其突出。连入互联网的嵌入式系统的出现,将给地球披上“电子皮肤”,嵌入式片上系统(System On a Chip)被称为“瘦服务器”。预测未来Internet将向何处去,这是全世界科学家关心的问题,科学家对此做出了预测:在这阶段“将会产生比PC时代多成百上千倍的瘦服务器和超级嵌入式瘦服务器,这些瘦服务器将与这个世界你能想到的各种物理信息、生物信息相联接,通过Internet网自动地、实时地、方便地、简单地提供给需要这些信息的对象”。由此可见,如何设计和制造嵌入式瘦服务器、嵌入式网关和

32、嵌入式因特网路由器己成为嵌入式Internet时代的关键和核心技术。HTTP(Hypertext Transfer Protocol,超文本传输协议)协议是WWW的核心机制中的重要组成部分。在Web网站开发过程中,对HTTP协议的信息格式进行分析和有针对性的应用,是提高网站效率、增强网站功能的一条有效的途径。HTTP协议是Web服务器使用的主要协议,是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。经过十多年的使用与发展,己经得到了不断的完善和扩展。参考文献17152 嵌入式系统硬件2.1 嵌入式系统微处理器 1712本论文采用的处理器是三星公司的S3C24

33、10X。S3C2410是使用ARM920T核、采用0.18um的工艺CMOS标准宏单元和存储编译器开发而成的。由于采用了由ARM公司设计的16/32位ARM920T RISC处理器,S3C2410X实现了MMU和独立的16KB数据哈佛结构和缓存,每个缓存均为8个字长的流水线,它的低功耗、精简而出色的全静态设计特别适用于对成本和功耗敏感的领域.ARM920T支持32位ARM和16位Thumb双指令集,同时支持ARM调试体系结构,它既包含用于硬件调试的逻辑,也包含用于软件调试的逻辑。具有哈佛型Cache体系结构,并提供一个完整的高性能处理器了系统。提供1.1MIPS/MHz的哈佛结构。全性能的MM

34、U指令和数据Cache高速AMBA基于总线的接口2.1.1处理工作状态ARM920T 可以工作在下面两种工作状态下的一种:ARM 状态:执行 32 位字对齐的 ARM指令;THUMB 状态:执行 16位半字对齐的 THUMB指令。在这种状态下,PC 寄存器 的第 1 位来选择一个字中的哪个半字。 2.1.2操作模式 ARM920T 支持 7 种操作模式:用户模式(user模式),运行应用的普通模式;快速中断模式(fiq 模式),用于支持数据传输或通道处理;中断模式(irq 模式),用于普通中断处理。 超级用户模式(svc 模式),操作系统的保护模式 异常中断模式(abt 模式),输入数据后登入

35、或预取异常中断指令 系统模式(sys 模式),是操作系统使用的一个有特权的用户模式 未定义模式(und 模式),执行了未定义指令时进入该模式 外部中断,异常操作或软件控制都可以改变中断模式。大多数应用程序都时是在用户模式下运行。进入特权模式是为了处理中断或异常请求或操作保护资源服务的。2.1.3寄存器 ARM 共有 37 个32 位的寄存器,其中 31 个是通用寄存器,6个是状态寄存器。但在同一时间,对程序员来说并不是所有的寄存器都可见。在某一时刻存储器是否可见(可被访问),是由处理器当前的工作状态和工作模式决定的。2.1.4异常 当正常的程序执行流程被临时中断时,称为产生了异常。例如程序执行

36、转向一个外设的中断请求。在异常能被处理前,当前处理器的状态必须被保留,这样按处理程序完成时就能恢复原始的程序。 有可能同时产生好几个异常,如果出现这种情况,就应该按固定的顺序处理。详情请看后面对异常优先级的说明。2.2 S3C2410A的NAND flash控制器 109当前Flash主要分为Nor-Flash两类,但NOR flash 存储器的价格比较昂贵,而 SDRAM 和 NAND flash 存储器的价格相对来说比较合适,这样就激发了一些用户产生希望从 NAND flash 启动和引导系统,而在SDRAM 上执行主程序代码的想法。 S3C2410A 恰好满足这一要求,它可以实现从 NA

37、ND flash 上执行引导程序。为了支持NANDflash 的系统引导,S3C2410A具备了一个内部 SRAM 缓冲器,叫做“Steppingstone”。当系统启动时,NAND flash 存储器的前面 4KByte 字节将被自动载入到 Steppingstone 中,然后系统自动执行这些载入的引导代码。 一般情况下,这4K的引导代码需要将 NAND flash 中程序内容拷贝到 SDRAM 中,在引导码执行完毕后跳转到 SDRAM 执行。使用 S3C2410A内部硬件 ECC功能可以对 NAND flash 的数据进行有效性的检测。2.2.1特性: NAND Flash 模式:支持读/

38、擦/编程 NAND flash 存储器。 自动导入模式:复位后,引导代码被送入 Steppingstone,传送后,引导代码在Steppingstone 中执行。 具备硬件 ECC 产生模块 (硬件产生,软件纠正) Nand flash 接口:支持每页 256words、512byte、1kwoeds 和 2kbyte 的nand flash。 接口:8/16bit NANDflash 存储器接口。 Steppingstone 接口:支持小端/大端格式、字节/半字/字等存储结构。 4-KB 内部 SRAM 缓冲器Steppingstone,在 NAND flash 引导后可以作为其他用途使用。

39、 图3-1Flash闪存是非易失存储器,可以对存储器单位元块进行擦写和再编程。任何Flash 器件进行写入操作前都必须先执行擦除操作。NAND-Flash器件执行擦除操作十分简单;擦除NAND-Flash器件是以8-32KB块进行的。2.3 CS8900网络芯片 10CS8900A是Cirrus公司生产的一种高集成度的全面支持工EEE802.3 标准的以太网控制器,其组成结构框图如图 1 所示。CS8900A 支持 8 位、16 位的微处理器,可以工作在工/0方式或 Memory 方式。片内集成了工 SA 总线接口,可以直接和有工 SA 总线的微处理器系统无缝连接。片内集成了 4KB 容量的

40、PacketPage 结构的 RAM,这 4KB 存储器映像结构的RAM 包括片内各种控制、状态、命令寄存器,以及片内发送、接收缓存。用户可以以 1/0方式、Memory方式或 DMA方式访问它们。 CS8900具有如下特点: 符合 IEEE802.3 的单片以太网控制器,可与 ISA 直接接口,也可针对实际应用来设计与其它 CPU的接口; 可工作于工业级温度范围,有 3V和 5V两种芯片可选; 具有 4K片上 RAM,用作收发缓存; 具有 10BASE-T 接口,带有模拟滤波,提供自动极性检测校正;提供 AUI 接口,用于 10BASE2, 10BASE5和10BASE-F连接; 冲突自动重

41、发机制,自动 Padding和 CRC 产生; 可编程收发功能; 流发送模式,减少 CPU的开销; 提前中断,可对帧预处理; 自动拒收错误帧; 支持 Boot Prom、边界扫描及回送测试; LED驱动显示连接状态及 LAN的可用性。 3 嵌入式Linux系统3.1 Linux简介23Linux是UNIX风格(UNIX Alike)的操作系统(OS)并且是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。嵌入式linux正是在这种氛围下产生的。Linux是一个支持多用户、多进程、多线程、实时性

42、较好的功能强大而稳定的操作系统,并且可以运行在多种硬件平台上,如:X86 PC、Sun Sparc、Digital Alpha、680x0、powerPC、MIPS等。Linux最在的特点在于它是GNU的一员,遵循公共版权许可证(GPL),秉承“自由的思想,开放的源码”的原则,是计算机爱好者自己的操作系统。Linux有一个完整的TCP/IP协议栈,同时对其他许多的网络协议都提供支持。这些网络协议都在Linux上得到了很好的实现。Linux可以称作是一个针对嵌入式系统的优秀网络操作系统。Linux所支持的文件系统有多种,其中包括了最常用的NFS(网络文件系统)、ext2、romfs, MS-DO

43、S及FAT 16/32等。参考文献111133.2 Linux的内存管理 1 内存管理子系统是操作系统的重要部分,负责控制进程对系统硬件内在资源的访问。这是通过物理内存管理来实现。该系统提供进程对内存的应用与计算机物理内存间的映射。内存管理子系统为每个进程都维护这样一个映射关系。这样,两个进程就可以访问同一个虚拟的内存地址,而实际上使用的是不同的物理内存地址。内存管理子系统还支持页面交换机制,将暂时不用的内存页调出内存,使计算机获得比实际内存更多的虚拟内存。内存管理子系统提供的功能有:1扩大地址空间扩大地址空间使系统显得拥有比实际更大量的内存。虚拟内存可以比系统中的物理内存大许多倍,从而解决多

44、进程状态下内存不足的问题。2内存保护系统中的每个进程都有自己的虚拟地址空间。这些虚拟的地址空间是相互完全分离的,从而避免了并发执行的进程的所在地址空间冲突问题。另外,硬件的虚拟内存机制允许对内存写保护,这可以防止代码和数据被恶意的程序覆盖。3内存映射将内存映像和数据映射到进程的地址空间。用内存映射,文件的内容被直接连接到进程的虚拟地址空间。4公平分配物理内存内存管理子系统允许系统中每个运行中的进程公平地共享系统的物理内存。5为进程中通信所需要的共享内存提供必要的基础。虽然虚拟内存允许进程拥有分离(虚拟)的地址空间,有时也需要进程之间共享内存。例如:系统中可能有多个进程运行命令解释程序,虽然可以

45、在每一个进程的虚拟地址空间都拥有一份命令解释程序bash的复本,更好的是在物理内存中只拥有一份复本,所有运行bash的进程共享代码。动态链接库是多个进程共享执行代码的另一个常见例子。共享内存也可以用于进程间通信(IPC)机制,两个或多个进程可以通过共同拥有的内存交换信息。Linux系统支持系统V(system V)的共享内存IPC机制。标准Linux使用虚拟存储器技术,这种技术用于提供比计算机系统中实际使用的物理内存大得多的内存空间。为了支持虚拟存储管理器的管理,Linux系统采用分页(paging)的方式来载入进程。虚拟存储器由存储器管理机制及一个大容量的快速硬盘存储器支持。它的实现基于局部

46、性原理,当一个程序在运行之前,没有必要全部装入内存,而是仅将那些当前要运行的那些部分页面或段装入内存运行(copy-on-write),其余暂时留在硬盘上。程序运行时如果它所要访问的页(段)己存在,则程序继续运行,如果发现不存在的页(段),操作系统将产生一个页错误(page fault),这个错误导致操作系统把需要运行的部分加载到内存中。必要时操作系统还可以把不需要的内存页(段)交换到磁盘上。利用这样的方式管理存储器,便可把一个进程所需要用到的存储器以化整为零的方式,视需求分批载入,而核心程序则凭借属于每个页面的页码来完成寻址各个存储器区段的工作。3.3 linux的进程和线程管理213761.标准Linux系统的进程、线程进程:进程是一个运行程序并为其提供执行环境的实体,它包括一个地址空间和至少一个控制点,进程在这个地址空间上执行单一指令序列。进程地址空间包括可以访问或引用的内存单元的集合,进程控制点通过一个一般称为程序计数器(program counter PC)的硬件寄存器控制和跟踪进程指令序列。Fork:由于进程为执行程序的环境,因此在执行程序前必须先建立这个能”跑”程序的环境。Linux系统提供系统调用拷贝现行进程的内容,以产生新的进程,调用fork的进程称为父进程;而所产生的新进程则称为子进程。子进程会承

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号