第六章应用层5.ppt_第1页
第六章应用层5.ppt_第2页
第六章应用层5.ppt_第3页
第六章应用层5.ppt_第4页
第六章应用层5.ppt_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

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

文档简介

1、1,第六章应用编程与数据处理,2,教材内容,6.1 程序与数据评价 6.1.1 程序与数据信息的表现 6.1.2 开放性 6.1.3 兼容性 6.2 汇编与C 6.2.1 汇编语言 6.2.2 C语言 6.2.3 汇编与C嵌入式编程举例 6.3 Java,6.4 .NET与XML 6.5 应用编程与数据处理 6.5.1 应用编程 6.5.2 数据处理 6.5.3 电子阅读器应用举例 6.6 嵌入式系统测试 6.6.1 软件测试 6.6.3 综合测试举例,在硬件、引导、操作系统等的基础上,应用程序最终实现了各项具体功能。在应用层上,信息是整个系统各部分之间的接口交换的基本形式,落实到应用程序上则

2、是各种类型的变量、对象所包含的数据。因此所有信息的变换、处理的实现就是各种数据处理。程序则是这些数据处理过程的具体实现。为了保证产品的研发周期等,应用层系统须具备足够的开发性、兼容性、可复用性等。,3,6.1 程序与数据评价6.1.1 程序与数据信息的表现,信息是人们适应外部世界并且使这种适应反作用于外部世界的过程中,向外部世界之间相互交换的内容和名称。 信息是事物运动的状态和方式,是关于事物运动的千差万别的状态和方式的知识。 状态:对象的属性,各种特性在某一时刻的取值等。 方式:对象在各种状态间变化、在某一状态下与外界环境之间发生相互作用的方式等。 从四个方面认识信息: 基本属性、状态、保证

3、、表现。,4,1.信息的基本属性 真实:反映事务的客观实际状态; 完整:从某一方面充分反映事务的状态; 保密:信息只对某些用户可见; 时效:事物的状态永远在变,信息在一段时间内是真实有效的; 处理:事物的各项特性状态之间存在联系,可利用某些状态通过一定的变换处理得到其它状态。,5,2.信息的状态 获取信息的目的是利用信息,利用信息的过程包括三个状态: 处理:根据已知的信息获得未知的信息;,3.信息的保证 利用信息则要求它是真实可靠的,保证信息真实可靠: 安全土壤:保证信息安全的使用环境,由软件承载介质、生命时间、唯一标识标志、基础安全算法、启动与销毁策略、安全认证体系构成; 安全算法:在利用信

4、息的各阶段中判断信息安全、避免信息失效、一旦失效恢复信息的工作策略。 相关规范:标准化,保证各种信息设备都能具备足够的信息安全性能。,传播:信息从一个主体向另一个主体的传递,包括实体的通信、也包括虚拟的进程信息传递等。 存储:对历史信息的记忆。,6,4.信息的表现 状态:数据,各种类型的变量、数据结构、文件等,对象的属性,各种特性在某一时刻的取值等。 方式:程序,静态、动态地管理各种变量、文件等,各类控制流。对象在各种状态间变化、在某一状态下与外界环境之间发生相互作用的方式等。,信息表现的评价:开放性、兼容性、安全性、沉淀性、表达力、效率、可靠。,7,6.1.2 开放性,软件开放的三个层次:

5、1.开放API 向其它软件提供函数调用,他人可通过调用函数使用该软件,但不知道软件的任何具体实现细节。 2.开放源代码 向他人公开某一版本软件的所有程序代码,使用者可以调用,也可以对软件进行修改并重新编译使用。 3.开放标准,开放本软件与外界环境之间信息(数据)交换的所有接口标准,使用者可依据此标准设计各种配套软件。 开放本软件的结构以及各内部组件之间信息交换的所有结构和接口标准,使用者可依据此标准设计与该软件完全兼容的软件。,8,6.1.3 兼容性,兼容性指计算机各硬件之间、软件之间或软硬件之间的互相配合的默契程度。 A兼容B:B产品(硬件、软件)上使用的硬件组件、数据、程序,在A产品(硬件

6、、软件)上也可以使用。 1.时间上,存在向上兼容和向下兼容 2.类别上,存在不同程序和数据之间的兼容,9,6.2 汇编与C,五层与语言关系图,10,6.2.1 汇编语言,1.汇编语言与机器语言 机器语言:CPU可识别的二进制编码,CPU根据各编码数据选择执行相应的操作。 一条完整的机器语言指令由一条操作码和若干操作数组成,占据一定的存储空间。 枯燥的机器编码指令难以记忆、理解,因此利用一系列字母符号代表其中的操作码和操作数,以便使用,称为助记符。 由助记符构成的指令即汇编指令,在利用汇编指令设计程序的过程中需要一些对程序代码的各种说明信息,如代码的段属性、绝对地址空间说明、注释等,这些代码不对

7、应任何机器指令编码,称为伪指令,汇编指令和伪指令的总集即为基本的汇编语言。,11,2.宏汇编语言 在软件设计过程中,除了对软件及其运行平台的各种操作之外,还需要对软件的编译连接等过程进行控制,这些控制说明称为宏指令,例如可根据一定的条件选择编译部分代码。 含有宏指令的汇编指令总集称为宏汇编语言。,12,汇编语言的构成,13,3.汇编语言的主要特点 直接硬件控制,硬件操作灵活、高效 程序紧凑,规模小 运行速度快 指令依赖处理器,功能有限,编程烦琐 可读性、移植性和可重用性差! 兼容性差,14,6.2.2 C语言,1.C语言与UNIX操作系统 1969年 汇编语言 Unix 1970年 B语言 1

8、973年 C语言 Unix 1977年 可移植C语言编译器 1978年 C语言独立 2. C语言的版本 1978年 The C Programming Language Brian Kernighan和Dennis M.Ritchie合著 Kint b=3; int temp; printf(before swap a = %d, b = %d n,a,b); _asm mov temp,a mov a,b mov b,temp printf(after swap a = %d, b = %d n,a,b); 嵌入汇编存在一些限制,如:指令不能得到PC值,不能使用伪指令,不能修改程序栈和CPU

9、模式等。,17,6.C语言的主要特点 语言简洁、紧凑,使用方便、灵活 表达能力强 目标代码质量高 程序执行效率高 结构化的控制语句,适合模块化设计 良好的开放性和兼容性,18,6.2.3 汇编与C嵌入式编程举例,1.BootLoader的简单原理 阶段1: 硬件初始化; 为加载BootLoader的阶段2准备RAM空间; 复制BootLoader的阶段2到RAM空间中; 设置好堆栈; 挑战到阶段2入口; 阶段2: 初始化本阶段要使用的硬件设备; 检测系统内存映射; 将内核映象和根文件系统映象复制到RAM中; 为内核设置启动参数; 调用内核; RAM空间的系统内存布局可见图。,19,2. Boo

10、tLoader的代码实现 例:Xscale处理器,I-Boot引导软件, 阶段1代码,位于start_xscale.s文件中。,20,阶段2代码,位于c_main.c文件中,21,6.3 Java,22,6.4 .NET与XML,.NET框架 一个用于创建、配置、运行Web服务及其他应用程序的环境。由通用语言运行时、统一的类库集合组成。 加速向分布式计算的转移 一切都要成为Web服务;聚合与集成Web服务;提供简单而令人神往的用户体验; 工具、服务器、.NET构造块服务、客户端设备软件、用户体验 一套可被开发者用于多种编程语言的统一的类库集合; ADO.NET类 XML类 ASP.NET类 W

11、indows Forms类,23,XML 一种元标记语言,允许它所提供的规则,制定各种各样的标记语言。 可扩展; 超越于显示格式之上; 便于不同系统之间信息的传输; 可用于设计标记语言; 数据交换; Web应用;,24,6.5 应用编程与数据处理6.5.1 应用编程,1.嵌入式应用编程的特点 (1)交叉开发环境 (2)可利用的资源有限 (3)输入输出界面不同 (4)常需要与硬件打交道 (5)高可靠性 (6)高实时性 (7)程序的可移植性,25,2.嵌入式应用编程的过程 (1)生成应用程序 目标可执行程序的生成过程:编辑、编译(汇编)、连接、定址、下载,26,(2)调试应用程序 任何软件的调试过

12、程无非运行发现问题修改重编译再运行,嵌入式系统仅仅多了下载过程。 通常调试过程中可利用一定硬件实现宿主机调试器对目标软件运行过程的监控。 常见调试功能:暂停、单步执行、断点、跟踪等,可获取目标平台各寄存器等存储空间的数据。 常见调试手段有ICE(在线仿真)和片上调试(BDM后台调试模式、JTAG连接测试存取组、OCE片上仿真等)。,27,(3)固化应用程序 整理程序代码,关闭所有调试用信息(伪指令或宏指令),重新编译产生最终的可执行文件。 将可执行文件(二进制文件)地址对应地写入目标平台存储器内。,28,3.嵌入式应用程序的可移植性 嵌入式系统应用程序对硬件的依赖性强,软件设计层次简单,所以可

13、移植性差,为了提供可移植性,需要考虑: (1)选择合适的编程语言 可移植性和代码效率、硬件控制能力存在一定矛盾,需要根据实际达成一定妥协。 (2)进行合理的程序规划设计 为了提高可移植性,必须尽可能使程序结构清晰,模块间接口标准明确,尽可能支持多的接口形式。但显然上述措施会带来额外资源开销,降低程序的代码效率和响应速度。 (3)编写易于移植的代码 在编写代码的过程中合理使用各种伪指令、宏指令等手段丰富代码的说明和内容,例如利用条件编译宏指令可以实现一个文件中含有多个不同硬件平台下的程序代码,程序的移植只需在重编译时适当修改编译条件即可实现得到不同硬件平台所需的可执行文件。,29,30,6.5.

14、2 数据处理,1.数据处理的发展历史 20世纪40年代,计算机诞生,用于科学与工程计算,无大容量存储器,无法进行数据处理。 50年代初,字符发生器和高速磁带机,计算机可显示、存储、处理各种字母、符号。 1956年,IBM、Remington Rand,商用磁盘存储器,文件管理。 60年代,Rock-Well为阿波罗计划设计了18盘磁带的零部件管理系统。 70年代,数据库,31,2.数据分类及处理 数据分为结构化和非结构化两大类。 结构化数据以数据库形式组织,库中所有数据用二维表的形式表示,表由字段(列,各数据的含义)、记录(行、具体的数据)构成,表与表之间可通过特定的字段建立关联。 非结构化数

15、据以文件的形式组织,数据冗余、不一致、处理效率低。 3.嵌入式系统中的数据处理 嵌入式的文件管理系统 嵌入式数据库,32,6.5.3 电子阅读器应用举例,1.电子阅读器应用层功能 系统应用层的形态即使用者所看到的系统,以信息和面向信息的功能组成了整个系统。,33,2.应用层软件结构 根据功能的要求,应用层软件(阅读部分)需要包括: 书架,软件向使用者呈现的最表面的形态,开机即显示数据系统; 阅读器,被书架调用的基本功能; 各类引擎,阅读器的基本功能就是调用解析引擎将读物文件转换成可用于显示的形式。除此之外搜索、翻译等功能,需要配置相应的引擎软件。,34,3.应用层主要功能 根据前面的软件结构,

16、可以得到在进行阅读过程中各模块间的信息传递如图。 文件搜索功能的实现可见图。,系统利用XML对所有对象进行封装,封装后得到索引条目构成索引数据库。应用程序通过搜索引擎查询索引数据库即可实现对文件的搜索。,35,4.应用层开放兼容问题 开发语言:C语言 操作系统 :Linux、WinCE和wolf mini-OS 阅览器和引擎分离 屏幕与解析引擎分离,36,6.6 嵌入式系统测试6.6.1 软件测试,使用人工或自动的手段来运行或测定某个软件系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。 测试与软件开发是同时进行的,在软件开发的各个阶段都须进行相应的一些测试。,

17、37,1.软件测试基本方法 单元测试 单个模块 集成测试 模块间,子系统内 确认测试 需求说明 实时性测试、安全性测试、健壮性测试、兼容性测试、可用性测试、压力测试、容量测试、文档测试、数据转换测试,38,1.软件测试基本方法 (1)单元测试 被测试的对象模块不是可执行的程序,须编写相应的测试驱动程序。 测试系统须给出与其相关的其它模块或虚拟相关模块的接口,这些模块称为桩模块。,39,设计测试用例 等价类划分法 根据输出对输入分类,根据输入类别选择测试用例。 边界值法 输入划分同上,但认为错误总是出现在分类的边界上,测试用例优先选择变量的边界值。 分支测试法 错误猜测法,40,(2)集成测试

18、子系统的集成测试 系统的集成测试 由上而下的集成测试方法 最高级别首先集成与测试 最大限度的减少工作量 比较复杂 不能支持有限版本的快速推出 由下而上的集成测试方法 实用工具模块 需求驱动,41,自顶向下型集成测试模型 以c代码main函数的根本,在此基础上测试其调用的二级模块。,42,集成测试过程 自顶而下,先主模块,再二级模块,最后三级模块 需要未测试模块支持时,需设计相应的桩模块。,43,(3)确认测试 所有子系统的整合测试 实时性测试Rhealstone 任务切换时间 抢占时间 中断延迟时间 信号量混洗时间 死锁解除时间 数据包吞吐率,44,2.嵌入式软件测试 仿真环境的功能 系统配置:为测试环境设定参数 测试实施:测试数据

温馨提示

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

最新文档

评论

0/150

提交评论