关于C语言论文.doc_第1页
关于C语言论文.doc_第2页
关于C语言论文.doc_第3页
关于C语言论文.doc_第4页
关于C语言论文.doc_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

山东交通学院毕业设计(论文)摘要Web Service是近几年较为流行的Web应用开发技术,它改变了传统的B/S或C/S软件开发模式,为软件实体之间共同协作提供了公共平台。嵌入式的Web服务技术, 具有功能强大、实时性好、可靠性高和安全性好等优点,将成为今后Web服务技术发展的主流方向。 本文介绍了Web Service 的定义及其关键技术,对于课题要求嵌入式的Web Service的实现采用Linux+SkyEye等软件虚拟出相应的嵌入式的开发环境,利用嵌入式Linux即Uclinux来充当嵌入式的Web Service 平台。本文就课题实现所须的一些关于嵌入式和Web Service的知识进行了详细介绍,具体介绍了如何利用SkyEye等软件来模拟嵌入式系统。这样我们就不必自己去主动解析XML和了解SOAP的细节。本文是用C来实现简单的客户端和服务器端的通信程序。能够进行简单的加,减,乘,除和幂运算。我们本次设计采用的软件都是免费的,下载方便,使用简单,由此可见嵌入式Web之路因为种种的有利条件和优好的性能,必定有着广袤的前景,是必然的趋势。关键词页:1与正文间隔一行,小四号,黑体:WebService,嵌入式系统,xml,uclinux ,skyeye 页:1小四号,宋体,关键词之间用逗号隔开,最后一个关键词后不打标点符号(关键词是供读者检索用的主题词条,应采用能覆盖论文主要内容的通用词条,关键词一般列3-5个。)Abstract页:2小三号,Times New Roman字体,加粗页:2三号,Times New Roman字体,居中,下空两行。 Web Service is more popular in recent years of Web application development technologies; it has changed the traditional B / S or C / S software development model for software entities together to provide a public platform. Embedded web services technology is a powerful, real-time, high reliability and security of such advantages will become web services technology development mainstream. This paper describes the web service definition and key technologies, embedded requested topics for the web service to achieve the adoption of linux and other software skyeye + virtual corresponding embedded development environment embedded linux is to act as embedded remote web service platform. This article topics to be achieving some of the embedded web service and the knowledge of the details, give specific details of how to use the skyeye software to simulate the embedded system. In this way we would not have to take the initiative themselves to parsing xml and soap to understand the details. This is the c to achieve a simple client and the server side of the communication process. To simple, plus or minus, multiplication, addition and exponentiation. We used this design of the software are free and convenient download, easy to use, so embedded web various road because of the favorable conditions and advantages of a good performance, we have vast prospects is an inevitable trendKey words小四号,Times New Roman字体,加粗,与英文摘要正文之间间隔一行。:WebService, embedded systems ,xml,uclinux,skyeye 页:2小四号,Times New Roman字体。每一关键词之间用逗号隔开,最后一个关键词后不打标点符号。目 录页:3小三号,黑体,居中,字间空两字符前言11 绪论21.1嵌入式的现状21.2研究思路31.3发展前景31.3.1嵌入式的发展前景.31.3.2嵌入式web服务的发展前景42 WebService和其核心技术52.1 WebService的相关介绍52.2WebService体系结构62.3 WebService的核心技术82.3.1可扩展标记性语言XML82.3.2简单对象访问协议SOAP.92.3.3Web Service描述语言WSDL.92.3.4UDDI93需求分析103.1研究目的103.2运行环境规定113.3系统功能描述113.4数据流程图113.5输入输出124嵌入式下的WebService的实现124.1软件和硬件需求124.2相关基础知识介绍124.3环境配置和平台搭建134.3uclinux下的编译工具介绍194.4简单程序测试225详细设计计算器程序的实现245.1程序设计和功能实现245.2 流程图275.3程序测试27结论31致谢32参考文献33附录A部分程序原码3437前言Web Services似乎一夜之间就热了起来。世界上的顶级公司,不管是微软IBM还是SUN,都纷纷推出web Services的相关技术。然而,Web Services技术还处于不成熟的发展阶段,其运行性能也是人们关沣的焦急之一。本论文是对此背景对Web Services的实现和性能进行了深入研究和探讨。目前,被业界称为计算机IT 技术的第三次革命(继PC 和Internet 之后) 的Web Services 技术已经逐步显露出巨大商业机会,软件业因此正在酝酿一场巨变。这将是自从WWW 问世以来这个产业所面临的一次最大规模的”洗牌”,但也酝酿着巨大的商业机会。商业机会的实现,需要依靠技术和应用模式的双重保障。Web Services 技术的发展将促使Web Services 应用的成熟和完善,而Web Services 应用模式将为商业应用提供指引,那就是,传统Web 应用技术解决的问题是如何让人来使用Web 应用所提供的服务,而Web Services 则要解决如何让计算机系统来使用Web 应用所提供的服务。Web Services 技术完全基于标准的技术,只有基于标准,所有的开放厂商才有相同的准则,才能够在各自的平台上开发出具有跨平台互操作能力的软件产品和解决方案。标准是达成跨平台互操作能力的灵魂。基于本次设计的要求比较简单,只需要实现简单的嵌入式的Web Services,能够进行客户端和服务器端的简单通信就行。嵌入式的Web Services系统,具体来说就是使用嵌入式系统来实现Web Services或者类似的架构。在具体实现中,主要应用方式为使用嵌入式系统来架构服务。在这种系统中,我们使用嵌入式系统来实现Services,使用嵌入式系统来实现一些单一,简单的Web Services(服务)。形成一组组服务集群在网络上供客户端通过标准的Web Services调用方法来使用。1 绪论1.1嵌入式的现状 目前,国内外企业应用系统的结构主要有基于“客户端/服务器”的C/S结构和基于“浏览器/服务器”的B/S结构,虽然两种结构都曾广泛应用,但随着软件技术的不断不展,均暴露出了不少问题。 C/S结构,由客户端与数据库服务器构成。客户端与用户进行交流,首先向数据库服务器发出请求,然后数据库服务器响应请求,并将结果返回客户端。相对于以前的单机结构,C/S模式有了很大发展,能支持多用户共享数据库信息。但是,随着企业规模的不断扩大以及应用程序日益复杂化,这种结构的弊端逐渐暴露出来,主要表现在以下几个方面: (1)客户端需要专用软件支持,而软件安装、维护及升级需要在客户端逐台进行,工作量大。 (2)系统资源浪费,由于硬件更新远跟不上软件的更新速度,因此客户不得不在本地硬盘上安装大量软件,而实际只用到其中的很小部分。 (3)系统不支持Internet 。 B/S结构,由Web服务器负责与用户连接,响应用户请求后先对指令进行内部编码,判断指令的内容,然后执行相应的操作,需要时调用应用服务器中企业对象提供的服务,最后在服务器中产生动态的,Web页面,并回传到客户端浏览器显示结果。 B/S结构主要是利用了不断成熟的Web浏览器技术,结合浏览器的多种脚本语言(如JavaScript)和ActiveX技术才能实现其强大功能。B/S结构的客户端无需再装用户界面程序,用户界面完全由Web浏览器实现,从而使得传统C/S结构下的客户端相比大大“减肥”。但是,随着B/S结构的不断发展与应用,其不足之处也开始暴露出来,由于它不支持跨平台通信,因此在大型的企业级基于.NET 的Web Service的多层分布式体系结构的研究与应用应用系统中,一直都无法得到很好的应用。 无论是CAS还是BSS结构都只是同一数据库系统所采用的不同结构,无法在由多数据库组成的复杂系统中进行跨平台的交互,在一些大型的系统应用中,常常要整合现有的各个分布的子系统资源,而采用基于Web Service的多层分布技术正是解决这一难题的关键途径。 针对上述情况,众多的国外大公司都陆续推出来与这些技术相适应的软件开发平台和Web Service技术,例如在系统开发平台方面有微软公司的.Net平台,SUN公司的J2EE平台等;在Web服务器方面有微软公司的IIS (Internet Information Server), The Apache Group推出的Apache和Netscape公司的Enterprise Server等;在分布式技术方面上有Web Service, CORBA和DCOM等。1.2研究思路本次课题的设计要求在嵌入式设备中实现Web Service可以轻松实现嵌入式设备的远程管理以及远程获取该设备的功能及服务。嵌入式Web Service不同于简单的嵌入式Web Server。它可以建立在Web Server的基础上;也可以不需要Web Server。只要在规定的协议(XML/SOAP)基础上实现Web service的功能即可。嵌入式Web Service不需要支持全部的XML协议,只须支持必须的协议子集即可。设计嵌入式Web Service首先需要实现TCP/IP协议下的网络编程,在此基础上,进行XML协议的解析、执行。设计嵌入式Web Service,要求提供如下功能:1、能提供本地参数修改服务:可以通过XML协议来修改本地的一些工作参数,如允许建立连接的最大数等,这些参数能保存。 2、能提供数据采集的服务:模拟实现数据采集(从数据文件中抽取数据),通过Service远程提供数据。以上是最基本的功能,其他功能可以灵活发挥。运行环境:建议采用PC机,安装Linux,编写Linux下终端运行的程序。也可以采用WinCE等。如果有相应的嵌入式设备,则可以直接在相应设备上运行。对于课题要求嵌入式的Web Service的实现采用Linux+SkyEye等软件虚拟出相应的嵌入式的开发环境,利用嵌入式linux即uclinux来充当嵌入式的Web Service 平台。这个我们就不必自己去主动解析xml和了解soap的细节。先在在Linux下安装SkyEye,然后安装uclinux,实现嵌入式环境,用C来实现简单的客户端和服务器端的通信。1.3发展前景1.3.1嵌入式的发展前景嵌入式系统无疑是当前最热门最有发展前途的IT应用领域之一。嵌入式系统用在一些特定专用设备上,通常这些设备的硬件资源(如处理器、存储器等)非常有限,并且对成本很敏感,有时对实时响应要求很高等。特别是随着消费家电的智能化,嵌入式更显重要。像我们平常常见到的手机、PDA、电子字典、可视电话、VCD/DVD/MP3 Player、数字相机(DC)、数字摄像机(DV)、U-Disk、机顶盒(Set Top Box)、高清电视(HDTV)、游戏机、智能玩具、交换机、路由器、数控设备或仪表、汽车电子、家电控制系统、医疗仪器、航天航空设备等等都是典型的嵌入式系统。嵌入式技术的发展以及对未来工业革命将产生的巨大影响已经引起世界各国的高度关注。欧洲目前在航空、汽车电子、工业、通信和消费电子方面的嵌入式技术占有领导位置,为了继续保持对美国和日本的竞争对手的领先优势,欧盟在2004年成立了ARTEMIS(Advanced Research and Development on Embedded Intelligent Systems)组织,在欧洲范围内整合资金和技术优势,把嵌入式技术上升到一个重要的战略高度进行发展。欧盟认为,嵌入式技术是IT领域中发展最快的内容,并将保持巨大的技术发展和商业应用机会,掌握嵌入式技术的领导位置,将具有强大的经济和政治利益。嵌入式系统的应用领域非常广泛,在产业发展中的重要性仍在持续提升。据欧盟的统计:2003年,全球大概有80亿片嵌入式可编程微处理器。到2010年,预计会达到160亿片,地球上的人平均有3个处理器。在航空电子中,嵌入式软件的开发成本占整个飞机研制成本的50%;对于汽车工业,汽车电子在整车价值中的比例逐年提高,将从1997年的20%提升到2010年的33-40%。消费电子数量越来越大,据预测,到2010年,仅数字家在美国的销售额就将达到2000亿欧元。由此我们相信嵌入式在未来的发展中,必定有着广袤的前景。1.3.2嵌入式web服务的发展前景对于嵌入式Web服务器的研究和应用,其意义是重大的。它为我们管理、控制和监测各种各样设备提供了一个很好的途径。这种设备可以是具有有限内存资源的8位或16位系统,已足够提供一个用户界面,而且这种方式是基于Internet的。这种设备可以在世界任何一个地方,只要它连入Internet就能够控制它。目前国外的相关研究很多,如Pharlap公司的MicroWeb、AgranatSystems公司的EmWeb、EmWare公司的emMicro、Allegro公司的RomPager、WindRiver公司的Wind,还有Boa、Enea、PicoWeb、ChipWeb、Ipic、NetAcquire、Voyager、Quiotix等。国内的有Webit。如图1-1所示就是典型的嵌入式Web系统模型图1-1嵌入式Web系统模型Fig.1-1Embedded Web System Model 嵌入式Web服务器的发展是很有前景的,它为未来信息家电的网络化和信息化提货了切实可行的途径。嵌入式Web技术是现在研究的一个热点,还有很多问题需要解决,其应用的范围也有待进一步探索。2 WebService和其核心技术2.1 WebService的相关介绍研究一下当前的应用程序开发,你会发现一个绝对的倾向:人们开始偏爱基于浏览器的瘦客户应用程序。这当然不是因为瘦客户能够提供更好的用户界面,而是因为它能够避免花在桌面应用程序发布上的高成本。发布桌面应用程序成本很高,一半是因为应用程序安装和配置的问题,另一半是因为客户和服务器之间通信的问题。 传统的Windows富客户应用程序使用DCOM来与服务器进行通信和调用远程对象。配置好DCOM使其在一个大型的网络中正常工作将是一个极富挑战性的工作,同时也是许多IT工程师的噩梦。事实上,许多IT工程师宁愿忍受浏览器所带来的功能限制,也不愿在局域网上去运行一个DCOM。在我看来,结果就是一个发布容易,但开发难度大而且用户界面极其受限的应用程序。极端的说,就是你花了更多的资金和时间,却开发出从用户看来功能更弱的应用程序。不信?问问一个会计师对新的基于浏览器的会计软件有什么想法:绝大多数商用程序用户希望使用更加友好的Windows用户界面。 关于客户端与服务器的通信问题,一个完美的解决方法是使用HTTP协议来通信。这是因为任何运行Web浏览器的机器都在使用HTTP协议。同时,当前许多防火墙也配置为只允许HTTP连接。 许多商用程序还面临另一个问题,那就是与其他程序的互操作性。如果所有的应用程序都是使用COM或.NET语言写的,并且都运行在Windows平台上,那就天下太平了。然而,事实上大多数商业数据仍然在大型主机上以非关系文件(VSAM)的形式存放,并由COBOL语言编写的大型机程序访问。而且,目前还有很多商用程序继续在使用C+、Java、Visual Basic和其他各种各样的语言编写。现在,除了最简单的程序之外,所有的应用程序都需要与运行在其他异构平台上的应用程序集成并进行数据交换。这样的任务通常都是由特殊的方法,如文件传输和分析,消息队列,还有仅适用于某些情况的的API,如IBM的高级程序到程序交流(APPC)等来完成的。在以前,没有一个应用程序通信标准,是独立于平台、组建模型和编程语言的。只有通过Web Service,客户端和服务器才能够自由的用HTTP进行通信,不论两个程序的平台和编程语言是什么Web Service是一种编程模型,它提供了在可缩放的、松棍合和非特定平台的环境下交换信息的能力,交换信息使用诸如HTTP, XML, XSD, SOAP和WSDL之类的标准协议。Web Service是用标准的、规范的XML概念描述的,称为Web Service的服务描述。这一描述囊括了与服务交互需要的全部细节,包括消息格式(详细描述操作)、传输协议和位置。Web Service不是简单的我们平时访问的网站,或者网页。它是分布式技术在互联网时代的新发展。本质上说,它是松散藕合的、可复用的软件模块;从外部使用者的角度来看,Web Service就是一种部署在Web上的对象/组件。它们发布以后可以通过标准的Internet协议在用户使用任何语言编写的客户端程序中访问,也可以通过浏览器的形式访问。具体来说,可以分为以下几点: 首先,Web Service是可复用的软件模块,Web Service是对软件开发中面向对象设计的发展和升华。基于组件的模型允许开发者复用其它人创建的代码模块,组成或者扩展它们,形成新的软件。 其次,这些软件模块是松散祸合的。传统的应用软件设计模式要求各个单元之间紧密连接,这种联接形成的复杂性要求开发者必须对联接的两端元素有完全的了解和控制能力。而且,这种连接一旦建立后,很难从中把一个元素取出,用另外一个元素代替。相反,松散祸合的系统,只需要很简单的协调,并允许自由的配置。 第三,从语义上看,Web Service封装了离散的功能。一个Web Service就是一个自包含的小程序,完成单个的任务。Web Service的模块使用其它软件可以理解的方式描述输入和输出。其它软件知道它能做什么,如何调用它的功能以及返回什么结果。 第四,Web Service可以在程序中访问。和Web网站或桌面程序不同,Web Service的设计更多的是为了被其他软件调用,并与其它软件交换数据。最后,Web Service是在Internet或者Intranet上发布的。与以往的组件模型不同的是,调用Web Service时并不是通过特定的组件模型协议,而是通过互联网的标准协议HTTP和标准数据格式XML的SOAP(Simple Object Access Protocol)协议,因此克服了传统组件模型间不能互通讯的缺点。此外,Web Service的接口是通过它所能接受的请求消息和产生应答消息的消息格式来定义的,因此我们可以在任何第一章关键技术:XML和Web Service平台下使用任何程序设计语言来编写程序调用Web Service,只要它能按照Web Service接口所要求的形式生成请求消息并应答消息。2.2WebService体系结构WebService是用面向对象技术封装起来的对象,它对外以对象方法的形式提供服务,在Internet 环境中,提供远程发现和调用的机制。首先,对象在UDDI (其功能类似DNS) 中注册,则应用开发就可以利用其发现机制,查找所需的服务, UDDI 就会返回查找结果(服务名称和位置) 。应用开发就可以通过SOAP 协议访问远程的Web Service , 远程的Web Service 通过身份认证后,就会调用其方法,并将结果返回应用程序。Web Service 这些服务是用WSDL 来描述的。Web Service 的体系结构图如图2-1:图2-1体系结构图Fig2-1Architecture plans 更加直观的表示方法如图2-2所示:图2-2体系结构图Fig2-2Architecture plans WebService体系结构是面向服务的体系结构(SOA),是基于三种角色(服务提供者,服务注册中心和服务请求者)之间的交互。这种交互涉及到的内容包括发布,查找和帮定操作。图2-2显示了这些操作和提供这些操作的组件及他们之间的交互过程。 这里这里服务提供者定义了Web Services的服务捕述并把它发布到服务请求者或注册服务中心。服务请求者使用盘找操作从本地或服务注册中心检索服务描述, 然后使用WSDL与服务提供者进行绑定并调用Webervices实现或同它交互。2.3 WebService的核心技术从表面上看,Web Service 就是一个应用程序, 它向外界提供一个可被Web 调用的应用程序接口。也就是说, 用户可以用编程的方法通过Web来调用这个应用程序。其基本理念是: 把软件做成服务, 且遵从相应的标准, 让不同的系统可以跨越平台, 彼此相互兼容, 具有无缝通信和数据共享的能力。Web Service 技术架构由以下相关标准协议构成。如图2-3所示: 图2-3Web Service的技术架构图Fig2-3 Web Service Technology chart Web Service 技术要让异构平台上的不同系统可以互相通信和共享数据, 数据在Web上传输必须以XML 标准进行, XML 是Web Service 的基石。而且,不同系统必须遵从SOAP协议来传输XML 数据, SOAP是利用XML 技术与远程过程调用的通讯协议, 它把对象间的请求和响应都打包成XML文档, 以HTTP方式在对象间传递。通过WSDL (Web Service Description Language) 协议可以让其它系统了解本系统Web Service 提供了哪些服务和功能, 它用机器可阅读形式描述本系统的Web Service, 从而让其它系统可以调用本系统提供的服务。2.3.1可扩展标记性语言XML可扩展标记语言(XML) 是Web Service 平台中表示数据的基本格式,是一种数据结构化标准语言。除了易于建立和易于分析外,XML 主要的优点在于它既是平台无关的, 有时厂商无关的。W3C 制定的XML Schema(XSD) 定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型。Web Service 平台就是利用XSD来作为其数据类型系统的。XML是一种界定文本数据的简单而标准的方法,它是开放的、自描述的。可以说,XML是为Web设计的。它使我们可以方便地与其他人或者应用程序之间共享数据,这也是Web Services使用XML作为其数据存储的原因。Web services使用XML作为表示数据的标准方法。大多数Web services相关的规范使用XML作为数据表示形式,并使用XML架构述数据类型。XML(extensible Markup Language 可扩展标记 言)是针对网络应用的一项新技术。SGML, HTML都是我们非常熟悉的标记语言,XML也是标记语言的一种。XML也是SGML的一个子集,它不仅继承了SGML的优点,并在此基础上去掉了SGML的不重要的部分。使之变得简单、易学、好懂。XML具有内容和形式的分离,良好的扩展性,良好的跨平台移植性和良好的自捕述等特点。2.3.2 简单对象访问协议SOAPSOAP (Simple Object Access Protocol , 简单对象访问协议) 是一种基于XML的不依赖传输协议的表示层协议,用来在应用程序之间方便地以对象的形式交换数据。Web services使用SOAP作为它的标准通信协议。SOAP是一个用来在分散,分布式的环境巾交换信息的简单协议,它是一个基于XML的协议。因为SOAP消息的格式是标准的,并且是基于XML的,所以SOAP可以用来在不同的计算机体系结构、不同的语言和不同的操作系统之间进行通信。2.3.3 Web Service描述语言WSDLWSDL(Web Services Description Language,Web services描述沿言)是由Microsoft和IBM合作开发的一种基于XML的协定语言。它用来定义Web services并捕述如何访问这些服务。WSDL文档把Web 8elvices定义为一组在包含面向文档或面向过程信息的消息上执行操作的端口(endpoin1)。其中操作(operation)和消息(message)采用抽象方式进行捕述。然后把它们绑定到具体的网络协议和消息格式上来定义一个具体的端口。多个相关的具体端口结合在一起就构成了服务(service)。WSDL是可扩展的,用户可以使用它来描述端点和消息i 不用考虑实际通信所使用的网络协议。当用户获取Web services的WSDL文档后,就能从中得知Web services所处的位置、它所包含的方法,以及每个方法的参数和返回值的类型等信息,并使用这些信息来执行方法调用。2.3.4UDDIUDDI(统一描述、发现和集成协议)计划是一个广泛的,开放的行业计划,它使得商业实体能够 (1) 彼此发现。(2) 定义他们怎样在internet上互相作用,并在一个全球的注册体系架构中共享信息。UDDI是这样一种基础的系统构筑模块,他使商业实体能够快速,方便地使用他们自身的企业应用软件来发现合适的商业对等实体,并与其实施电子化的商业贸易。 UDDI同时也是Web服务集成的一个体系框架。它包含了服务描述与发现的标准规范。UDDI规范利用了W3C和Internet工程任务组织(IETF)的很多标准作为其实现基础,比如扩展标注语言(XML),HTTP和域名服务(DNS)这些协议。另外,在跨平台的设计特性中,UDDI主要采用了已经被提议给W3C的SOAP(Simple Object Access Protocol,简单对象访问协议)规范的早期版本。UDDI是一套面向WEB服务的信息注册中心的实际标准和规范。创建UDDI注册中心的目的实现WEB服务的发布和发现。利用UDDI规范在WEB上建立发现服务,这些发现服务为所有请求者提供了一致的接口。使得已经发布的WEB服务能通过编程并需要的请求者发现。UDDI规范文本定义了UDDI操作人口站点(UDDI Operator Site1能够支持的API接口和API中用XML描述的数据结构的具体定义。组成Web services标准的各协议之间的层次关系如图2-4: Work Flow WSFLUaivcrsal Description,Discovery,and IntegrationUDDLServices DescriptionWSDLMessagingSOAPExtensible Markup LanguageXMLTransport ProtocolsHTTP and others 图2-4层次关系图Fig2-4 Hierarchy Chart3需求分析3.1研究目的研究目的:Linux下嵌入式web服务的研究与实现。Web Services 技术的发展将促使Web Services 应用的成熟和完善,而Web Services 应用模式将为商业应用提供指引,那就是,传统Web 应用技术解决的问题是如何让人来使用Web 应用所提供的服务。Web Services 则要解决如何让计算机系统来使用Web 应用所提供的服务。Web Services 技术完全基于标准的技术,只有基于标准,所有的开放厂商才有相同的准则,才能够在各自的平台上开发出具有跨平台互操作能力的软件产品和解决方案。如何在嵌入式设备中实现Web Service,实现嵌入式设备的远程管理以及远程获取设备的功能及服务,是我们研究的重点。3.2运行环境规定硬件环境CPU:Pentinum以上内存:128MB以上时钟频率:90MHz以上硬盘:1GB以上软件环境OS:linux9.0以上版本编译和测试软件: SkyEye,uclinux3.3系统功能描述在嵌入式系统下,本设计采用的是uclinux系统,实现Web Service。具体表现为客户端和服务器进行简单的通信,即能够进行加,减,乘,除运算。服务器端运行后,客户端向服务器端发送运算请求,服务器做出响应,在客户端出现运行结果。3.4数据流程图客户端服务器端运算加减乘除3.5输入输出输入:阿拉伯数字,运算命令(+,-,*,/)输出:结果4嵌入式下的WebService的实现4.1软件和硬件需求硬件要求为:能够装上和运行linux9.0的电脑。软件:需要安装linux9.0, linux下安装Skyeye, 安装arm-elf交叉编译器,安装ucosii for skyeye,编译并运行uClinux-dist-20020927.tar.gz,gcc。4.2相关基础知识介绍 要在嵌入式系统下进行开发,就要建立嵌入式的开发平台,uclinux是当前广泛使用的一种嵌入式的操作系统。 uCLinux 是Linux 2.0核心的分支,是针对没有MMU管理单元的微控制器,继承了Linux的大多数特性。多数的Linux下应用程序和驱动程序都可以在uClinux下运行。 虽然大多数 Linux 系统运行在 PC 平台上,但 Linux 也可以作为嵌入式系统的操作系统。Linux 的安装和管理比 UNIX 更加简单灵活,这对于那些 UNIX 专家们来说又是一个优点,因为 Linux 中有许多命令和编程接口同传统的 UNIX一样。但是对于习惯于Windows操作系统的人来说,需要记忆大量的命令行参数却是一个缺点。随着Linux社团的不断努力,Linux的人机界面开发环境正在不断完善。典型的Linux系统经过打包,在拥有硬盘和大容量内存的 PC 机上运行,而嵌入式系统不需要这么高的配置。一个功能完备的 Linux 内核要求大约 1 MB 内存。而 Linux 微内核只占用其中很小一部分内存,包括虚拟内存和所有核心的操作系统功能在内,只需占用系统约100KB内存。只要有 500KB的内存,一个有网络栈和基本实用程序的完全的 Linux 系统就可以在一台 8 位总线(SX)的 Intel 386 微处理器上运行得很好了。由于内存要求常常是由应用的需要所决定的,例如 Web 服务器或者 SNMP 代理,Linux 系统甚至可以仅使用 256 KB ROM 和 512 KB RAM 进行工作。因此它是一个瞄准嵌入式市场的轻量级操作系统。与传统的实时操作系统(RTOS)相比,采用像嵌入式 Linux 这样的开放源码的操作系统的另外一个好处是 Linux 开发团体看来会比 RTOS 的供应商更快地支持新的 IP 协议和其他协议。例如,用于 Linux 的设备驱动程序要比用于商业操作系统的设备驱动程序多,如网络接口卡(NIC)驱动程序以及并口、串口驱动程序。Linux 操作系统本身的微内核体系结构相当简单。网络和文件系统以模块形式置于微内核的上层。驱动程序和其他部件可在运行时作为可加载模块编译到或者是添加到内核。这为构造定制的可嵌入式系统提供了高度模块化的构件方法。而在典型情况下该系统需结合定制的驱动程序和应用程序以提供附加功能。嵌入式系统也常常要求通用的功能,为了避免重复劳动,这些功能的实现运用了许多现成的程序和驱动程序,它们可以用于公共外设和应用。Linux 可以在外设范围广泛的多数微处理器上运行,并早已经具备了现成的应用库。Linux用于嵌入式的因特网设备也是很合适的,原因是它支持多处理器系统,该特性使Linux具有了伸缩性。因而设计人员可以选择在双处理器系统上运行实时应用,提高整体的处理能力。例如,可以在一个处理器运行GUI,同时在另一个处理器上运行Linux系统。在嵌入式系统上运行 Linux 的一个缺点是 Linux 体系提供实时性能需要添加实时软件模块。而这些模块运行的内核空间正是操作系统实现调度策略、硬件中断异常和执行程序的部分。由于这些实时软件模块是在内核空间运行的,因此代码错误可能会破坏操作系统从而影响整个系统的可靠性,这对于实时应用将是一个非常严重的弱点。尽管如此,已经有许多嵌入式 Linux 系统的示例,可以有把握地说,某种形式的 Linux 能在几乎任一台执行代码的计算机上运行4.3环境配置和平台搭建(1)在Linux下安装SkyEye开源软件包要求先在在PC机上安装Red Hat linux9.0以上版本。SkyEye是一个开源软件(OpenSource Software),中文名字是“天目”。SkyEye的目标是在通用的Linux和 Windows平台实现一个纯软件模拟集成开发环境,模拟常见的嵌入式计算机系统。让我们在这种虚拟的嵌入式环境下进行嵌入式平台下的操作。可在SkyEye上运行Linux、uclinux等多种嵌入式操作系统和各种系统软件(如TCP/IP,图形子系统,文件子系统等),并可对它们进行源码级的分析和测试。通过SkyEye仿真集成环境可以很方便地进入到嵌入式系统软件学习和开发的广阔天地中。尤其对于缺少嵌入式硬件开发环境和软件开发环境的用户来说,它将是一个非常有效的学习工具和开发手段,因为SkyEye的整个软件系统都是Open Source的,且基于GPL协议(COS-II除外)。因此,如果要学习Linux操作系统或者进行嵌入式系统开发,但苦于没有硬件支持,SkyEye仿真环境软件是一个很好的选择! 如果想研究与具体硬件无关的系统软件(如TCP/IP协议栈等),采用SkyEye可以有效地提高工作效率,因为你可以直接在COS-II和CLinux for SkyEye上进行开发和调试,而与具体硬件打交道的各种driver已经存在,且有源码级调试环境,只需关心高层的逻辑设计和实现就可以了。 由于SkyEye的目标不是验证硬件逻辑,而是协助开发、调试和学习系统软件,所以在实现上SkyEye与真实的硬件环境相比还是有一定差别的。SkyEye在时钟节拍的时序上不保证与硬件完全相同,对软件透明的一些硬件模拟进行了一定的简化,这样带来的好处是SkyEye的执行效率更高。SkyEye并不能取代开发板等硬件的功能,但通过它可以比较容易进入到嵌入式软件的广阔天地中。由于SkyEye建立在GDB基础之上,使用者可以方便地使用GDB提供的各种调试手段对SkyEye仿真系统上的软件进行源码级的调试,还可以进行各种分析,如执行热点分析、程序执行覆盖度分析等。由于SkyEye提供了源代码和相关文档,有经验的用户完全可以修改和扩充SkyEye来满足自己的需求。SkyEye硬件模拟逻辑结构图如下图4-1图4-1硬件模拟逻辑结构图Fig4-1Hardware simulation logic chart 目前SkyEye模拟了大量的硬件,包括CPU内核、存储器、存储器管理单元、缓存单元、串口、网络芯片、时钟等。下面做一简单介绍。CPU和开发板系列SkyEye可以模拟的CPU主要是基于ARM内核的CPU,包括ARM7TDMI,ARM720T,ARM9TDMI,ARM9xx,ARM10xx,StrongARM,XScale等。ARM7/9/10TDMI是ARM系列CPU的基本核心部分,它们不支持MMU/CACHE和一些扩展指令,是ARM CPU基本核。ARM720T、ARM920T、ARM10xx、StrongARM、Xscale是建立在以上ARM CPU核上,并扩展了MMU/CACHE和其它功能。各硬件开发公司可以根据它们的需求在上述CPU核上加上特定的扩展,形成基于各种ARM基本核心的特定CPU,如Atmel91X40和 ep7312,分别扩展了ARM7TDMI和ARM720T的内存控制和各种I/O控制器,简化了开发板的逻辑设计,大大增强了开发板的功能。SkyEye模拟的开发板包括基于Atmel 91X40/AT91RM92 CPU的开发板,基于Crirus Logic ep7312的开发板、基于StrongARM CPU的ADSBITSY开发板,基于XScale PXA250 CPU的LUBBOCK开发板、基于SAMSUNG S3C4510B/S3C44B0 CPU的开发板、基于SHARP LH7A400 CPU的开发板、基于Philip LPC22xx CPU的开发板等。主要模拟了对应各个开发板的串口、时钟、RAM、ROM、LCD、网络芯片等硬件外设目前能在SkyEye上运行下面的操作系统和系统软件有uC/OSII-2.5.x(支持网络),uClinux(基于Linux2.4.x内核, 支持网络),ARM Linux 2.4.x/2.6.xlwIP on uC/OSII基于uC/OSII, uclinux, ARM Linux的应用程序。有了Skyeye,我们就可以通过SkyEye可以模拟嵌入式环境进行嵌入式开发,帮助促进嵌入式系统的学习,在不需要额外硬件的情况下学习和分析uclinux操作系统和其它嵌入式操作系统,如ucosII等,通过skyeye促进操作系统的研究,如ucosII,uclinux+RTAI,uclinux2.5.x等。SkyEye的安装存储器管理单元和缓存单元MMU(Memory Management Unit)即存储器管理单元,是用来管理虚拟内存系统的硬件。MMU的两个主要功能是:将虚地址转换成物理地址;控制存储器的存取权限。MMU关掉时,虚地址直接输出到物理地址总线。MMU本身有少量存储空间存放从虚拟地址到物理地址的匹配表,此表称作TLB(Translation Lookaside Buffers)。TLB表中保存的是虚址及其对应的物理地址,权限,域和映射类型。当CPU对一虚拟地址进行存取时,首先搜索TLB表以查找对应的物理地址等信息,如果没有查到,则进行查找translation table,称为Translation Table Walk(简称TTW)。经过TTW过程后,将查到的信息保存到TLB。然后根据TLB表项的物理地址进行读写。CACHE是缓存单元,主要用于缓存内存中的数据,其读写速度远快于内存的读写速度,所以可以提高CPU的内存数据的访问效率。write/read buffer硬件单元的作用与CACHE的作用类似。MMU、CACHE、write/read buffer一般是高性能CPU的重要组成部分,且不同类型CPU的MMU、CACHE、write/read buffer的逻辑行为也有一定的差异。为了支持模拟多种类型CPU的MMU/CACHE,SkyEye包含了一个通用的MMU/CACHE模拟实现。通过对一些参数的调整可以支持模拟多种类型的MMU/CACHE物理结构和逻辑行为。 网络芯片目前SkyEye模拟了网络芯片8019AS,其特点是:NE2000兼容,内建 16KRAM缓冲区,10MB传输速率。虽然目前模拟的开发板上不一定有网络芯片8019AS,但我们可以在我们模拟的开发板上加上

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论