嵌入式Linu应用软件开发流程_第1页
嵌入式Linu应用软件开发流程_第2页
嵌入式Linu应用软件开发流程_第3页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

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

文档简介

1、需求分析、系统设计、代码编写、调试和维护等工作,软件工程的很多理论对它也是适用的。但和其他通用软件相比,它的开发有很多独特之处:在需求分析时,必需考虑硬件性能的影响,具体功能必需考虑由何种硬件实现。在系统设计阶段,重点考虑的是任务的划分及其接口,而不是模块的划分。模块划分则放在了任务的设计阶段。在调试时承受穿插调试方式。软件调试完毕固化到嵌入式系统中后,它的后期维护工作较少。下面主要介绍分析和设计阶段的步骤与原则:1系统全部实现的功能系统的输入、输出系统的外部接口需求如用户界面它的性能以及诸如文件数据库安全等其他要求在实时系统中,常用状态变迁图来描述系统。在设计状态图时,应对系统运行过程进展具

2、体考虑,尽量在状态图中列出全部系统状态,包括很多用户无需知道的内部状态,对很多特别也应有相应处理。此外,应清楚地说明人机接口,即操作员与系统间地相互作用。对于比较简单地系统,形成一本操作手册是必要的,为用户供给使用该系统的操作步骤。为使系统说明更清楚,可以将状态变迁图与操作手册脚本结合起来。在对需求进展分析,了解系统所要实现的功能的根底上,系统开发选用何种硬件、软件平台就可以确定了。对于硬件平台,要考虑的是微处理器的处理速度、内存空间的大小、外部扩展设备是否满足功能要求等。如微处理器对外部大事的响应速度是否满足系统的实时性要求,它的稳定性如何,内存空间是否满足操作系统及应用软件的运行要求,对于

3、要求网络功能的系统,是否扩展有以太网接口等。对于软件平台而言,操作系统是否支持实时性及支持的程度、对多任务的治理力量是否支持前面选中的微处理器、网络功能是否满足系统要求以及开发环境是否完善等都是必需考虑的。固然,不管选用何种软硬件平台,本钱因素都是要考虑的,嵌入式Linux 正是在这方面具有突出的优势。2在进展需求分析和明确系统功能后,就可以对系统进展任务划分。任务是代码运行的一个映象,是无限循环的一段代码。从系统的角度来看,任务是嵌入式系统中竞争系统资源的最小运行单元,任务可以使用或等待CPU、I/O 设备和内存空间等系统资源。在设计一个较为简单的多任务应用系统时,进展合理的任务划分对系统

4、的运行效率、实时性和吞吐量影响都极大。任务分解过细会不断地在各任务 之间切换,而任务之间的通信量也会很大,这样将会大大地增加系统的开销, 影响系统的效率。而任务分解过粗、不够彻底又会造成原本可以并行的操作 只能按挨次串行执行,从而影响系统的吞吐量。为了到达系统效率和吞吐量 之间的平衡折中,在划分任务时应在数据流图的根底上,遵循以下步骤和原 则:进展数据流分析在系统需求分析的根底上,以数据流图作为分析工具。首先,从系统的功能需求开头分析系统中的数据流,分析数据在各状态转换之间的作用。然后,扩展数据流图,并分解到足够的深度,识别出主要的子系统和每个子系统的主要成分。划分任务识别出系统的全部功能和它

5、们之间的数据流后,下一步是要推断哪些操作是并行,哪些是串行,以划分任务。在将一个软件系统分解为并行任务时,主要考虑的是系统内功能的异步性。这需要分析数据流图中的各功能变换,确定哪些变换可以并行,而哪些在本质上又是挨次的。一般并行的功能变换应属于不同的任务,而串行的可以属于同一任务。任务的划分包括确定哪些变换属于哪个任务,及确定各任务的优先级。它们的划分原则如下:I/O 依靠性假设功能变换依靠I/O,那么它的运行速度经常受限于它的互操作的I/O 设备的速度。在这种条件下,功能变换应单独成为一个任务。功能的时间关键性具有时间关键性的功能需求以高优先级运行,因此不能把它加到其他任务中运行,应成为一个

6、独立的高优先级任务。计算需求需要进展大量计算但又不具有时间紧迫性的功能或功能集合,可以作为较低优先级的任务运行,以消耗CPU的剩余时间。功能内聚完成功能严密相关的变换可以组成一个任务,由于这些功能间的数据通信较多,把它们作为一个个独立的任务反而会增加系统开销。反之,把每个变换作为同一任务中的一个独立模块,不仅保证了模块级的功能内聚,而且保证了任务的功能内聚。周期执行激活。定义任务接口在划分好任务之后,要确定任务间的接口。在数据流图中,接口是以数据流或数据存储的形式存在,在这里要把它们具体化下来,确定承受何种格式的接口。通常由两种任务接口模块来处理接口问题,即任务间通信模块和任务同步互斥模块,这

7、些模块对调用它的任务来说一般是操作系统级的任务调用。 并定义对该数据构造的访问过程,如对消息队列、管道等构造的访问。任务 通信模块总是运行在调用它的任务中,因而,它有可能在两个任务中并发执 行,全部在访问过程中必需供给必要的同步和互斥条件来确保数据的全都性 和正确性。任务同步互斥模块是当任务之间不需要传送真正的信息时使用的,它用大事来实现同步目的。目标任务等待一个或几个大事的发生,源任务发送大事信号激活目标任务。上述的划分原则仅能作为一个初步参考,真正的设计还需要具体分析, 才能使系统到达预定的效率和吞吐率软件开发流程软件开发流程软件开发流程分为:需求确认软件开发流程分为:需求确认概要设计具体

8、设计编码单元测试集成测试系统测试维护需求确认:需求规格说明书概要设计:系统用例图,用例场景具体设计:系统设计报告,数据库设计报告测试:测试用例报告具体设计具体设计的主要任务是设计每个模块的实现算法、所需的局部数据构造。具体设计的目标有两个:实现模块功能的算法要规律上正确和算法描述要简明易懂。传统软件开发方法的具体设计主要是用构造化程序设计法。具体设计的表示工具有PADProblem Analysis DiagramNS由 Nassi和 ShneidermenNS图。语言工具有伪码和 PDLProgram Design Language等。主要任务为每个模块确定承受的算法,选择某种适当的工具表达

9、算法的过程,写出模块的具体过程性描述;确定每一模块使用的数据构造;确定模块接口的细节,包括对系统外部的接口和用户界面,对系统内部其它模块的接口,以及模块输入数据、输出数据及局部数据的全部细节。在具体设计完毕时,应当把上述结果写入具体设计说明书,并且通过复审形成正式文档。交付给下一阶段编码阶段的工作依据。要为每一个模块设计出一组测试用例,以便在编码阶段对模块代码即程序进展预定的测试,模块的测试用例是软件测试打算的重要组成局部,通常应包括输入数据,期望输出等内容。具体设计的工具图形工具利用图形工具可以把过程的细节用图形描述出来。表格工具语言工具用某种高级语言称之为伪码来描述过程的细节嵌入式开发学习

10、步骤1、Linux 根底LinuxLinuxLinuxLinuxLinuxLinux根本命令Shell viEmacs编辑器2、Shell 编程根底LinuxShell shell编shellshell脚本程shellshell脚本程序3、Linux 下的 C 编程根底AutomakeMakefile Linux系统Hello,Worldmake4、嵌入式系统开发根底NFSBootloaderLinux应用软件开发cross_gccU-boot 编LinuxLinux应用程序4、嵌入式系统移植ARMLinux内核到 ARMLinux2.6ARM9开发板5Linux 下串口通信LinuxLinu

11、x I/O 编写串口通信程序 编写多串口通信程序6、嵌入式系统中多进程程序设计Linux系统中进程的概念sleepLinux任务概API Linux中的任务间同步与通信编写一个简洁的管道程序实现文件传输 编写一个使用共享内存的程序7、嵌入式系统中多线程程序设计线程程序8Linux 网络编程网络构造 socket APIPingUDPGPRS LinuxLinux环境下的 GPRS socket socket TCPUDPwebARM平台的网络播放器9、GUI 程序开发GUIQT QTGUI QTQT编/QWidget 类方法处理大事10、Linux 字符设备驱动程序SkullI/O驱动 分析一个看门狗驱动程序 比照Linux2.6内核与2.4内核中字符设备驱动的不同Linux 块设备驱动程序块设LinuxM

温馨提示

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

评论

0/150

提交评论