Ⅵvo手机服务己电脑服务已停止运行行,怎么回事

Ⅵvo怎么隐藏应用_百度知道
Ⅵvo怎么隐藏应用
Ⅵvo怎么隐藏应用
我有更好的答案
建议您在待机界面点击菜单键--隐藏图标--点击桌面软件图标,即可将软件隐藏。后期采用Funtouch os 3.0的机型,请您长按待机界面的空白地方--隐藏图标--点击桌面软件图标隐藏。当然也可以用其它应用来隐藏,比如X分身。把要隐藏的应用导入到X分身当中,再把原应用卸载,最后利用X分身的应用伪装功能,把X分身伪装成备忘录就可以了。也可以直接导入一个应用商店,把要隐藏的应用直接在X分身内进行下载安装。如果不卸载原应用,也可以当双开应用用,除此以外,还可以隐藏微信好友、隐藏手机联系人。
采纳率:94%
vo隐藏应用
1条折叠回答
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。当前位置: >>
基于ARM平台的嵌入式WEB服务器的设计与实现
电子科技大学 硕士学位论文 基于ARM平台的嵌入式WEB服务器的设计与实现 姓名:刘鑫 申请学位级别:硕士 专业:通信与信息系统 指导教师:林水生
摘要摘要嵌入式设备凭借其体积小巧、高性能、低功耗等特点遍布生活中的每一个角 落。嵌入式设备的应用范围不断扩大,伴随着Intemet的快速发展,嵌入式设备在 远程管理、监控方面的应用成为可能。嵌入式Web服务器正是嵌入式技术与网络 技术的一个完美结合。 传统Web服务器主要用于处理大量客户端的并发访问,对处理器能力和内存 空间有很高的要求,而嵌入式设备往往处理能力、内存容量等硬件资源有限,故 传统Web服务器通常无法运行在嵌入式平台上。鉴于此,本课题详细研究了嵌入 式Web服务器的设计方法,并搭建软硬件平台,在此基础上实现一个嵌入式Web服务器。嵌入式Web服务器的实质是由一系列软件功能模块搭建而成,其作用的发挥 需要相应的软硬件平台。ARM内核处理器以其高性能、低功耗享誉全球市场。而 嵌入式Linux内核凭借源码开放、可移植性好、免费等特点成为一种广泛应用的嵌 入式操作系统。本设计使用ARM+L1NUX的模式搭建软硬件平台,为嵌入式Web 服务器的实现奠定软硬件基础。 本课题首先研究了嵌入式系统和嵌入式Web服务器技术当前的发展现状,接 着完成嵌入式Web服务器的基本架构设计,然后以ATMEL公司的ARM9芯片 AT91SAM9263为核心搭建嵌入式Web服务器硬件平台,在此基础上进行嵌入式 Linux内核的移植和相关外设的驱动开发,完成嵌入式Web服务器的软硬件环境 搭建。最后在该环境下自行实现嵌入式Web服务器MyWebServer,经过测试,客 户端可以访问MyWebServer内嵌的静态网页,同时也可以与MyWebServer之间的 动态交互,达到设计目标。 关键字:嵌入式Web,ARM,嵌入式Linux,MyWebServer服务器 ABSTRACTABSTRACTEmbedded devices extend everywhere in human life by virtual of its compact size,high performanceand low power consumption.The scope of embedded deviceapplications is expandingeverywhere.Accompanied byused web inthe rapid developmentofInteract, embedded devices become possible.Embeddedtechnologyremoteisamanagement, monitoringperfect combination of theapplicationserverembeddedconcurrenttheandnetwork technology.aTraditional web server is mainly used for processingclientaccesseslarge number ofwhich requireshi曲processorpower and memorycapacity.Whileprocessingpower,memorynot runallcapacity ofembeddeddevices islimited,traditional Webserver usually Canin也eembedded platform.Inonview of this,this issue describesathe way of designingembedded web server design,building an embedded web serverhardware?softwareplatform,andplatform Theatachievingthe basis of software-hardwarethe last.embeddedweb serveris builtonacorresponding hardware and softwarethrough the worldplatforms.ARMcoreprocessors are low powerrenownedmarket for itsahigh-performance andwidelyconsumption,while embedded Linux kernel becomesystemsas a usesusedembeddedandoperatingwith characteristics of open source,good the model ARM+LINUXto buildportability,flee of charge and others.This designahardwaresoftware platformgood foundation for the realization of theernbedded Web server.First of all,the basic architecture of theembeddedweb server designis introduced.Then ATMEL's ARM9platformto buildehip AT91 SAM9263 chip is used to consititute the hardwareanembedded Web server.On thisbasis,embeddedtheaLinuxkemel andserverrelatedperipheral drivers aredeveloppedaleormigrated.NowembeddedembeddedWebhardware and software environmentcompleted.Finally achieved.web serverSelWeI"“MyWebServer'’is realizeddynamically aftertest whichonthis platform.The guestCan interact with thesignifiesthatourgoal isKeywords:Embedded Web,ARM,Embeded Linux,MyWebServerⅡ 图目录图目录图1.1嵌入式系统的一般架构………………………………………………………….3 图1.2嵌入式硬件平台基本组成结构…………………………………………………3 图2.1嵌入式Web服务器功能模块图………………………………………………..1 3 图2.2浏览器与Web服务器的工作方式……………………………………………14 图2.3 TCP/P协议栈模型…………………………………………………………….1 7 图2_4 TCP/口协议栈协议依赖关系…………………………………………………1 8 图2.5 TCP“三次握手"建立连接……………………………………………………l 9图2.6 IP数据报收发流程……………………………………………………………..21 图2.7 HTTP协议的发展………………………………………………………………22 图2-8 HTTP通信模型………………………………………………………………..22图2-9客户端通过CGI程序与服务器端交互………………………………………23 图2.1 0 CGI程序开发一般流程……………………………………………………….25 图2.1 1嵌入式Web服务器设计框架………………………………………………..26 图3.1嵌入式Web服务器系统框图…………………………………………………28图3.2AT91S』州9263结构框图……………………………………………………..291图3.3 CS8900A架构图…………………………………………………………………3图3_4系统平面布局图……………………………………………………………….33 图3.5核心板实物图………………………………………………………………….33 图3-6核心板与母板连接示意图…………………………………………………….34 图3.7系统实物图……………………………………………………………………..34 图3.8 SDRAM存储系统电路图………………………………………………………35图3-9 NANDFlash存储系统电路图…………………………………………………36图3.10电压转换电路5V一3.3V………………………………………………………36 图3.11电压转换电路3.3V一1.2V……………………………………………………37 图3.12复位电路………………………………………………………………………37 图3.13 RS232串行接口电路………………………………………………………….38 图3.14网络接口电路…………………………………………………………………..38 图3.15正确检测芯片………………………………………………………………….4l图3.1 6未检测出芯片…………………………………………………………………41 图3.1 7串口调试结果…………………………………………………………………43图4.1典型嵌入式系统软件image的逻辑布局…………………………………….45 图4.2 ARM Linux的开发流程………………………………………………………。46 图4.3 Bootloadel"启动流程……………………………………………………………47 图4.4AT91SAM9263存储器映射部分截图………………………………………..50VⅡ 图目录 图4.5 CS8900芯片未正常识别……………………………………………………….52 图4.6 U.Boot移植成功打印信息………………………………………………………53图4.7内核配置界面…………………………………………………………………。57 图4.8内核编译成功界面…………………………………………………………….58 图4.9文件系统层次结构图…………………………………………………………..59 图4.1 O NFS文件系统示意图…………………………………………………………60图4.1 1 Linux内核成功挂载根文件系统……………………………………………62 图4,12 Linux软件层次关系……_……………………………………………………63 图4.13 Linux网络驱动程序体系结构…………………………………………………65图4.14初始化函数es8900 eborp_76.… … 图程流 图4.1 5网卡探测函数es8900 probel流程图………………………………………67 图4.1 6数据包发送函net send packet数流程图………………………………….68 图4_1 7中断处理流程图………………………………………………………………69 图4.1 8内核启动信息CS8900驱动成功加载……………………………………….70 图4.19网络驱动程序测试成功界面…………………………………………………70 图5.1建立连接,并保持监听状态………………………………………………….72 图5.2解析并处理HTTP请求…………………………………………………………74 图5.3处理静态页面请求…………………………………………………………….76 图5.4处理CGI请求………………………………………………………………….77 图5.5 GET STYLE程序流程图……………………………………………………..79 图5.6 POST STYLE程序流程图…………………………………………………….8 1图5.7 MyWebServer成功启动打印信息……………………………………………。83 图5.8 W曲服务器测试成功界面…………………………………………………….84 图5-9 CGI动态网页交互测试主界面……………………………………………….85 图5.10 GET方式测试界面…………………………………………………………….85 图5.1 1客户端输入数据信息…………………………………………………………86图5.12服务器端经CGI程序处理返回客户端数据………………………………。86 图5.13 POST方式CGI程序测试成功界面…………………………………………87VⅡI 表目录表目录表1.1嵌入式Linux与专用嵌入式实时操作系统的比较……………………………8 表2.1 B/S结构与C/S结构区别…………………………………………………………12 表2-2请求处理方式…………………………………………………………………..1 3 表2.3数据交互方式GET和POST………….………………………………………24 表3一l底板无线传感接口说明…………………………………………………………39 表4.1内核配置方法…………………………………………………………………..56表4.2 Linux根文件系统组成………………………………………………………..60 表4.3 Linux设备分类及特点…………………………………………………………..64IX 缩略词表缩略词表英文缩写英文全称中文释义 著名RISC设计企业。本ARMAdvanced RISC Machines文档也把其RISC MCU统 称为ARM。RTOS EOSReal Time Operating System实时操作系统 嵌入式操作系统 联合测试行为组织,用EmbeddedOperation SystemJTAGJoint Test Action Group于命名一种接口标准 公共网关接口 知识产权 内存管理单元 液晶显示器 通用引导加载程序 片上系统 串行外围接口锁相环CGI IPCommon Gateway Interface Intellectual PropertyMMULCD U.BootMemory Management UnitLiquid Crystal DisplayUniversal Boot LoaderSOCSPISystemPhaseonChipSerial Peripheral InterfacePLLLocked LoopUARTUniversal Asynchronous通用异步接收/发送装置Receiver/TransmitterUSBUniversal Serial Bus通用串行总线X 独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工 作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地 方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含 为获得电子科技大学或其它教育机构的学位或证书而使用过的材料。 与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明 确的说明并表示谢意。签名:苤遂日期:加少年多月眵日论文使用授权本学位论文作者完全了解电子科技大学有关保留、使用学位论文 的规定,有权保留并向国家有关部门或机构送交论文的复印件和磁 盘,允许论文被查阅和借阅。本人授权电子科技大学可以将学位论文 的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或 扫描等复制手段保存、汇编学位论文。 (保密的学位论文在解密后应遵守此规定)签名:型盔导师签名:么亟龇日期:矽年∥月乡El 第一章引言第一章引言21世纪前10年,Intemet继续保持着迅猛的发展势头,人们通过互联网共享 信息、传播信息达到了前所未有的繁荣程度。而通过Intemet获取远程信息和控 制设备,成为了人们又一个追求的目标。嵌入式Web服务器技术的发展使实现这 样的愿望成为了可能。在嵌入式设备中嵌入Web服务器,即可以通过网络远程获 取信息和控制设备。1.1嵌入式系统 1.1.1嵌入式系统的定义所谓“嵌入式系统"实际上是“嵌入式计算机系统"的简称,业界有多种不 同的关于嵌入式系统的定义,被普遍接受的是根据嵌入式系统的特点下的定义“以 应用为中心,以计算机技术为基础、软件硬件可裁剪,功能、可靠性、成本、体 积、功耗严格要求的专用计算机系统"。国际电气工程师协会的一个定义是嵌入式 系统“是用来监控或监视机器、装置的大规模系统的设备【1】,,。1.1.2嵌入式系统的特点(1)系统内核d,t51 由于嵌入式系统一般情况下都是嵌入到小型电子装置中使用,系统硬件资源 相对有限,故系统内核较之传统的PC操作系统要小很多。 (2)个性化很强 软件系统必须针对特定硬件平台来开发,软件硬件紧密结合。很多情况下, 需要针对特定硬件进行系统的移植。软件系统对硬件的变化保持高度敏感,必须 根据硬件的变化进行修改,否则软件系统的部分功能或全部功能无法完成。同时, 系统根据任务的不同往往也需要较大的修改;各类程序的编译下载也要和系统紧 密结合,这种修改的概念完全区别于通用软件的“升级"。 (3)系统精简 在嵌入式系统范畴,系统软件和应用软件并无明显界限,功能的设计及实现 电子科技大学硕士学位论文不要求过于复杂,追求精简。最大程度地控制系统成本,同时也利于实现系统安 全。 (4)高实时性 嵌入式系统的应用场景要求其必须具备高实时性的特点。开发完成的软件系 统最后都固化到存储设备,大大提高运行速度。软件代码必须保证高质量和高可 靠性。 (5)多任务的操作系统 嵌入式软件开发在国外已呈现产业化趋势,而标准化是产业化的前提。使用 多任务的操作系统正是实现标准化的有效途径。嵌入式系统的应用程序可以没有 操作系统而直接在硬件平台上运行;但是为了合理地实现多任务调度,充分利用 系统资源、系统函数以及库函数接口,用户可以选择适合的RTOS开发平台,从 而保证程序执行的实时性、可靠性,并在保障软件质量的同时减少开发时间,缩 减成本。 (6)专门的开发工具和环境 嵌入式系统自身不具备自主开发能力。系统设计完成以后,一般情况下用户 也不能够对程序的功能进行修改,必须借助专门的开发工具和环境。这些工具和 环境一般是建立在通用计算机上的软硬件设备以及各种逻辑分析仪、混合信号示 波器等设备上。开发过程中划分为主机和目标机,主机用于程序的开发,目标机 为最后的执行机,开发时需要在两者间协调进行。1.1.3嵌入式系统的组成嵌入式系统一般由软件平台和硬件平台组成,如图1.1所示。其中软件平台 由嵌入式操作系统(包括设备驱动程序)和应用软件组成,而硬件平台由嵌入式 微处理器和外围硬件设备组成‘11。2 第一章引言图1-1嵌入式系统的一般架构随着SOC技术的发展,嵌入式处理器的主频也越来越高,一般情况下主频都 在200MHz以上,有的甚至高达1GHz。多处理器、多核处理器平台逐渐开始应 用在嵌入式的设计当中,然而现在市场上主流嵌入式系统还是基于32位单处理器 平台。一个典型的硬件平台如图1.2所示。图1.2嵌入式硬件平台基本组成结构嵌入式软件平台主要由应用软件与嵌入式操作系统组成。目前市场上比较流 行的嵌入式操作系统可以分为两类【1】: (1)PC上的操作系统,修改移植到嵌入式系统中,形成嵌入式操作系统。 如SUN公司的JAVA系统,微软公司的Windows CE,朗讯公司的Inferno,嵌入3 电子科技大学硕士学位论文式Linux等。此类系统长期运行在高性能计算机或个人PC等产品上,各方面性 能经受了考验,技术相对成熟,业界内已经形成了各种行业标准和成熟的开发方 式,同时也积累了丰富应用软件资源和工具资源。 (2)实时操作系统,如Windriver公司的VxWorks,ISI的pSOS,QNX系 统软件公司的QNX,ATI的Nucleus,中国科学院凯斯集团的Hopen嵌入式操作系统等,此类产品在操作系统的结构和实现上都针对其所面向的应用领域,对实时性高可靠性等进行了精巧的设计,而且提供了独立且完备的开发测试工具,目 前已广泛地应用在工业控制和军用产品等领域中。目前常见的嵌入式系统有 Linux,uClinux,Windows CE、PalmOS,Symbian,eCos,uCOS―II,VxWorks,pSOS、Nucleus、ThreadX、Rtems、QNX、INTEGRITY、OSE、C Executive等。嵌入式操作系统的发展必将促进新一轮的科技竞争。 应用程序运行在嵌入式操作系统之上,通常情况下操作系统和应用程序是分 开的。当处理器上带有MMU时,便可以在硬件上将操作系统和应用程序分开编 译和管理,Linux、Windows CE就是遵循这种分离机制。遵循这种机制的好处就 是系统安全性更高、可维护性更强,更加有利于各模块的划分。另外在很多情况 下,处理器并没有嵌入MMU单元,如ARM7内核ARM7TDMI,通常操作系统 和应用程序是编译在一起运行的,从开发人员的角度来看,操作系统更类似于一 个函数库。1.1.4嵌入式系统的发展嵌入式计算机系统作为计算机应用一个重要分支,已经深入到人们工作生活 的方方面面。嵌入式计算机系统对等于通用计算机系统,起源于通用微型计算机 时代。而微型计算机在尺寸、成本、可靠性方面都无法满足众多对象系统的嵌入 式应用要求,且嵌入式计算机系统与通用计算机系统相比在技术要求和发展方向 上截然不同。因此,嵌入式系统必须走独立发展道路。这条道路就是芯片化道路。 将计算机做在一个芯片上,从而开创了嵌入式系统独立发展的单片机时代。【2J 随着单片机技术的发展,嵌入式系统走上了独立发展的道路。基于单片机的 嵌入系统的实现,就是寻求应用系统在芯片上的最大化解决方案;因此,专用单 片机的发展自然形成了SoC化趋势。随着微电子技术、IC设计、EDA工具的发 展,基于SoC的单片机应用系统设计取得了很大的发展。 在很长的一个时间段里,嵌入式式系统依托单片机快速发展。大多是基于84 第一章引言位单片机,实现最底层的嵌入式系统应用。基于原来单片机的嵌入式系统底层应 用特点,嵌入式系统应用可以分成高端与低端,单片机应用可以作为嵌入式系统 的低端应用,含义为它的底层性以及与对象系统的紧耦合。 随着微电子、计算机等技术的发展,嵌入式处理器位宽逐渐由8位扩展到32 位,以满足网络通信、多媒体处理等高端应用需求。小到掌上的PDA,大到汽车、 航天飞机,其身影无处不在。基于32位处理器的嵌入式系统相对于单片机应用可 以理解为嵌入式系统的高端应用。 总体来说,嵌入式系统的发展有以下几个趋势【2】: ●由单核过度到多核; ●向网络功能发展; ?MCU、FPGA、ARM、DSP等齐头并进; ?嵌入式操作系统面向特定应用呈多元化趋势。 人们的生活与嵌入式系统息息相关,嵌入式系统技术也正以前所未有的速度 向前发展,以更好的满足人们的应用需求。物联网的出现,无疑是嵌入式系统发 展一个新的契机。经相关调查显示,到2015年全球将有超过150亿个嵌入式智能 设备连入互联网,包括工业、医疗电子、车载信息娱乐系统、数字安全监控等众 多领域的设备都在朝向互联的需求发展。在物联网的发展过程中,将有更多的嵌 入式设备应用得到广泛推广。嵌入式系统将彻底改变人们的生活。1.2嵌入式Web服务器技术的发展嵌入式Web服务器技术的实质就是嵌入式设备的网络化。Internet技术已经 在全球实现了普及,而Web服务作为一个重要的分支在Internet占有的比重非常 大,将嵌入式设备与Web技术实现整合成为一个热点。嵌入式Web服务器技术 正是在这样的大背景下诞生。用户可以通过客户端通用的Web浏览器,Intemet 网络访问内嵌在嵌入式Web服务器的专用网页,进而管理、控制和检测各种各样的设备。嵌入式Web服务器正在经历着快速发展阶段,市场上已经出现很多成熟的开 源嵌入式Web服务器,可以很方便地移植到目标平台上,满足各个档次嵌入式 Web服务器的功能需求。目前比较流行开源嵌入式Web服务器有:GoAl-lead、Web Server、HTTPD、BOA和thttpd等【31。 GoAhead Webserver是为嵌入式实时操作系统(RTOS)量身定制的跨平台5 电子科技大学硕士学位论文Web服务器。具有以下特点:①支持ASP;②支持嵌入式JavaScript;③标准的CGI执行;④内存中的CGI处理GoFrom;⑤扩展API;⑥快速响应,每秒可处理超过50个请求等。其开发目标为成为市场上最先进的嵌入式Web服务器。 HTTPD、BOA和thttpd都是简单、小巧、可移植的嵌入式Web服务器,它 们都可提供标准HTTP服务。用户可以结合各个服务器的适用特点,再根据自己 的应用需要选择具体的嵌入式Web服务器。一般情况来说,GoAhead WebServer或是HTTPD常应用于小型、简单的应用场景,Boa和thttpd应用于相对复杂功能 要求较高的应用环境【3】。 “everybody-in.the.Inernet-wave’’,这样的场景已经在人们的生活中处处可见。 更进一步的发展则是“everything-in.the.internet",即物联网,所有的设备都通过 网路互联,但是这样景象在生活中还不常见,国内在这方面的研究也刚刚处于起 步阶段。然而通过嵌入式和Internet整合达到远程设备维护和诊断,以及所谓的 M2M(Machine-to.Machine)通信正以很快的速度在发展。 借助因特网或者内联网,通过Web浏览器进行远程系统和组件的维护诊断在 众多项目开发中扮演了越来越重要的角色。形形色色的开发部门的开发人员的工 作完全基于web的配置和嵌入式系统的服务。使用传统的面板操作方式的日子已 经慢慢走到尽头。随着移动互联网的逐步演化,基于蓝牙的个人区域通信以及 M2M通信的进一步创新为期不远。1.3ARM处理器的发展ARM公司于1990年11月成立于英国,其前身为Acorn计算机公司,其主要的产品就是提供ARM系列RISK处理器内核的解决方案。ARM(AdvancedRISCMachines)是微处理器行业的一家知名企业,设计了大量高性能、廉价、耗能低 的RISC处理器、相关技术及软件。技术具有性能高、成本低和能耗省的特点, 适用于多种领域,比如嵌入控制、消费/教育类多媒体体、DSP和移动智能终端等。 ARM公司不仅仅是技术创新的领先者,其独特的商业模式也在全球激烈的 市场竞争中独树一帜。ARM将其所开发的技术授权给世界上各大著名芯片、软 件和OEM(originalEquipment/EntrustedManufacture,原始设备制造商或原产地委托加工)厂商,每个厂商得到的都是独一无二的ARM相关技术及服务。利用这 种合伙关系,ARM很快成为许多全球性RISC标准的缔造者。 ARM系列处理器是世界领先的32位嵌入式RISC微处理器,它具有体系结6 第一章引言构可扩展,功耗低,成本低和支持处理实时多任务等特点,成为设计嵌入式系统 时32位RISC芯片的首选,是许多行业嵌入式解决方案的RISC芯片标准。 市场应用的需要持续推动ARM体系结构稳步发展。每一代的ARM体系结 构都增加了极为关键的技术,面向特定的市场需求。下面将介绍ARM体系结构 的主要发展历程【4】。(1)AI蝴v1\v2W3属于ARM公司早期推出体系结构,已经废弃,目前不再使用。(2)ARMv4采用5级流水线架构,静态跳转预测,支持双带宽存储。主要的处理器核有SA.110、SAlll0。(3)ARMv4T支持Thumb指令集,主要的处理器核有ARM7TDMI、ARM9TDMI、 ARM720T、ARM940T。其主要应用于个人音频设备(如MP3)和无线手持设备。(4)AI洲v5TE加强ARM/THUMB交互工作性能,增加DSP乘法累加指令。主要的处理器核包括AJ洲1020E、XScale、ARM9E.S、删966E.S。(5)ARMv5TEJ增加支持JAVA字节代码的执行。主要的处理器核包括ARM9EJ―S、ARM926EJ.S、AI己M7王’J.S、ARM 1 026EJ.S。(6)A1wv6采用8级流水线架构,增加对多媒体指令,多处理器并行处理及v6存储架构 和非对齐数据处理的支持,DSP指令得到加强,广泛用于各大厂商的手机产品。主要的处理器核包括础M1136EJ―S、ARMll76、ARMll56、ARMll76JZ、ARMllMPCore。(7)ARMv7采用了Thumb一2技术,兼容现存ARM解决方案的完整的代码。Thumb.2技术比纯32位代码少使用31%的内存,比已有的基于Thumb技术的解决方案高出38%的性能。采用了NEON技术,将DSP和多媒体处理能力得到大幅提升,支 持改良的浮点运算。支持改良的运行环境,以迎合不断增加的JIT(JustInTime)和DAC(DynamicAdaptive Compilation)技术的使用。主要的处理器核分为三个系 列ARM Cotex.M、ARM Cotex.R、ARM Cotex.A。“A"系列面向尖端的基于虚拟内存的操作系统和用户应用;“R”系列针对实时系统;“M"系列对微控制器和7 电子科技大学硕士学位论文低成本应用提供优化。 每一次ARM体系结构的衍变都是建立在前一版体系结构的基础上,新的体 系结构的出现并不是为了取代旧的体系结构,而是为了满足特定的应用需求。本 设计选用ATMEL公司生产的核为ARM926EJ.S的处理器,可以很好的满足目标 系统的需求。1.4嵌入式Linux概述嵌入式Linux是针对Linux经过小型化剪裁后,能够固化在容量只有几百KB 或几十MB的存储器芯片或是单片机中,应用于特定嵌入式场合的专用Linux操 作系统。1.4.1嵌入式Linux的特点嵌入式Linux系统具有如下的一些特剧6】:>Linux系统内核和层次结构完全开放; >高度稳定性;>强大的网络支持功能;>嵌入式Linux具有一整套的工具链,可以很方便自行建立嵌入式系统的开 发环境和交叉编译环境,加速开发进程。1.4.2嵌入式Linux的优势嵌入式Linux被市场所广泛接受,其必然有其独特的优势区别于其他专用的 嵌入式系统,表1一l将专用嵌入式实用操作系统与嵌入式Linux作了详细的分析 和比较。表1-1嵌入式Linux与专用嵌入式实时操作系统的比较 专用嵌入式实时操作系统版权费 购买费用 技术支持 网络特性 软件移植 嵌入式Linux操作系统每生产一件产品需交纳一份版权费人民币数十万元免费免费开发商独家提供有限技术支持 需人民币数十万另外购买 难,因为系统封闭,源码不开放8全世界的自由软件开发者 免费且性能优异 易,代码开放,软件支持多 第一章引言 应用产品 长,因为可参考的代码有限开发周期短,新产品上市迅速,因为有许多 公开的代码可以参考移植好 好实时性能 稳定性需改进,可用RT Ij舢x等模块弥补 较好,在高性能系统中需改进经过以上的对比,嵌入式系统在某些方面具有独特的优势,市场的良好反应 是最好的证明。现在许多公司已经采用嵌入式Linux作为他们新的设计方案。目 前,AMD、ARM、TI、Motorola、Intel和IBM等知名企业都把Linux作为首选 的操作系统【l】。有了业界的支持,嵌入式Linux未来必定会有一个非常好的发展前景。1.5本文的工作本课题的目的就是设计实现一个基于ARM926EJ.S内核处理器的嵌入式平 台,并在此基础上设计实现一个嵌入式web服务器,以满足配合无线传感器网络 扩展接口进行远程监控的需要。用户可以通过网络访问基于ARM平台的嵌入式 服务器的内嵌的网页信息,并对该平台的特定外设进行控制操作,实现嵌入式 Web服务器的功能。 以本文设计的嵌入式平台为基础,实现嵌入式Web服务器。通过扩展嵌入式 微处理器外设接口,实现远程监测特定设备状态信息,控制相关设备动作执行。 比如智能家庭系统,可以通过智能终端远程监测家中门窗、水、煤气、室内外温 度和湿度等,也可以通过终端远程控制家电的操作。随着嵌入式系统和Internet 的发展和融合,嵌入式web服务器已经越来越融入人们的日常生活当中,对其的 深入研究对人类社会的发展亦有重要的意义。 本文的工作主要包括以下几个方面: 1、基于ARM的嵌入式硬件平台的开发。以ARM9系列芯片AT91SAM9263 为核心,构建硬件平台。硬件平台提供丰富的外设接口,包括RS232串口、DEBUG 口、红外接口、数码管、触摸屏、LCD、按键、JTAG调试口、USB 接口、AC97音频接口、网络接口、无线传感器网络接口等。 2、嵌入式软件平台开发。这部分工作主要分为三个部分:①移植开发 boofloader作为系统引导程序,我们使用的是U.BOOT作为本系统的boofloader: ②移植Linux内核到硬件平台,采用Linux内核版本为Linux一2.6.22;③开发移植 嵌入式平台上各外设驱动。9host/device 电子科技大学硕士学位论文3、详细分析TCP/IP和HTTP协议,为实现嵌入式Web服务器提供协议基础。 4、设计实现w曲服务器Mywebserver,并开发设计CGI程序,实现动态网 页交互,并完成功能测试。1.6论文结构本论文讨论了嵌入式系统和Intemet技术的各自发展,并说明了两种技术的 相互渗透。二者融合的典型代表就是嵌入式Web服务器。为了达到“设计并实现 一个嵌入式Web服务器"的目标,本论文提出了解决方案,即“ARM9平台+Linux 操作系统”。本文内容涉及嵌入式Web服务器软硬件平台设计与调试,并在此基 础上讨论嵌入式Web服务器的技术细节,最后设计实现嵌入式Web服务器。 论文的结构安排如下: 第一章:引言:介绍本课题的目的意义以及相关领域目前的发展状况,并阐 述本文的主要工作和论文的基本机构。 第二章:嵌入式Web服务器设计:介绍嵌入式Web服务器的概念和工作原 理及相关协议,并完成嵌入式Web服务器的架构设计。 第三章:系统硬件平台设计与调试:主要介绍了硬件平台的总体设计,所选 用主要芯片的特点,以及硬件平台的主要电路及其主要调试过程。 第四章:系统软件平台开发:主要分为四个方面的内容:Obootloader系统 引导程序的一般概念介绍;②选择U-boot作为本系统的bootloader,并完成向硬 件平台的移植;③完成Linux内核向硬件平台的移植;④作为搭建嵌入式web服 务器的一个重要步骤,重点介绍了硬件平台网卡的驱动程序的实现。 第五章:嵌入式Web服务器的实现:实现嵌入式web服务器MyWebServer, 并完成功能测试。 第六章:总结与展望。对本论文的研究课题进行了总结,并提出了改进之处, 对嵌入式Web服务器的进一步的研究进行了展望。10 第二章嵌入式Web服务器设计第二章嵌入式Web服务器设计本章将首先介绍嵌入式Web服务器的基本概念、体系结构及功能模块划分。 然后介绍了实现嵌入式Web服务器的相关协议基础,最后完成了一个典型的轻量 嵌入式Web服务器的设计。2.1通用Web服务器Web服务器本质是一个软件,通常在PC机或者工作站上运行。目前市场上 比较流行的W曲服务器有微软的IIS(InternetInformationServer)。Web服务器的主要功能是对来自客户端Web浏览器的请求做出回应,获取特定的文件(或者调 用执行CGI程序),然后返回这个文件或者程序执行结果给客户端。Web浏览器和Web服务器通过超文本传输协议(HTTP)进行通倒7】。当一个HTTP请求到达时,Web服务器处理命令(GET方式、POST方式等), 开始在服务器端查找浏览器所请求的文档并交付给浏览器【丌。如果服务器没有找 到请求的文档,就必须发送一个“404NotFound’’报文;如果服务器无法识别浏 Implemented”响应。览器的请求命令,则必须发送一个“501Not2.2嵌入式Web服务器 2.2.1嵌入式Web服务器概述嵌入式Web服务器是指将Web服务器引入到现场测试和控制设备中,在相 应的硬件平台和软件系统的支持下,使传统的测试和控制设备转变为以底层通信 协议,Web技术为核心的基于互联网的网络测试和控制设备。2.2.2B/S结构与C/S结构嵌入式Web服务器采用的是B/S结构。B/S(Browser/Server)结构即浏览器 和服务器结构。它是在C/S结构基础上发展而来更适应Intcrnct应用发展的结构。 B/S结构下,客户端仅仅操作wWW标准浏览器,通过Internct网络访问服务器 电子科技大学硕士学位论文端,主要事务逻辑在服务器端实现。对于用户来说,这样的结构极大地减轻了客 户端PC的工作负荷,减少了用户系统维护与升级的成本和工作量。 C/S(Client/Sex'vcr)结构,即客户机和服务器结构。追求客户机和服务器两 端负载平衡,充分利用两端的硬件资源,以最合理的方式将任务分配到客户端和 服务器端并行实现,并尽可能减小两端通讯的系统开销【8】。 嵌入式Web服务器采用B/S结构,而不是C/S结构,下面将对B/S结构与 C/S结构从几个主要方面做对比,就可以发现使用B/S结构设计实现嵌入式Web 服务器的真正原因,如表2.1所示【81。表2-1 B/S结构与C/S结构区别 区别C/S结构建立在专用网络,如局域网B/S结构 建立在广域网,不需要专门的网络环硬件环境境,一般只需要操作系统和浏览器 安全性要求 面向相对固定用户,信息安全 的控制能力强,适用于高度机 密的信息系统 程序架构 注重流程,较少考虑运行速度 综合安全和速度多重因素考虑,结构 更佳优化,代表程序结构的发展趋势 软件重用性 整体性考虑更多,构建独立性 低,重用性相对较差系统维护建立在广域网上,安全控制能力较弱,面向不可知的用户对象构件功能相对独立,重用性较好。由于整体性强,整体考虑,出 现问题系统升级困难,有可能需再做一个全新系统构件独立,方便更换,实现系统无缝升级,维护开销小处理的问题对象可处理用户面固定,区域相同, 安全要求高,系统应相同面向不同用户群,地域分散,操作系统平台没有特别要求用户接口建立在Windows平台上,表现方 法有限,对程序员要求高建立在浏览器上,用户表达方式生动 丰富,开发难度低,成本较低 信息流向可变,类似交易中心,流行可以是B.B、B.C、B.G等信息流中央集权,机械式处理2.2.3嵌入式Web服务器功能模块设计实现嵌入式Web服务器之前,首先要清楚嵌入式Web服务器的功能模12 第二章嵌入式Web服务器设计块划分,大体上可以分为服务器初始化模块、服务器侦听客户请求模块、服务器 解析客户请求模块、脚本引擎模块、输出模块和命令执行模块[91。嵌入式W曲服 务器的主要功能模块的执行流程,如图2―1所示。图2-1嵌入式Web服务器功能模块图初始化模块完成程序的初始化,如定义全局变量、设置信号量、创建套接字, 并绑定到服务器端口和P,开启TCP连接,保持为侦听状态;当侦听到来自于用 户的HTTP请求时,侦听模块接收用户的请求,并交付给解析模块解析用户请求 类型。请求分析模块是整个服务器的核心,根据不同的分析结果,进行相应的处 理,如表2―2所示。表2=2请求处理方式请求类型 处理方式静态文本动态文本 命令交付输出模块并将结果反馈给客户端 调用脚本引擎,更新动态文本信息,并通过输出模块反馈给客户端 提交给命令执行模块进行命令分析,并执行相应的控制动作13 电子科技大学硕士学位论文2.2.4嵌入式Web服务器工作方式嵌入式Web服务器的工作体系机构是由客户端和服务器构成,也就是前文所 介绍B/S结构,如图2-2所示。畦^式Web服务器王Fr功访问或操作嵌入式Web服务器: (1)客户端通过TCP发起建立连接请求,服务器确认请求合法即建立连接。 这个过程实际上就是通过TCP的“三次握手”方式建立连接。 (2)接下来,HTTP协议通过TCP/IP协议向服务器端发出HTTP请求。 (3)服务器端接到客户端的HTTP请求后,并对请求进行解析,通过解析结 果可以得知请求的类型。按照请求的类型,嵌入式Web服务器执行相应的动作,如表2-2所示。}1薹圈2-2浏览器与Web服务器的工作方式当在客户端浏览器中输入嵌八式Web服务器的地址,要经过以下步骤才能成(4)客户端收到服务器的反馈后,本地通过对HTML格式信息进行分析, 并显示网页内容。 以上的四个步骤就是个典型的嵌入式Web服务器的工作方式。 第二章嵌入式w曲服务器设计2.2.5嵌入式Web服务器和通用Web服务器的比较顾名思义,嵌入式Web服务器是运行在嵌入式系统中的,而web服务器是运 行在工作站或者个人PC机上的,因此无论在代码规模、提供的服务还是应用领 域上都有非常大的差别。 运行在个人计算机或工作站上通用Web服务器,使用通用型的操作系统,而 运行在特定功能的嵌入式系统中嵌入式Web服务器,大多运行实时操作系统,有 些小规模的则没有采用操作系统【.71。 嵌入式Web服务器的程序规模比通用Web服务器小得多,与通用嵌入式Web 服务器相比功能简单、占用的内存空间也很少。嵌入式Web服务器一般代码量在 1万行以内,编译生成可执行文件的大小在100k以内。而通用Web服务器的代 码动辄几万行,如Apache 1.3.0版本为73381行,而Roxenl.2.29版本则高达247789行【刀。通用Web服务器通常运行在高性能的工作站服务器上,在单位时间需要处理 非常多的连接请求,而嵌入式Web服务器在同样的时间内需要处理的连接数目会少的多阴。由上文可见,嵌入式Web服务器较通用服务器在资源性能等硬性指标上都有 较大的差距,但是嵌入式Web服务器依然被市场所接受,近些年得到快速的发展。 这是因为它相对于传统Web服务器在实际应用中有其独特的优势: (1)远程监控终端仅需要安装浏览器即可,IE或Netscape等软件大多由操 作系统自带,无需开发专门的应用软件,降低系统成本。 (2)浏览器所在的监控终端平台与Web所在的服务器平台无关,监控终端 可以采用多种操作系统,真正实现了跨平台。 (3)操作界面简单统一,表达直观生动,用户无需经过专门培训。 (4)易于新功能扩展,系统升级仅需在Web服务器一端添加相应模块,与 远程监控终端无关,降低系统升级维护费用。 (5)可提供分布式并行处理,基于Web的测控系统可构成一个多CPU协调 工作的分布式测控系统,可并行处理多个测控指令。2.3嵌入式Web服务器相关协议支撑嵌入式Web服务器工作的两个主要的协议就是TCP/IP协议和HTTP协15 电子科技大学硕士学位论文议。TCP/IP协议是计算机通过Internet互联的基础,而HTTP引擎是Web服务器 的核心技术。2.3.1嵌入式TCP/IP协议2.3.1.1TCP/IP服务观点介绍TCP/IP协议栈是依据功能分层组织,每一层完成特定的功能,并为上一层提 供服务,同时接受其下一层提供的服务。每层履行通信过程中的所必需的不同作 用。这是由协议栈内部层间的服务关系。从外部看,TCP/IP协议作为一个整体, 根据服务的对象不同,有如下另外两种观点【19】:(1)应用层观点――来自于终端用户终端用户享受Intemet的强大服务,TCP/IP协议栈作为整体为用户的应用提 供服务,其实现服务的一切细节对用户来说是隐藏的。 (2)网络层服务――来自开发者 开发者应用TCP/IP服务在不同主机间传送数据。2.3.1.2TCP/IP协议栈结构根据OSI原型,TCP/IP协议栈使用四层结构。TCP/IP协议栈结构如图2。3 所示【1 71。16 第二章嵌入式Web服务器设计图2-3 TCP/IP协议栈模型TCP/IP各层说明如下【31】:?网络接口层:也称为链路层,提供网络层与物理层之间的接口。●网络层:作用是不用网络之间寻址(IP寻址)、数据封装、分组路由选择、 分片、错误处理和诊断。如图2.3所示,在该层运行口协议、ICMP协议在占 号乎o?运输层:负责数据在不同设备进程之间的传输,提供可靠传输或者不可靠 传输。该层提供端到端的通信。该层通过口地址和端口号(套接字)实现 进程间通信。运行在这一层的协议分为两种:TCP和UDP。TCP提供可靠 的传输、UDP提供不可靠的传输。 ?应用层:这一层直接面向用户应用,运行在这一层的协议较多,比如DHCP (动态主机配置协议)、HTTP(超文本传送协议)、FTP(文件传送协议), DNS(域名解析协议)。2.3.1.3TCP/IP栈协议相关性上一节介绍了TCP/IP的协议栈模型,以及运行在协议栈各层的协议。本节将 简介运行在各层协议其相互间的关系,如图2-4所示【1 81。17 电子科技大学硕士学位论文图24TCP/Iin协议栈协议依赖关系对2.4作简要的说明协议之问的依赖关系。应用层协议SMTP、H11甲、FTP、 DNs依赖于TCP运行。而另外的应用层协议,如TFTP、SNMP、DHCP、DNS 依赖于UDP运行。其中DNS既可以运行在TCP之上,也可以运行在UDP之上。2 3 1.4TCP协议介绍嵌入式Web服务器在工业上一个重要应用就是检测设备状态及发送控制信 息。基于应用的特点,客户端与服务器之间应该是面向连接的,并提供可靠的服 务。TCP/IP的传输层有两种协议:TCP和UDP。前者面向连接,提供可靠服务。 UDP则不具备这些特点。所以TCP协议可以很好地满足嵌入式Web服务器的应 用需求。 通过以下的关键词及其解释,可以概括TCP的主要特点”8】: ●面向连接:在建立连接的基础上传输数据,通信完毕即关闭连接; ●多连接:TCP对不同连接进行标识,允许单个设备同时存在多个连接; ●全双工:可以双向同时传输数据: ●面向流:TCP允许应用程序以字节流的方式交付数据,但必须将字节流打 包成块再交付给rP层: ?非结构化数据:由于是面向流的传输,接收方TCP必须能够区分数据本来 结构; 第二章嵌入式Web服务器设计?可靠:保证所有发送出的数据都到达目的地; ?确认:TCP对每一个发送的报文都要求对方的回复确认,确保掌握该报文 的传输情况; ?流控制:TCP提供特定机制来协调发送端和接收端的数据收发速度,避免 数据丢失; ?进程编址:进程通过端口号和P地址进行唯一标识,实现了在同一个p 的情况下多进程的并发执行。 TCP相较于UDP的一个最大的不同就是提供面向连接的可靠的传输服务。 TCP通过一种机制来实现这种可靠的服务。这种机制成为“三次握手",图2.5 示意了TCP通过三次握手机制建立一个连接的过程。客户端服务器端报文段1报文段2报文段3图2.5 TCP“三次握手”建立连接(1)客户端发送请求报文(SNY报文),该TCP报文段SNY位置为1; (2)服务器端收到连接请求报文(SNY报文)后,随即向客户端发送一个 SNY+ACK报文段对请求进行确认。该TCP报文段的ACK位置和SNY位置均为 1,这样做有两个目的:一是对请求进行确认,二是告知客户端服务器TCP报文 的初始序号。只需要一个报文段即可完成两个工作,如图2.5中的报文段2; (3)客户端收到服务器的确认报文后,随即向服务器端发送一个ACK位置 为1的报文段,对报文段2的SYN部分(SNY部分为1)进行确认。 客户与服务器通过三个报文即可建立一个TCP连接,提供可靠的面向连接的19 电子科技大学硕士学位论文服务。这个建立连接的过程即称为“三次握手"。2.3.1.5IP协议介绍口协议是TCP/IP的重要组成部分,为传输层提供服务,并使用网络互联层 的服务,是整个协议族的基石。 口协议实现不用类型网络的互联,真正的实现了不用技术网络终端的相互通 信。口协议为上层提供的是不可靠的服务,任何的可靠性控制由上层完成(如TCP)。m层的主要功能包括封装、分片/重组、编制、交付和路由。所有功能实现起 来相对较复杂,而在嵌入式tntemet中,只需实现前两个功能:封装、分片/重组120]O(1)封装:对来自于上层TCP或UDP报文按照P协议进行封装,并交付 网络接口层进一步处理; (2)分片/重组:对来自于网络接口层的口数据包进行解封装操作,并根据 报文端口号交付给TCP或者UDP。 嵌入式Internet的IP协议数据收发过程可以由图2-6的流程图表征。20 第二章嵌入式Web服务器设计接收I.接收上层协议的数据报j添加IP头信息物理网卡收到以太网数据帧上计算IP数据报校验和茹:为帧类Ox80荽07>、 \/ /m字段“”●YEs上封装成以太网帧发送◆\‰IP地址匹配?’≥卜一nu(厂,、结束\/)\≮ 一一7―\IPV4数据报?\/头部校验和正确?YES去除IP头部交付上层协议结束图2.I口数据报收发流程 2.3.22.3.2。lHTTP协议HTTP协议概述HTTP的中文翻译为超文本传送协议,是实现WWW的应用层协议。HTTP 负责实现Web浏览器与Web服务器之间的实际超文本文档传送。 HTTP起源于最初的0.9版本,经历了1.0版本的过渡,迅速发展到目前的 HTTP/1.1版本。图2.7列出了HTTP版本的发展历程及各个版本的主要特点和较 前一版本的改进【311。21 }二鼍巢姜舷荐禳i髓棚持文i r―――――――j二―――~ f一…一~一一一一一一一…一l卜d嚣磊主孚i霁姜关显鼍蔷攀够j L―――――,――――J i一一一一…一一一…一一一一一j r………………in删m删o。r――――JL]2.3 2 2I…卜习篓强然群嚣l图2-2HTrP协议的发展HTTP通信模型Web浏览嚣向服务器发出请求,Web服务器根据客户的请求作出应答。HTTP 协议运行TCP协议之上,故在HTTP协议交互之前,需要使用IP和端口80(HTTP 服务的默认端口)建立一个连接。服务器侦听80端口,等待Web客户的请求. TCP连接建立并处于打开状态。 TCP打开状态下,HTTP交互随时可以开始:节作出回应,发出连接随即关闭。反复建立关闭TCP连接,浪费了大量的系统的资源,同时也增加I一画个HTTP响应,提供给客户其所需求的信息。图2-3H1’rP通信模型HTTP/0(1)客户请求:客户向服务器发送HTTP请求,指定其所需要的信息:(2)服务器响应:服务器根据接到的请求,完成相应的动作.并对请求的细9和HTTP/1.0版本中,客户发出请求,然后服务器做出应答,TCP 第二苹嵌入式Web服务器设计了网络的负荷,所以这样的处理方式是并不是最佳方案。HTTP/1.1版本引入了持 续连接的机制。持续连接的机制就是指TCP连接建立以后,服务器对客户的请求 作出应答,这时TCP连接并不像早期版本那样随即关闭,而是继续保持打开状态。 客户通过最后一个请求告知服务器,其作出响应后必须关闭TCP连接。在这种新 型的机制下,在一次TCP连接上可以进行若干次HTTP交互,而避免了多次TCP 握手过程,大大节省了系统和网络资源,同时新机制较旧机制在速度上有很大的 提高。2.4通用网关接口CGICGI(Common Gateway Interface,通用网关接口)定义了Web服务器与其他可执行程序(CGI程序)之间进行交互的接口标准。CGI实时执行,适用于客户 端与服务器端的动态交互。在Web环境下,客户端将信息发送给Web服务器, Web服务器将通过CGI接口标准将信息传递给CGI程序处理。通过这样的过程实 现了客户端与Web服务器端的交互【36】。2.4.1CGI的工作方式浏览器通过CGI程序与Web服务器进行交互的过程如图2-9所示。程序执行结果图2-9客户端通过CGI程序与服务器端交互客户端浏览器将通过HTTP请求向服务器传递信息,Web服务器接收到信息 后对信息进行解析,需根据请求的类型调用对应的CGI程序。Web服务器遵守 CGI程序的接口标准通过环境变量或者标准输入将信息传递给CGI程序,CGI程 序提取相关的信息并进行相应的处理,以HTML格式通过标准输出将结果返回 电子科技大学硕士学位论文Web服务器。嵌入式Web服务器检查确认数据格式正确后,将结果返回给客户端 浏览器。至此,完成完成客户端与服务器端的一次交互。2.4.2CGI程序的调用方法CGI程序独立于Web服务器,通过CGI标准接口与Web服务器通信。基于 CGI程序相对于Web服务器的独立性,可以将CGI程序编译成可执行文件,以供调用。CGI程序有两种调用方法: (1)通过URL访问直接调用:如:http://1 92.1 68.0.8/cgi-bin/test.cgi(2)通过交互式网页调用。用户在网页上录入信息,并将信息发送给CGI 程序同时调用执行CGI程序。这种方式是最常用的调用方式,市场上知名的搜索 引擎基本都是采用这种调用方式。2.4.3CGI的请求方法对于上述的第二种的数据交互方式,即FORM表单的方式,它提供了两种在 浏览器和CGI程序传输数据的方式――GET和POST。两种方式都可以完成客户 端与服务器端数据的交互,但两者的传输方式有很大的不同,表2―3简要列出了 GET和POST的主要区别所在,进而加深对这两种方式的理解,以便在后续章节 采用这两种方法实现CGI程序。表2-3数据交互方式GET和POST区别 传输方向GET POST从服务器上获得数据向服务器传输数据 将数据放入数据体中,隐式传 输,对用户透明传递实现方式将变量与值按照variable--value的 形式添加到Ⅵ也中,并与URL用 “?”隔开,变量之间用&隔开, 显式传输安全性不安全,数据通过URL传输传输, 并在服务器中自动备份,数据信息很容易泄露数据传输操作对用户透明数据量数据量小,受URL长度的限制数据量大,支持文件上传 第二章嵌入式Web服务器设计字符 仅限于ASCU字符 支持所有ISO 1 0646字符集 可选使用方式默认方式本文将分别采用GET和POST两种方式实现CGI程序,通过两种数据传输 方式,完成客户端与服务器端的数据交互。客户端向服务器端发送HTTP请求, 经HTTP解析模块分析为CGI请求,则调用CGI程序进行处理。2.4.4CGI程序的实现流程CGI程序可以用多种程序语言实现,如Perl、Pascal等。本设计CGI程序采 用C语言编写,具有移植性好、执行速度快等诸多优点。图2.10列出了CGI程 序实现的一般流程。按照CGI标准编写源代码使用目标平台开发环境编译源代码将生成的目标程序下载到目标平台调试CGI程序生成最终耳标代码图2.10 CGI程序开发一般流程2.5嵌入式Web服务器架构设计方案嵌入式Web服务器的运行需要一个硬件平台和一个软件环境。本设计中,硬 件平台是采用基于ATMELAT91S舢订9263的嵌入式硬件平台,软件环境则是移植 电子科技大学硕士学位论文嵌入式Linux内核到硬件平台。硬件和软件平台将在第三章和第四章详细介绍搭 建过程。本节内容,将把注意力放在嵌入式Web服务器架构本身,完成嵌入式 Web服务器架构的设计,如图2.11所示。图2.11嵌入式Web服务器设计框架图2.11中使用编号①~⑦来代表本设计嵌入式Web服务器的工作流程。 ①客户端向服务器端发出连接请求,请求建立TCP连接; ②服务器端一直保持监听状态(无限循环监听),当接收到客户端的连接请求 后,确认其连接请求合法,并建立TCP连接; ③建立TCP连接后,客户端通过TCP连接向服务器发送HTTP请求; (奎)HTTP请求经过Web服务器的请求解析模块分析得出请求类型,并继续进 行相应的处理; ⑤静态网页请求,将静态网页信息发送给客户端; ⑥cGI程序调用请求,执行相应的CGI程序,并将结果发送给客户端; ⑦服务器端向客户端发送HTTP响应信息。26 第二章嵌入式Web服务器设计2.6本章小结本章对嵌入式Web服务器的体系结构等相关基本概念作了详细地分析,并完 成了嵌入式Web服务器的架构设计,并将在本文第五章于本设计软硬件平台上实 现嵌入式Web服务器。27 电子科技大学硕士学位论文第三章系统硬件平台设计与调试本文所设计的嵌入式Web服务器是在基于ARM的嵌入式平台上实现,因此 首先要搭建硬件平台。本章的主要任务就是构建嵌入式服务器硬件平台。3.1硬件设计方案系统整体硬件结构如图3―1所示,系统以Atmel公司生产的ARM9芯片at91 sam9263为核心构建。图3-1嵌入式Web服务器系统框图系统存储器系统由一片Nandflash和两片SDRAM组成。NandFlash选用 SAMSUNG公司的K9F1208UOB,总线宽度8位,单片容量16MB。SDRAM选 用MICRON公司的MT48LCl6M16A2TG,将两片16位的MT48LCl6M16A2TG 并联为32位数据宽度64M空间的SDRAM存储系统。2R 第三章系统硬件平台设计与调试硬件平台接口资源丰富。系统的网卡芯片选用Cirrus公司的CS8900A,提供 PJ45接口连接Ethoract网络。除此之外,还提供众多接口外设,包括一个USB HOST接口和一个USB Device接口,一个SD卡接口、一个RS232串口、一个 Debug接口、一个AC97音频接口、一个触摸屏、一个红外接口、一个无线传感 器网络节点接口以及一个JTAO调试接口等。系统可以响应来自EtheTnet的终端 请求信号,并提供网页,显示传感器数据,实现远程控制。3.2At91sam9263芯片概述硬件平台采用的处理器是美国ATMEL公司所生产的一款芯片ARM9芯片A191sam9263。3.2.1At91sam9263简介sam9263是一种基于ARM926EJ.S内核的ARM处理器.带有MMU存At91储器管理单元。运行在200MHz时拥有220M/PS的运算性能,具有DSP扩展指 令.JAVA硬件加速。At91sam9263有能力连接多种内存设各,大容量硬盘设备, 嵌入有LCD控制器,2D图形加速器,图像传感器接口,标准外设接口,多媒体 卡接口,CAN控制器㈣。Atglsmn9263的系统框图如图3-2所示。…。∥彰’蕊名象豁。,妻I=1.,。l1::|兰i=蚓lWH蓬1雠旧 匡 。f。―f一‘FL垩再 ―i_自 辩i掣掣E叵 囱匡图30ATglSAM9263结构框图29匝 厩糕 习自自审离[j臼自肉 哥剧I雪鬟jj攀籼登≯毒撼:谬。“够r 电子科技大学硕士学位论文 3.2.2At91sam9263特性At91sam9263具有以下特性【lo】: >1.2V内核供电,1.8V/2.5V/3.3V存储器供电,3.3V外部I/O供电; >At91sam9263(ARM926EJ.S)主频最高达到200MHz(达到220MIPS),支 持JAVA,支持DSP扩展库,16K字节的高速数据缓冲器和16K字节的高 速指令缓冲器,带有MMU模块; >一个128K的内部ROM,一个80K的内部SRAM和一个16K的内部SRAM; >拥有两个外围总线接口(EBl0,EBll),支持外部存储器,支持SDRAM, NANDFLASH,CompactFlash,以及静态存储器; >带有一个DMA控制器和二十个外围设备DMA控制器; >一个LCD控制器最大可以支持24bit色彩,2048 >一个USB2.0全速设备接口; >二个USB2.0全速主机接口;>X2048分辨率;内置一个10/100 EMAC网络接口;>全功能的系统控制器,包括:reset控制器,shutdown控制器,时钟发生器, 功耗管理控制器,中断控制器以及DEBUG单元,看门狗定时器,实时定 时器等等; >五个32.bit的并行输入输出控制器; >二个多媒体卡接口,支持MMC,SD存储卡; >一个AC97音频子系统接口; >一个CAN控制器; >两个支持12S的同步串行接口; >两个主/从串行外围接口;3.3网络接口芯片介绍本设计采用网络接口芯片为Cirrus公司生产的CS8900A,本部分内容将对芯30 第三章系统硬件平台设计与调试片作简要的介绍。3.3.1CS8900A概述CS8900A是Cirrus公司生产的一种高集成度的全面支持IEEE802.3标准的以 太网控制器。它的高集成度设计减少了芯片以太网控制器对各种昂贵的外部组件 的需要。CS8900A片内集成了4KB RAM,10兆发送接收滤波器和一个带有24 毫安驱动器的直接工业标准总线接口。 除了其很高的集成度之外,CS8900A拥有各种性能特点和配置选项。它独特 的Packetpage结构自动适应变化着的网络形式和可用的系统资源,故性能得到了 很大的提升。CS8900A结构框图如图3.3所示【l¨。图3-3 CS8900A架构图3.3.2CS8900A特性CS8900A主要具有以下特性‘12】: >带有ISA总线接口,并支持IEEE802.3的单片以太网控制器; >最大电流消耗55mA(5V供电);>3V工作电压;>工作在工业温度范围;3l 电子科技大学硕士学位论文>详尽的软件驱动套装可选; >高效的PacketPage架构,可以工作在I/O方式和Memory方式,且可以作 为DMA工作方式下的从设备; >片内RAM缓冲发送和接收数据帧; >带有模拟滤波器的IOM端口; >连接单元接口提供10BASE2,10BASE5和10BASE。F的支持; >可编程的发送特性; >可编程的接收特性; >EEPROM支持无跳线配置;>BootPROM支持无盘系统;>边界扫描和环回测试; >驱动LED显示连接状态和LAN激活状态; >支持待机模式和挂起睡眠模式。3.4系统主要电路设计系统采用底板加活动CPU板的形式。CPU板(AT91SAM9263)通过金手指 200脚接口与通用底板兼容。核心板上承载ARM主芯片、NandFlash芯片、SDRAM 芯片及其工作的相关电路。底板上为各个外设接口电路,包括以太网接口、USB 接口、触摸屏接口以及AC97音频接口等。 硬件平台平面布局如图34所示。32 第三章系统硬件平台设计与调试fiI嚣f电据插头II,CD触摸屏模块DEVICIE图田子 母 板 接口子板图匡图阿lDEIGNll苔l陋m路l I一触al I音撷接。l图34系统平面布局图图3-5为核心板的实物图。图3-5核心板实物图 电子科技大学硕士学位论文核心CPU板与底板连接示意如图3-6所示图3-6核心板与母板连接示意图整个系统实物图如图3.7所示。图3―7系统实物幽 第三章系统硬件平台设计与调试本节将具体介绍嵌入式硬件平台主要电路设计。3.4.1SDRAM电路本设计的SDRAM系统采用MICRON公司生产的芯片,型号为 MT48Lcl6M16A2。单片数据宽度16位,容量为32MB。本设计将两片16位的 MT48LCl6M16A2TG并联为32位数据宽度64M空间的SDRAM存储系统,具体 电路如图3.8所示。cm-m档口卿.簟幽.t辽骐丑=―誓---∞ 24二?SDRAM鳓出皿即习叫}钳柚 越 芷 糟 “ 雕 船 盯瑚m:锄∞:∞Ⅸ1班?U.砸” 西mEjII¨∞ ■二,皿*电n 郅趣 m 雎 斑 饼矿^I卜‘―崩{广∞ 肥 Ⅳ 搿::ⅢⅨ‘:!FⅨ二£■D10∞" ⅢⅪ: 鼬^13j:脚朋 糟日l,;dO髓 艚 ^曲 n】 E柚 EU血m.-双旷掣L}珥 肼 m0 mID贮,’村卜{0铽轩mO5D^M:: ”:ⅢDIl罔弓鞠Om4并一础 鼬m5缫聚":dD UUm黼菇~£,哪∽娜g 。~―飞虹罔避*业尬艟Ⅶ口 V∞ C≈缸、瑚 燃?渤誊瑞―hmjJ一兰8;‘ Cl坩廿■L ~“ 辩; i罐 “l艋”…’瞬簧…器Al器艨 篚蹒.躜萄越:啭番MHⅨIm6Ⅺ10墓m卜‘―静 m卜,0黼珥―{毒知珊卜_毒‘静 珥■{讳静m卜4―粘伪―卒啼皋卜L{r长再一泌g?潞t矗躐谌惟VS∞―墨‘―1}丌一j纠止 io IO帖广翻nC^s“1幔…邸髓碍她m:ES口旺M::躜 嘲一ⅢIⅢl∞燃囊强!i图3.8 SDRAM存储系统电路图3.4.2Flash电路Flash是一种可在系统中进行电檫写,掉电后信息不丢失的存储器,主要用于 存放系统启动代码(bootloader)、Linux内核、文件系统,也可以存放用户应用程 序。本设计选用SAMSUNG公司的NAND Flash芯片K9F1208UOB作为Flash存 储器,8位总线,单片容量64MB。具体电路如图3-9所示‘12】。35 电子科技大学硕士学位论文Ⅺ惭lashU5一器N一崖¥懿3V3 一器占婴暨瓤纛1;―}一iiCLEI『00羹≤i砸I伪琵I,'04^I工Iol I'0230强I?DIjl三B川D: 32二B川Dj4l:b.i.I匪mF∞矾)6―1r置茹孺固嘉蓦蕴;。7 3、Bo‘=I一。^.,、…”B磨∞7―]丁!椰7―瓢――《;4-':bl'J D)研Nc KcNC NC NC№ №Nc№李 }£删戌u..221:EB_'C‘舭:二1叠E<鲤毯必】:三黜叭1j1委再二NcNc NC Nc粥 粥 №WNc眦NC NcW ―百奎 辩 №――1r々≮磊 ―1览 焉―]可A―帮#矿 ―了广――.二×37..NC、陀C Nc VCCKC KC Nc VSSV黛―1丌,l南oo蟑1的一图3-9 NANDFI嬲h存储系统电路图3.4.3电源电路系统输入为+5V电源供电(1000mA输出),经过电源转换芯片LMlll7后转 换为3.3V供给存储器芯片和各接口电路,如图3.10所示。3.3V电压经过电源芯 片TPS60500转换为1.2V供给AT91 SAM9263,如图3.11所示。电源模块分别带 有5V电压、3.3V电压和1.2V电压指示LED。电平转换5w*-3.和U14{Ⅳ≥一3 C461r:一 V|11tY”UIr一?’{.,.J2T,4一厂、,、-^ Z ―C62,.v U 3V一3:j:c蚺 lt国If、VlOt瞬LM“17-3-3、loIlF.'IOV2图3.10电压转换电路5V一3.3V36 第三章系统硬件平台设计与调试电平转换3.3v―1.2v主图3-11电压转换电路3.3V一1.2V3.4.4复位电路本系统提供按建(S17)系统复位。由于网络接口芯片CS8900A要求高电平 复位,因此加入74HCl4倒相器来将系统复位信号负脉冲反相获得正脉冲复位信 号。复位电路如图3―12所示,二极管D11和电容C86则保证系统能上电复位。图3.12复位电路3.4.5RS232串行接口电路RS232接口电路提供五路信号,RXD,TXD,GND,RTS,CTS,电路图如 图3.13所示。37 电子科技大学硕士学位论文RS232COM POI订一cfI ll孤[3c18Cl?VCC!垒.IC::JCI.aKDv.凝\R3a型3.4.6网络接口电路IOOK<<iooKf一C2?1 1l∞正§C:.、-.萼TI玳Tl 0【:T 下:lN 120L.T掣4薄RXl2l∞!-剥H}3l币onF―I}li1llliJII妊 G\―_o-O――oD -'ORICR汀Rl^R:C)盯贮IN’l卜 ―曲广一 0/图3.13 RS232串行接口电路嵌入式Web服务器系统设计的一个核心部分就是网络接口电路。网络接口电 路如图3―14所示【12】。网络接口电路与AT91SAM9263的EBI外部总线接口相连接。 控制信号线主要有三根,分别是片选信号线、读有效和写有效信号线。控制总线、 一组地址总线和一组数据总线将网络接口电路与ARM芯片相连接。网络电路后 端通过隔离变压器HRl 102连接RJ45接口,提供与ETHERNET的连接通讯接口。图3.14网络接口电路38 第三章系统硬件平台设计与调试3.4.7无线传感器节点接口底板上提供无线传感器接口,扩展无线传感器节点,作为无线传感网络的sink 节点,由ARM来实现控制。传感器节点以自组织形式构成网络,通过多跳中继 方式将监测数据传到sink节点。底板上提供无线传感器接口信号如表3.1所示。表3-1底板无线传感接口说明针脚序列号1 2 3 4 5 6 7 8~信号线PEO GND PEl GND PE3 11 12针脚序列号PB 1信号线 8(SPll NPCS3)GND PB 14(SPll.―SPCK) GND PB 11314 15 16 17 18 19 203(SPll_MOSI)GNDPAl6 GND PE4 GNDGND PB 12(SPll_MISO)GND9 103.3VPE2表中“PE0”代表GPIO的E口第一个引脚,以此类推可知其他信号线的含 义。依据此硬件接口,可以进一步进行无线传感器节点的开发。3.5硬件调试本节将介绍硬件平台主要电路的调试过程。电路的调试工具包括示波器、万 用表等,同时需要ARM调试开发软件及相应的仿真器,在本系统硬件调试过程 中使用了ARM公司提供的开发调试软件RVDS及其JTAG仿真软件H.JTAG。 PCB板加工完成以后,对裸板首先进行测试。例如,必须确认电源和GND 之间没有短路,使用万用表即可完成此项工作。焊接完成后,亦要测试电源和地 之间是否短路。开发板上电,首先测试关键的输出电压,即本平台的电源输出5v、 3.3v、1.2v,确认电压输出正确以后方可进行后续调试工作。电源电路、复位电路、 晶振电路是系统工作的基础,故首先需调试通过以下三个模块。39 电子科技大学硕士学位论文3.5.1电源电路焊接过后的电路板,很可能存在短路、虚焊的情况,如果你此时直接通入电 源的话,很可能造成主芯片的发热和烧毁,调试中曾遇到这种情况。焊接好电路 后,直接通入电源,at91sam9263就开始发热,直至烫手。此时应立刻断开电源, 检查芯片各个电源引脚输入电压是否正确,电源地是否均接地。.电源电路最初选用的电压芯片是LM2734,但是上电后发现芯片无法正常供电。但轻触电源输出引脚即可电源正常工作,定位问题出现在输出电压参数上。 经查看AT91SAM9263 datasheet发现,在系统上电时,处理器核心电压变化率必 须不小于5v/ms。于是使用示波器查看LM2734的输出电压波形可知上升率低于 5V/ms,造成处理器无法正常工作。于是选用型号为TPS60500的电源转换芯片, 可达到上述参数要求,处理器可以正常上电工作。3.5.2复位电路系统上电后,检查各接口模块的工作情况,发现代表网卡芯片CS8900正常 工作的LED灯未正常点亮。查看CS8900的datasheet后发现CS8900需要正脉冲 进行复位,故定位问题出现在复位电路。在复位电路加入74HCl4倒相器,如图 3.12所示。如此即可将系统复位信号负脉冲反相获得正脉冲复位信号提供给 CS8900。上电复位后,CS8900即可正常工作。3.5.3晶振电路本平台采用18.432MHz和32.768K.Hz晶振,上电后使用示波器分别抓取以上 两个晶振的波形,观察晶振输出波形参数是否正确,波形是否稳定。在调试过程 中发现部分子板晶振电路未启振,从两个方面考虑可解决此问题:①晶振电容大 小;②晶体是否坏掉。调试过程中得出以下经验,基于晶振电路稳定工作考虑, 晶振电路最好选用有源晶振。3.5.4检测芯片确定电源电路、复位电路和晶振电路正常工作后,接下来需要测试ARM芯 片是否已正确工作。通过JTAG接口将开发板与PC机连接起来,在PC机上运行 H―JTAG软件。若显示如图3―15所示界面,则表示芯片已开始正常工作。 第三章系统硬件平台设计与调试蹦3-15正确检测芯片若显示如图3-16所示界面,则或许意味着芯片未正常工作目3.16未检测出芯片 电子科技大学硕士学位论文图3.15显示出ARM芯片的内核为“ARM926EJ.S”和芯片的Ⅲ。图3.16 无法显示出芯片的内核型号。在确认电源电路、晶振电路和复位电路均无异常的 前提下,测试JTAG信号线是否与ARM芯片正常连接,并确认JTAG小板是否 有虚焊和JTAG小板上芯片是否坏掉,从以上三个方面入手可以解决无法检测芯片的问题。3.5.5外设接口电路接口模块的调试需要首先确定输入电压正确、晶振工作正常。然后使用ARM 公司推出的新一代ARM调试工具RVDS(RealViewDevelopmentSuite)对模块进行功能调试。通过RVDS工具可以方便的查看和修改ARM芯片内部寄存器以及 内存中的值。设计编写各个外围设备的调试程序,最后通过JTAG接口将外设对 应的调试程序下载到SDRAM中,并在硬件平台上运行调试。 通过串口打印调试信息是一种非常重要的调试方法,而网卡芯片CS8900是 实现嵌入式Web服务器的关键一环,接下来将介绍串口和网卡芯片电路的调试过 程。3.5.5.1串口电路调试使用软件RVDS,通过JTAG接口将程序编译链接下载到开发板中运行,发 现超级终端上有字符显示,刚开始几个是正确的显示的输入的字符,但4、5个之 后显示的字符就不是输入的字符了。用示波器测量开发板上UART的数据线上的 数据,发送的数据是按照RS232协议发送的,波形显示是正确的但显示在超级终 端上却是错误的。说明开发板发送数据是正确无误的,pc机在接收时采样频率和 开发板的发送频率不一致导致此错误。而经过调试发现根本原因却是开发板主时 钟频率的设置不精确导致波特率因子并不是预想的115200。要精确的设置主时 钟,需要读出主晶振的精确频率,经修改后读出主晶振频率为16.365MHz,主时 钟配置为88.192MHz,波特率正确设置为47后运行程序,结果正常收发。 数据正常收发,从PC的键盘输入一个字符,被开发板收到,再发送给PC显 示到超级终端上,经过多次长时间试验,收发正常。如图3.17所示:42 第三章系统硬件平台设计与调试图3-17串口调试结果3.5 5 2CS8900电路调试1、交叉网线与直连网线 当使用网线将目标板和PC机互连之前,首先要检查是普通的直连线,还是 交叉线,简单的判别方法是对比网线两端水晶头内排线的颜色,如果排线颜色顺 序相同为直连线,否则为交叉线。目标板与PC机为点对点通信,故使用交叉线。 另注,目前已经有很多网络芯片及变压器能够自适应交叉与直连,所以此种目标 板无论是交叉网线还是直连网线都可以使用。 2、测试网络的物理连接 用交叉网线将目标扳与PC机相连,给目标板上电,此时目标板和PC机的以 太网连接指示灯(LINKLED)将常亮,PC机Windows系统右下角任务栏将会出 现网络连接的图标,速度为10 0Mbps。如果目标板下载了Linux且已启动,则可 以进行相互ping的测试,通信指示灯会闪烁。 3、出现的问题 用交叉网线连接到Pc机时网络指示灯不亮,Pc机没有任何反应。经测试得 出原因,CS8900第93脚连接的RES阻值不正确。RES引脚连接的参考电阻为芯 片内部模拟电路提供偏置。CS8900芯片手册规定此电阻阻值为4 99KQ±1%,应 选用精密电阻满足CS8900芯片工作的要求。 指示灯亮,但PC机出现网络没有连接成功,受限制。原因为PC机网络的设 嚣问题,设定为一个固定口,是PC机与目标板处于同一网段以使双方可以正常通信。 电子科技大学硕士学位论文3.6本章小结本章完成了嵌入式硬件平台的搭建和调试,并对嵌入式Web服务器主要电路 进行了介绍。本章所完成的工作,为后续嵌入式Web服务器的实现奠定硬件基础。 第四章系统软件平台开发第四章系统软件平台开发本章的主要工作是在硬件平台的基础上实现嵌入式Web服务器正常工作的 软件平台,内容包括bootloader引导程序开发移植、嵌入式Linux内核移植、接 口驱动开发等相关内容。接口驱动开发部分主要介绍网络控制芯片CS8900A驱动 开发。4.1嵌入式软件平台开发流程本文是采用时下流行的ARM Linux系统,在第三章已经设计实现以ARM为 核心的嵌入式硬件平台,本章将实现Linux系统在ARM上的运行。 与常见的桌面系统开发软件不同,在开发嵌入式系统时,往往是把所有的软 件模块生成一个单一的文件,这个单一文件我们就成为image(映像文件),它的 一般布局如图4-1所示【5】o图4-1典型嵌入式系统软件image的逻辑布局如图4.1所示,最底层的是BootLoader(启动加载程序),接着是嵌入式操作45 电子科技大学硕士学位论文系统内核,设备驱动在内核之上,最顶层的就是根文件系统和应用程序。这样的 逻辑布局也是开发完成后Image文件在Flash存储器当中的布局。 通常开发基于ARM系统的Linux需要如下步骤,如图4―2所示【14】。第一步 开发目标硬件系统:如选择微处理器,Flash,SDRAM,Flash以及其他外设J第二步 建立交叉编译工具:产生目标板执行的代码。J第三步 开发BootLoader:建立启动系统的主引导程序41-第四步 移植Linux内核J第五步 开发一个根文件系统:如rootfs的制作J第六步 开发相关硬件的驱动程序:如网口、触摸屏等J第七步 开发上层应用程序 图4.2 ARM Linux的开发流程从4.2图中我们可以看到,第一步的搭建目标硬件系统,此部分工作已在第 四章完成。第二步建立交叉编译工具,从网上直接下载交叉工具链,并安装在 Linux系统(Fedora 8版本)上,具体步骤本文不做具体介绍。本章我们将从流程 第三步开始搭建系统软件平台。4.2BootLoader移植Bootloader概述4.2.1BootLoader所处的位置,就是系统整个软件层次的最底层。Bootloader(引导 加载程序)也是系统上电后执行的第一段代码。通常情况下,它只在系统启动时 第四苹系统软件平台开发运行非常短的时间,但是它对于嵌入式系统来说,是一个极其重要的系统组成部 分。设计或者移植一个BootLoad钮",对于嵌入式系统从某种意义上来说都是一个 最基本的要求。引导加载程序的主要运行任务就是将内核映像从硬盘上读到RAM 中,然后跳转到内核的入口点去运行,达到启动操作系统的目标【311。4.2.2BootLoader启动流程Bootloader启动大多数都分为两个阶段。第一阶段大多用汇编语言实现,进 行硬件初始化,紧密依赖于CPU的体系结构。第二阶段通常用C语言实现,实 现相对复杂的功能,同时保证程序的可读性和可移植性。图4.3归纳出Bootloader 典型的启动流程【15】。系统上电或复位 硬件设备初始化◆ 为第二阶段准备 RAM空间第__―●亨阶 段I复制Bootloader的第二 阶段代码到RAM◆设置堆栈初始化本阶段要使用 到的硬件设备’检测系统内存映射 第二◆ l将内核映像和根文件系统映像Il 从flash读到RAM中'阶 段为内核设置启动参数◆调用内核图4.3 Boofloader启动流程47 电子科技大学硕士学位论文 4.2.3BootLoader在本系统的实现Bootloader和底层硬件息息相关,严重依赖于硬件实现。也就是说,各种不 同体系结构的处理器都有不同的Bootloader。随着BootLoader的发展,它也渐渐 支持多种体系结构。典型的BootLoader如U-boot,它支持多种体系结构包括 PowerPC,ARM,MIPS,X86等等。4.2.3.1U-boot概述Boot

我要回帖

更多关于 google服务停止运行 的文章

 

随机推荐