4.嵌入式系统的开发

更新时间:2023-09-06 00:49:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

嵌入式理论课程PPT

第2章 嵌入式系统的开发过程

嵌入式理论课程PPT

一 嵌入式软件开发的特点嵌入式系统与通用计算机在以下几个方面的差别比较明显: (1)人机交互界面。嵌入式系统和通用计算机之间的最大区别在与人机 交互界面。嵌入式系统可能根本就不存在键盘、显示器等设备,它 所完成的事情也可能只是监视网络情况或者传感器的变化情况,并 按照事先规定好的过程及时完成相应的处理任务。 (2)有限的功能。嵌入式系统的功能在设计时已经定制好,在开发完成 投入使用之后就不再变化,系统将反复执行这些预定好的任务,而 不象通用计算机那样随时可以运行新任务。当然,使用嵌入式操作 系统的嵌入式系统可以添加新的任务,删除旧的任务;但这样的变 化对嵌入式系统而言是关键性的变化,有可能会对整个系统产生影 响。 (3)时间关键性和稳定性。嵌入式系统可能要求实时响应,具有严格的 时序性。同时,嵌入式系统还要求有非常可靠的稳定性。 其工作环 境可能非常恶劣,如高温、高压、低温、潮湿等。这就要求在设计 时考虑目标系统的工作环境,合理选择硬件和保护措施。软件稳定 也是一个重要特征。软件系统需要经过无数次反复测试,达到预先 规定的要求才能真正投入使用。

嵌入式理论课程PPT

嵌入式软件开发与传统软件开发有许多共同特点,但它 又有它自身的特点: (1)需要交叉开发环境。嵌入式应用软件开发要使用交叉 开发环境。交叉开发环境是指实现编译、链接和调试 应用程序代码的环境。与应用程序环境不同,它分布 在有通信链接的宿主机和目标机环境之中。 宿主机(Host)是一台通用计算机,一般是PC机。它通过 串口或网络连接与目标机通信。 目标机(Target)常在嵌入式软件开发期间使用,用来区 (Target) 别与嵌入式系统通信的宿主机。目标机应用软件需要 绑定操作系统一起运行。 交叉软件包括交叉编译器、交叉调试器和模拟软件等。 交叉编译器允许应用程序开发者在俗主机上生成能在 目标机上运行的代码。交叉调试器和模拟调试软件用 于完成俗主机与目标机应用程序代码的调试。

嵌入式理论课程PPT

(2)引入任务设计方法。嵌入式应用系统以任务为基本单元。在系统设 计阶段,用多个并发的任务代替通用软件的多个模块,并定义了 应用软件任务间的接口。嵌入式系统的设计通常采用 DARTS(Design and Analysis of Real-Time Systems)设计方法进行任 务的设计。DARTS给出了系统任务划分的方法和定义任务间接口 的机制。 (3)需要固化程序。通用软件的开发在测试完成以后就可以直接投入运 行。其目标环境一般是PC机,在总体结构上与开发环境差别不大。 而嵌入式应用程序开发环境是PC

机,但运行的目标环境却千差万 别,可以是PDA,也可以是仪器设备。而且应用软件在目标环境 下必须存储在非易失性存储器中,保证用户用完关机后确保得到 保证下次的使用。所以应用软件在开发完成以后,应生成固化版 本,烧写到目标环境的Flash中运行。 (4)软件开发难度大。绝大多数的嵌入式应用有实时性的要求,特别在 硬实时系统中,实时性至关重要。这些实时性在开发的应用软件 中得到保证,这就要求设计者在软件的需求分析中充分考虑系统 的实时性。这些实时性的体现一部分来源于实时操作系统的实时 性,另一部分依赖于应用软件的本身的设计和代码的质量。 同时,嵌入式应用软件对稳定性、可靠性、抗干扰性等性能的要求 都比通用软件的要求更为严格和苛刻。因此,嵌入式软件开发的 难度加大。

嵌入式理论课程PPT

嵌入式开发还需要提供强大的硬件开发工具和软件包支持,需要开 发者从速度、功能和成本综合考虑,由此看来有以下几点: a、硬件功能强。更强大的嵌入式处理器(如32为RISC芯片或信号处 理器DSP)增强了处理能力,加强了对多媒体、图形等的处理。同 时增加功能接口,如USB等。 b、工具完备。见P37。 c、通信接口。要求硬件上提供各种网络通信接口。新一代的嵌入式 处理器已经开始内嵌网络接口,除了支持TCP/IP协议,有的还支 持IEEE1394、USB、Bluetooth或IrDA通信接口中的一种或几种; 软件方面系统内核支持网络模块,甚至可以把设备做成嵌入式 Web服务器或嵌入式浏览器。 d、精简系统内核以降低功耗和成本。未来的嵌入式产品是软硬件紧 密结合的设备,为了降低功耗和成本,需要设计者尽量精简系统 内核,利用最低的资源实现最适当的功能。 e、提供友好的多媒体人机界面。嵌入式设备与用户交互,最重要的 因素就是它能提供非常友好的用户界面。手写文字输入、彩色图 形和图象都会使用户获得操作自如的感受。

嵌入式理论课程PPT

2.2 嵌入式软件的开发流程嵌入式软件的开发流程与通用软件的开发流程大同小异,但开发所使用 的设计方法有一定的差异。整个开发流程可分为需求分析阶段、设计 阶段、生成代码阶段和固化阶段。开发的每个阶段都体现着嵌入式开 发的特点。

1 需求分析阶段嵌入式系统的特点决定了在开发初期的需求分析过程中就要搞清需要 完成的任务。在需求分析阶段需要分析客户的需求,并将需求分类整 理----包括功能需求、操作界面需求和应用环境需求等。 嵌入式系统应用需求中最为突出的是注重应用的实效性,竞争中Timeto-Market最短的企业最容易赢得市场。 嵌入式开发的需求分析阶段与一般软件开发的需求分析

阶段差异不大, 包括以下3个方面。 a、对问题的识别和分析。见P38。 b、制定规格说明文档。经过对问题的识别,产生了系统各方面的需求。 通过对规格的说明,文档得以清晰、准确的描述。这些说明文档包括 需求规格说明书和初级的用户手册等。 c、需求评审。需求评审作为系统进入下一阶段前最后的需求分析复查 手段,在需求分析的最后阶段对各项需求进行评估,以保证软件需求 的质量。

嵌入式理论课程PPT

2 设计阶段需求分析完成后,需求分析员提交规格说明文档,进入系统设计阶 段。系统的设计阶段包括系统设计、任务设计和任务的详细设计。 通用软件开发的设计常采用将系统分为各个功能子模块,在进一步 细分为函数,采用自顶向下的设计方法。而嵌入式应用软件是通 过并发的任务来运作的,应用软件开发的系统设计将系统划分为 多个并发执行的任务,各个任务允许并发执行,通过相互间通信 建立联系。传统的设计方法不适应这种并发的设计模式,因而在 嵌入式软件开发中引入DARTS的设计方法。 DARTS设计方法是结构化分析/结构化设计的扩展。它给出划分任务 的方法,并提供定义任务间接口的机制。 DARTS设计方法的设计步骤如下: a、数据流分析 在DARTS设计方法中,系统设计人员在系统需求基础上,以数据 流图作为分析工具,从系统的功能需求开始分析系统的数据流, 以确定主要的功能。扩展系统的数据流图,分解系统到足够的深 度,以识别主要子系统和各个子系统的主要部分。

嵌入式理论课程PPT

b、划分任务系统设计人员把可并行、相对独立的功能单元抽象成一个系统任务。 实时软件系统中并行任务的分解主要考虑系统内部功能的异步性。根 据数据流图中的变换,分析出哪些变换是可以并行的,哪些变换是顺 序执行的。系统设计人员可以考虑一个变换对应一个任务,或者一个 任务包括多个变换。其判定的原则取决于以下因素: ①I/O依赖性:如果变换依赖于I/O,应选择一个变换对应一个任务。 ②时间关键性的功能:具有时间关键性的功能应分离出来,成为一个 独立的任务,并且赋予这些任务较高的优先级,以满足系统对时间的 要求。 ③计算量大的功能:计算量大的功能在运行时势必会占用CPU很多时 间,应当让他们单独成为一个任务。 ④功能内聚:系统中各紧密相关的功能,不适合划分为独立的任务, 应该把这些逻辑上或数据上紧密相关的功能合成一个任务,使各个功 能共享资源或相同事件的驱动。将紧密相关的功能合成一个任务不仅 可以减少任务间通信的开销,而且也降低了系统设计的难度。 ⑤时间内聚:将系统中在同一时间内能够

完成的各个功能合成一个任 务,以便在同一时间统一运行。 ⑥周期执行的功能:将在相同周期内执行的各个功能组成一个任务, 使运行频率越高的任务赋予越高的优先级。

嵌入式理论课程PPT

c、定义任务间的接口任务划分完成以后,下一步就要定义各个任务的 接口。在数据流图中接口以数据流和数据存储区的形 式存在,抽象化数据流和数据存储区成为任务的接口。 在DARTS设计方法中,有两类任务接口模块:任务通 信模块和任务同步模块,分别处理任务间的通信和任 务间的同步。 有了划分好的任务以及定义好的任务间的接口后, 接下来就可以开始任务的详细设计,任务详细设计的 主要工作是确定每个任务的结构。画出每个任务的数 据流图,使用结构化设计方法,从数据流图导出任务 的模块结构图,并定义各模块的接口。之后,进行每 个模块的详细设计,给出每个模块的程序流程图。

嵌入式理论课程PPT

3 生成代码阶段 生成代码阶段需要完成的工作包括代码编程、 交叉编译和链接、交叉调试和测试等。 a、代码编程 编程工作是每个模块的详细设计文档基础上进 行的。规范化的详细设计文档能缩短编程时间。 由于嵌入式系统是一个受资源限制的系统,故 而直接在嵌入式系统硬件上进行编程显然是不 合理的。在嵌入式系统开发过程中,一般采用 的方法是先在PC上编程;然后通过交叉编译、 链接,将程序做成目标平台上可以运行的二进 制代码格式;最后将程序下载到目标平台上的 特定位置,在目标板上启动运行这段二进制代 码。

嵌入式理论课程PPT

b、交叉编译和链接 嵌入式软件开发编译完成后,要进行编译和链接以生 成可执行代码。但是,在开发过程中,设计人员普遍 使用Intel公司的x86系列CPU的计算机进行开发;而目 标环境的处理芯片确是多种多样的,如ARM、DSP、 PowerPC、DragonBall系列等。这就要求开发机的编译 器能支持交叉编译。 嵌入式C编译器是有别于一般计算机中的C语言编译器 的.嵌入式系统中使用的C语言编译器需要专门进行代 码化,以产生更加优质、高校的代码。优秀的嵌入式C 编译器产生代码长度及运行时间仅比以汇编语言编写 的同样功能程序长5%--20%。这微弱的差别完全可以 有现代处理器的高速度、存储器容量大以及产品提前 占领市场的优势来加以弥补;编译产生代码质量的差 异,是衡量嵌入式C编译器工具优劣的重要指标。

嵌入式理论课程PPT

c、交叉调试 调试是开发过程中必不可少的环节。嵌入式开发软件的交 叉编译不同于通用软件的调试方法。 在通用软件开发中,调试器与被调试的程序往往运行 在同一机器上,作为操作系统上的两个进程,通过操作 系统提供的调试接口控

制被调试进程。 嵌入式软件开发需要交叉开发环境,调试采用的是包 含目标机和宿主机的交叉调试方法。调试器还是运行在 宿主机的通用操作系统上,而被调试的程序则运行在基 于特定硬件平台的嵌入式操作系统上。调试器与被调试 程序间可以进行通信,调试器可以控制、访问被调试程 序,读取被调试程序的当前状态和改变被调试程序的运 行状态。 交叉调试器用于对嵌入式软件进行调试和测试。嵌入 式系统的交叉调试器在宿主机上运行,并且通过串口或 网络连接到目标机上。

嵌入式理论课程PPT

嵌入式软件的编写和开发调试主要流程为: 代码编写----交叉编译----交叉链接----重 定位和下载----调试,如图所示。代码编程 C/汇编源程序

交叉编译

Obj文件

交叉函数库

交叉链接

系统映像文件 重定位和下载

交叉调试

目标机

嵌入式理论课程PPT

交叉调试具有以下特点: *调试器和被调试的程序运行在不同的机器上。调 试器运行在PC或工作站上,而被调试程序运行 在各式的专用目标机上。 *调试器通过各种通信方式与目标机建立联系,如 串口、并口、网络、JTAG或者专用的通信方式。 *在目标机上一般具有某种调试代理,这种代理能 与调试器一起配合完成对目标机上运行的程序 的调试。这种代理可以是某种能支持调试的硬 件,也可以是某种软件。 *目标机可以是一种仿真机。通过在宿主机上运 行目标机的仿真软件来仿真一台目标机,使整 个调试工作只在一台计算机上进行。

嵌入式理论课程PPT

整个嵌入式系统软件的开发一般在集成开发环境下 完成。嵌入式系统的开发工作几乎使跨平台交叉开发, 多数代码直接控制硬件设备,硬件依赖性强,对时序的 要求十分苛刻,很多情况下 的运行状态都具有不可再 现性。 嵌入式集成开发环境关键技术包括项目建立和管理工 具、源代码级调试技术、系统状态分析技术、代码性能 优化技术、运行态故障监测技术、图形化浏览工具、代 码编辑辅助工具以及版本控制工具等。 嵌入式集成开发环境包括可裁减的实时操作系统,宿 主机上的编译、调试、查看等工具,以及利用串口、网 络ICE等宿主机与目标机的连接工具。 (4)测试 嵌入式系统开发的测试与通用软件的测试相似,分成 单元测试和系统集成测试。

嵌入式理论课程PPT

4.固化阶段 嵌入式应用软件调试完成以后,编译器要对源代 码重新编译一次,以产生固化到目标环境的可 执行代码,在烧写到目标环境的Flash中。固化 的可执行代码与用于调试的可执行代码有一些 不同。固化用的代码在目标文件中把调试用的 信息都屏蔽掉了。固化后没有监控器执行硬件 的启动和初始化。启动模块和固化代码都定位 到目标

环境的Flash中,有别于调试过程中都在 目标机的RAM中运行。 可执行代码烧写到目标环境中固化后,还要进行 运行测试,以保证程序的准确无误。固化测试 完成后,整个嵌入式应用软件的开发就基本完 成了,剩下的就是对产品的维护和更新了。

嵌入式理论课程PPT

5.嵌入式软件开发的要点嵌入式软件高度依赖目标应用的软硬件环境,软件的部 分任务功能函数由汇编语言完成,具有高度的不可移 植性。但这并不是说嵌入式软件的开发不需要关注可 移植性。提高应用软件的可移植性方法如下: 1 尽量使用高级语言开发,少用汇编语言。 2 局域化不可移植部分,要提高代码的可移植性,可 以把不可移植的代码和汇编代码通过宏定义和函数的 形式,分类集中在某几个特定的文件中。程序中对不 可移植代码的使用转换成函数和宏定义的使用,在以 后的的移植过程中,既有利于迅速地对要修改地代码 进行定位,又可以方便地进行修改,最后检查这个代 码中修改的函数和宏对前后代码是否有影响,从而大 大提高移植的效率。 3 提高软件的可重用性。

嵌入式理论课程PPT

2.3 嵌入式系统的调试调试方式有很多种,应根据实际的开发要求和实际的条件进行选择。 1.源程序模拟器方式 源程序模拟器是在PC机上,通过软件手段模拟执行为某种嵌入式 处理器编写的源程序的测试工具。 模拟器软件独立于处理器硬件,一般与编译器集成在同一个环境 中,是一种有效的源程序检验和测试工具。但是,模拟器的功能毕 竟是以一种处理器模拟另一种处理器的运行,在指令执行时间、中 断响应、定时器等方面很有可能与实际处理器有相当大的差别。另 外,它无法仿真嵌入式系统在应用系统中的实际执行情况。 ARM公司的开发工具有ARMulator模拟器,可以模拟开发各种ARM嵌 入式处理器。它具有指令、周期和定时等三级模拟功能。 *指令级:可以给出系统状态的精确行为。 *周期级:可以给出每一周期处理器的精确行为。 *定时级:可以给出在一周期内出现信号的准确时间。

嵌入式理论课程PPT

2.监控器方式监控器调试需要目标机和宿主机协调。 首先,在宿主机和目标机之间建立物理上的连接。 在宿主机上运行调试器 ,目标机运行监控程序和被调 试程序。 监控程序是一段运行于目标机上的可执行程序, 主要负责监控目标机上被调试程序的运行情况。它与宿 主机端调试器一起完成对应用程序的调试。监控程序包 含基本功能的启动代码,并完成必要的硬件初始化,初 始化自己的程序空间,等待宿主机的命令。 被调试程序通过监控程序下载到目标机,就可以开 始进行调试。 程序在调试过程中查出错误后,通

过调试器进行错误 的定位;然后在宿主机上进行源码的修改,重新编译生 成后下载到目标机,再进行下一轮的调试。

本文来源:https://www.bwwdw.com/article/82ui.html

Top