第5章嵌入式Linux开源软件移植与应用课件

上传人:我*** 文档编号:140717161 上传时间:2020-07-31 格式:PPT 页数:62 大小:440.50KB
返回 下载 相关 举报
第5章嵌入式Linux开源软件移植与应用课件_第1页
第1页 / 共62页
第5章嵌入式Linux开源软件移植与应用课件_第2页
第2页 / 共62页
第5章嵌入式Linux开源软件移植与应用课件_第3页
第3页 / 共62页
第5章嵌入式Linux开源软件移植与应用课件_第4页
第4页 / 共62页
第5章嵌入式Linux开源软件移植与应用课件_第5页
第5页 / 共62页
点击查看更多>>
资源描述

《第5章嵌入式Linux开源软件移植与应用课件》由会员分享,可在线阅读,更多相关《第5章嵌入式Linux开源软件移植与应用课件(62页珍藏版)》请在金锄头文库上搜索。

1、第5章 嵌入式Linux开源软件移植与应用,第五章 嵌入式Linux接口设计与 驱动程序,主要内容 第一节 嵌入式WebServer GoAhead的移植与应用 第二节 嵌入式WebService gSOAP的移植与应用 第三节 嵌入式数据库SQLite的移植与使用 第四节 播放器Mplayer的移植 第五节 ffmpeg应用 第六节 开源软件移植的一般过程 第七节 J2ME-phoneME移植 第八节 嵌入式浏览器konqueror移植,1,第五章 嵌入式Linux接口设计与 驱动程序,主要内容 高端嵌入式系统往往基于一个功能强大的操作系统,而使用Linux进行架构的好处之一就是可以从X86

2、机上移植大量软件做嵌入式开发。本章介绍了多个软件的移植以及应用,包括嵌入式Web 服务 GoAhead、嵌入式数据库SQLite、嵌入式媒体播放器Mplayer、JVM phoneMe、Web 服务gSOAP、Web 浏览器Konqueror。由于Linux软件的开源特点以及交叉编译工具的使用,向嵌入式平台上移植丰富的软件成为一件非常轻松的事情。需要特别注意的是相关软件的版本与依赖关系,包括交叉编译器。,2,内容: 一、嵌入式Web服务器 二、GoAhead介绍 三、GoAhead在ARM平台上的移植 四、页面操作,第一节 嵌入式WebServer GoAhead的移植与应用,3,随着后PC机

3、时代的到临,计算机的发展已经从以PC机为中心转向了以嵌入式系统为中心的方向:嵌入式系统的迅猛发展和IA(信息电器)的不断成熟使得其应用越来越广泛。其中,嵌入式系统与网络的结合也是当今发展的一大趋势,而嵌入式网络技术的产生正好迎合了这个趋势。由于嵌入式系统的专用性强、体积小且价格低廉,使得嵌入式设备已经开始应用于智能家居系统、工业智能化从站系统、LED网络控制显示屏系统、网络安全加密系统等各个网络相关领域。 在嵌入式设备中,所谓的瘦Web服务器,即功能不会很全面的Web服务器,往往拥有有限的资源。因此实现嵌入式WebServer方案的主要技术难点是:在不影响其整体性能的前提下,如何利用它自身有限

4、的资源,同时又必须满足Web应用服务器的特征。,4,第一节 嵌入式WebServer GoAhead的移植与应用 一、嵌入式Web服务器,由下图可以看出:由于HTML语言的标准统一性,只要在嵌入式设备中存在一个微型服务器,就可以使用任意一种Web浏览器接收和发送信息。所以如何在嵌入式设备中设计和安装Web服务器,就成了嵌入式Web服务器的发展和研究方向。,5,第一节 嵌入式WebServer GoAhead的移植与应用 一、嵌入式Web服务器,GoAhead Webserver是为嵌入式设备的需要而设计的。该Webserver软件不仅开源,而且具有各种各样的特性,包括支持活动服务页、嵌入Jav

5、a描述语言、in-process CGI形式、SSL、文摘访问认证、用户管理和标准CGI等,脚本大小仅为60K。这对于那些需要在基于浏览管理模式的设备上传递动态信息的系统管理开发人员来说,这点非常重要。 GoAhead Webserver支持多种操作系统和开发平台,包括Windows NT/98/95、Windows CE、Embedded Linux、Linux、VxWorks、QNX和Lynx等,它也有其它操作系统的定制产品,因此具有很强大的可移植性。GoAhead网络服务器的发展同时也促进了嵌入式网络服务器的源代码的进化。由于其开源,世界各地的厂商和爱好者都纷纷下载并优化GoAhead的

6、源代码,这也使得GoAhead WebServer成为市场上最优秀的嵌入式网络服务器之一。 作为一款嵌入式Web服务器,GoAhead具有如下特点: 优点:免费,体积小巧,支持多平台,完全针对嵌入式系统设计,支持嵌入的JavaScript与动态数据页。 缺点:其对ASP的支持意味着要依靠微软的平台,安全方面的考虑很少。,6,第一节 嵌入式WebServer GoAhead的移植与应用 二、GoAhead介绍,完成GoAhead移植后,需要在此基础上完成系统运行所需要的页面文件,透过页面文件来实现Web对终端的管理。 页面操作方式有三种,如下介绍所示: 1,静态页面 静态页面可在http编辑工具

7、中完成,完成直接下载至相应的Web存放目录即可,此种方式可完成诸如说明文档、终端信息等固定内容,但无法和用户进行交互操作。 2,cgi页面 cgi页面,即可用C语言编辑的页面,其操作方式可参考cgitest.c文件(该文件存放在GoAhead2.18webcgi-bin目录下),使用时需要将此文件加入项目中一起编辑。GoAhead WebServer任务启动后,在地址栏中直接输入192.168.0.121cgi-bincgitest(其中192.168.0.121为Web服务器的IP地址)就可以观察到相应结果。GoAhead的cgi入口处理中,在地址栏内如果带有cgientry=name的字样

8、时,则处理器会寻找name函数来处理该请求,相反,如果没有此请求字样时,GoAhead搜索名称为name_cgientry的函数,即请求的名称增加后缀_cgientry;另外需要注意的是cgi任务的退出要使用return,而不是使用任务删除,return退出后,系统会重新定位stdin、stdout等,否则由cgi重定位的输入输出会保持,会影响后续的其他类型的Web请求。,7,第一节 嵌入式WebServer GoAhead的移植与应用 四、页面操作,3,嵌入式Javascript 嵌入式Javascript是GoAhead WebServer提供的一种方式,其采用表单提交的方式,提供了完善的

9、输入输出流程控制,同样可采用C语言进行设计,可很好的与系统其它部分实现代码共享。如Today is ,此句代码即可在网页上输出“Hello World”字样。 由于采用表单提交的方式,通过特殊的标记印记,嵌入已经实现的C函数至页面文件中,在提交时,由已经在系统定义并注册的函数来接收处理,通过代码写Web页面来实现输出。其设计过程主要涉及以下几个方面: 1)页面设计。嵌入式Javascript文件为asp文件,其内容可按照标准的javascript来设计,在创建页面过程中,如果需要从原系统中动态生成页面,如当前终端的参数配置,此时需要使用嵌入式Javascript的独立定义,在需要嵌入创建函数的

10、地方用如下格式加入:,此函数需要事先定义好并在系统启动向WebServer注册完成。,8,第一节 嵌入式WebServer GoAhead的移植与应用 四、页面操作,2)创建函数定义:一个标准的创建函数int aspCreateHomeAsp(int eid, webs_t wp, int argc, char_t *argv),前面两个参数为页面参数,不能改动。 3)注册创建函数:websAspDefine(T(CreateCurrentUser), aspCreateHomeAsp)使用此函数注册后,如果asp页面中出现,则WebServer会调用aspCreateHomeAsp()来输出

11、页面。 4)Form提交函数:要达到交互使用,则必须响应用户提交,要做到这一点,很简单,在页面中加入 ,其中AddGroup即为响应时系统调用的注册后的函数。当然,需要提交的按钮项需在此form体内完成。其函数格式为:static void formAddGroup (webs_t wp, char_t *path, char_t *query)。 5)注册Form提交函数:websFormDefine(T(AddGroup), formAddGroup),webServer运行此函数后,当页面用提交时则调用formAddGroup()函数来处理。,9,第一节 嵌入式WebServer GoA

12、head的移植与应用 四、页面操作,内容: 一、gSOAP介绍 二、gSOAP裁减 三、gSOAP应用,第二节 嵌入式WebService gSOAP的移植与应用,10,Web Service是近几年较为流行的Web应用开发技术。它改变了传统的B/S或C/S软件开发模式,为软件实体之间共同协作提供了公共平台。而这里我们所使用的gSOAP则是其中非常方便使用在嵌入式系统上的编译工具。 gSOAP编译工具提供了一个SOAP/XML关于C/C+语言的实现,它利用编译器提供了一组透明化的SOAP API,这就将与开发无关的SOAP实现细节对用户隐藏起来。因此,使用gSOAP工具生成程序非常方便。gSO

13、AP的使用范围也非常广泛,能够集成C/C+代码、Fortran代码、其他SOAP程序提供的实时软件的资源和信息;可以跨越多个操作系统,语言环境等等。gSOAP包含一个WSDL生成器,可以生成Web服务的解释。通过gSOAP的解释器以及导入器,用户可以不需要分析Web服务的细节就能够实现一个客户端或者服务端程序。 gSOAP可以理解为一个C/C+的Web服务协议栈,该协议栈主要包括五部分:网络传输,Web服务调用(消息传输),Web服务描述与注册(接口描述、发布与发现),Web服务质量(安全性,可靠性,事务控制),Web服务工作流(商业流程、事务等),11,第二节 嵌入式WebService g

14、SOAP的移植与应用 一、gSOAP介绍,12,第二节 嵌入式WebService gSOAP的移植与应用 一、gSOAP介绍,虽然gSOAP实现Web服务协议栈比较复杂,但是用gSOAP开发Web Service是非常方便的。gSOAP工具包中提供了两个可执行文件,wsdl2h和soapcpp2。 wsdl2h用来解析wsdl文档生成描述服务的C/C+头文件,例如你可以用如下的命令将一个wsdl文档转换为一头文件: $ ./wsdl2h o outputfile.h inputfile.wsdl 上面的命令根据制定URL提供的WSDL文档生成一个C+语法结构的头文件。假如需要生成一个纯C的头

15、文件,需要用如下命令: $ ./wsdl2h c o outputfile.h inputfile.wsdl 其中inputfile.wsdl可以是本地文件系统上的文件,也可以存在于Web页上,例如: $ ./wsdl2h -c -o outputfile.h http:/xxx.xxx.xxx/xxx/inputfile.wsdl soapcpp2用来解析上面生成的头文件并生成框架代码,这些框架代码是:soapStub.h 从输入头文件生成的经过修改且带名称空间前缀的头文件,soapH.h 主头文件,所有客户机和服务源代码都要将其包括在内,soapC.c 指定数据结构的序列化器和反序列化器,

16、soapClient.c客户机存根例程,soapServer.c服务器端存根例程,13,第二节 嵌入式WebService gSOAP的移植与应用 一、gSOAP介绍,另外,在gSOAP工具包中还包含两个重要的文件:stdsoap2.h和stdsoap2.c/cpp。其中stdsoap2.h是stdsoap2.c/cpp 运行时所需库的头文件,stdsoap2.c/cpp是运行时 C/C+ 库,带 HTTP/SOAP 解析器和运行时支持例程。用户可以用这两个文件和上述的框架代码方便的进行客户端/服务器端开发。,14,第二节 嵌入式WebService gSOAP的移植与应用 一、gSOAP介绍,用gSOAP开发的Web Service服务器端和客户端的交互模型,如图所示。从图中可以看出:soapC.c和stdsoap2.c是构成客户机与服务端的重要的源文件,其中soapC.c是上面提到的序列化器和反序列化器,当建立请求或响应时需要用到它的序列化功能,而解析请求或响应时需要用到它的反序列化功能。stdsoa

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号