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

更新时间:2023-06-07 09:46:01 阅读量: 实用文档 文档下载

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

嵌入式

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

嵌入式

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

主要内容1 嵌入式软件开发的特点 2 嵌入式软件的开发流程

3

嵌入式系统的调试

4

板极支持包

嵌入式

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

2.1 嵌入式软件开发的特点嵌入式系统与通用计算机系统的差别: 嵌入式系统与通用计算机系统的差别:–

人机交互界面 有限的功能 时间关键性和稳定性

嵌入式

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

嵌入式软件开发的特点: 嵌入式软件开发的特点:–需要交叉开发环境:交叉开发环境是指实现编译、链接和调试应 需要交叉开发环境:交叉开发环境是指实现编译、

用程序代码的环境。与运行应用程序的环境不同, 用程序代码的环境。与运行应用程序的环境不同,它分散在有通信 连接的宿主机 目标机环境之中 宿主机与 环境之中。 连接的宿主机与目标机环境之中。 宿主机(Host)是一台通用计算机,一般是PC机 宿主机(Host)是一台通用计算机,一般是PC机。它通过串口 是一台通用计算机 PC 或网络连接与目标机通信。 或网络连接与目标机通信。 目标机( 可以是嵌入式应用软件的实际运行环境, 目标机(Target) 可以是嵌入式应用软件的实际运行环境,也 可以是能替代实际环境的仿真系统。 可以是能替代实际环境的仿真系统。–引入任务设计方法 引入任务 任务设计方法 –需要固化程序 需要固化 固化程序 –软件开发难度大

嵌入式应用软件对实时性、稳定性、可靠性、 嵌入式应用软件对实时性、稳定性、可靠性、抗干扰性等性 能的要求都比通用软件的要求更为严格和苛刻。 能的要求都比通用软件的要求更为严格和苛刻。 4

嵌入式

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

2.2 嵌入式系统开发的流程嵌入式软件的开发流程与通用软件的开发流程 大同小异, 大同小异, 但开发所使用的设计方法具有嵌入式 开发的特点。整个开发流程可分为: 开发的特点。整个开发流程可分为: 需求分析阶段 设计阶段 生成代码阶段 固化阶段

嵌入式

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

需求分析阶段 嵌入式系统应用需求中最为突出的是注重应用的时 嵌入式系统应用需求中最为突出的是注重应用的时 效性,需求分析阶段的主要任务 主要任务是 效性,需求分析阶段的主要任务是:(1)对问题的识别和分析 对用户提出的问题进行抽象识别用以产生以下的需求:功能需求、 对用户提出的问题进行抽象识别用以产生以下的需求: 功能需求、 性能 需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、 需求、环境需求、可靠性需求、安全需求、用户界面需求、资源使用需求、 软件成本与开发进度

需求。 软件成本与开发进度需求。 (2)制订规格说明文档 经过对问题的识别,产生了系统各方面的需求。通过对规格的说明, 经过对问题的识别, 产生了系统各方面的需求。 通过对规格的说明 ,文 档得以清晰、准确地描述。 档得以清晰、准确地描述。这些说明文档包括需求规格说明书和初级的用 户手册等。 户手册等。 (3)需求评审 需求评审作为系统进入下一阶段前最后的需求分析复查手段, 需求评审作为系统进入下一阶段前最后的需求分析复查手段 , 在需求分 析的最后阶段对各项需求进行评估,以保证软件需求的质量。 析的最后阶段对各项需求进行评估,以保证软件需求的质量。需求评审的 内容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、 内容包括正确性、无歧义性、安全性、可验证性、一致性、可理解性、可 修改性、可追踪性等多个方面。 修改性、可追踪性等多个方面。 6

嵌入式

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

设计阶段系统的设计阶段包括系统设计、任务设计和任务的详细 系统的设计阶段包括系统设计、 设计。由于嵌入式系统中任务的并发性, 设计 。 由于嵌入式系统中任务的并发性 , 嵌入式软件开发中 引入了DARTS的设计方法。 DARTS的设计方法 引入了DARTS的设计方法。 DARTS设计方法:是结构化分析/结构化设计的扩展。 DARTS设计方法:是结构化分析/结构化设计的扩展。它 设计方法 给出划分任务的方法,并提供定义任务间接口的机制。 给出划分任务的方法,并提供定义任务间接口的机制。 DARTS设计方法的设计步骤如下: DARTS设计方法的设计步骤如下: 设计方法的设计步骤如下 (1)数据流分析 ( (2)划分任务 ( (3)定义任务间的接口 (

嵌入式

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

生成代码阶段 生成代码阶段需要完成的工作包括代码编程、 生成代码阶段需要完成的工作包括代码编程、 代码编程 交叉编译和链接、交叉调试和测试等 交叉编译和链接、交叉调试和测试等。

嵌入式

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

生成代码阶段 代码编程在嵌入式系统的开发过程中,一般采用的方法是先在 在嵌入式系统的开发过程中,一般采用的方法是先在 交叉编译链接, 通用PC上编程,然后通过交叉编译链接 PC上编程 通用PC上编程,然后通过交叉编译链接,将程序做成目标 平台上可以运行的二进制代码格式。最后将程序下载到目 平台上可以运行的二进制代码格式。最后将程序下载到目 标平台上的特定位置 的特定位置, 标平台上的特定位置,在目标板上启动运行这段二进制代 码。

嵌入式

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

生成代码阶段 交叉编译和链

接嵌入式软件开发编码完成后, 嵌入式软件开发编码完成后,要进行编译和链接 以生成可执行代码。但是, 以生成可执行代码。但是,在开发过程中设计人员普 使用Intel x86系列CPU的计算机进行开发 Intel的 系列CPU的计算机进行开发, 遍使用Intel的x86系列CPU的计算机进行开发,而目 标环境的处理芯片却是多种多样的, ARM,DSP, 标环境的处理芯片却是多种多样的,如ARM,DSP, PowerPC,DragonBall系列等 系列等, PowerPC,DragonBall系列等,这就要求开发机上的 编译器能支持交叉编译。 编译器能支持交叉编译。 嵌入式集成开发环境都支持交叉编译、链接, 嵌入式集成开发环境都支持交叉编译、链接,如 WindRiver公司的 TornadoⅡ以及 GNU套件等 公司的TornadoⅡ 以及GNU 套件等。 WindRiver 公司的 TornadoⅡ 以及 GNU 套件等 。 交叉编 译链接生成两种类型的可执行文件: 译链接生成两种类型的可执行文件:调试用的可执行 文件和固化的可执行文件。 文件和固化的可执行文件。

嵌入式

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

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

测试

嵌入式系统开发的测试与通用软件的测试相似, 嵌入式系统开发的测试与通用软件的测试相似, 分为单元测试和系统集成测试。 分为单元测试和系统集成测试。11

嵌入式

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

固化阶段嵌入式系统的应用软件是针对特定的实际专业领域的,基于相 嵌入式系统的应用软件是针对特定的实际专

业领域的, 是针对特定的实际专业领域的 计算机软件。 应的嵌入式硬件平台,并能完成用户预期任务的计算机软件 应的嵌入式硬件平台,并能完成用户预期任务的计算机软件。

嵌入式软件的特点如下: 嵌入式软件的特点如下: 软件要求固态化存储。 (1)软件要求固态化存储。 软件代码要求高质量、高可靠性。 (2)软件代码要求高质量、高可靠性。 系统软件的高实时性是基本要求。 (3)系统软件的高实时性是基本要求。 多任务实时操作系统成为嵌入式应用软件的必需。 (4)多任务实时操作系统成为嵌入式应用软件的必需。

嵌入式

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

总结: 总结:嵌入式软件开发的要点嵌入式应用软件高度依赖目标应用的软硬件环 软件的部分任务功能函数由汇编语言完成, 境,软件的部分任务功能函数由汇编语言完成, 具有高度的不可移植性。 具有高度的不可移植性。 为了保证实时性能, 为了保证实时性能,使用效率高和速度快的汇 编语言是不可避免的。 编语言是不可避免的。 尽可能提高嵌入式应用软件的可移植性方法: 尽可能提高嵌入式应用软件的可移植性方法: (1)尽量用高级语言开发 尽量用高级语言开发, (1)尽量用高级语言开发,少用汇编语言 (2)局域化不可移植部分 (3)提高软件的可重用性

嵌入式

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

2.3 嵌入式系统的调试嵌入式系统的调试过程: 嵌入式系统的调试过程:

嵌入式系统的调试方法: 嵌入式系统的调试方法: 1.源程序模拟器方式 2.监控器方式 3.仿真器方式

嵌入式

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

源程序模拟器方式源程序模拟器(Simulator)是在PC机上,通过软件手段 源程序模拟器(Simulator)是在PC机上, 是在PC机上 模拟执行为某种嵌入式处理器编写的源程序的测试工具。 模拟执行为某种嵌入式处理器编写的源程序的测试工具。 注意: 注意:模拟器的功能毕竟是以一种处理器模拟另一种处 理器的运行,在指令执行时间、中断响应、 理器的运行,在指令执行时间、中断响应、定时器等方 面很有可能与实际处理器有相当大的差别。另外,它无 面很有可能与实际处理器有相当大的差别。另外, 法仿真嵌入式系统在应用系统中的实际执行情况。 法仿真嵌入式系统在应用系统中的实际执行情况。 比如:ARM公司的ARMulator模拟器 比如:ARM公司的ARMulator模拟器 公司的ARMulator

嵌入式

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

监控器方式监控器(Monitor)调试方式需要目标机与宿主机协调。首先, 监控器(Monitor)调试方式需要目标机与宿主机协调。首先,在宿 调试方式需要目标机与宿主机协调 主机和目标机之间通过串口、

以太口等建立物理连接, 主机和目标机之间通过串口、以太口等建立物理连接,然后在宿主机上 运行调试器,目标机运行监控程序和被调试程序, 运行调试器,目标机运行监控程序和被调试程序,从而建立宿主机与目 标机的逻辑连接。宿主机通过调试器与目标机的监控器建立通信连接, 标机的逻辑连接。宿主机通过调试器与目标机的监控器建立通信连接, 它们相互间的通信遵循远程调试协议。比如ARM公司的Angel ARM公司的Angel。 它们相互间的通信遵循远程调试协议。比如ARM公司的Angel。

嵌入式

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

仿真器方式仿真器调试方式是在微处理器的内部嵌入额外的控制 模块。当特定的触发条件满足时, 模块。当特定的触发条件满足时,系统将进入某种特殊状 在这种状态下,被调试的程序暂时停止运行, 态。在这种状态下,被调试的程序暂时停止运行,宿主机 的调试器通过微处理器外部特设的通信口访问各种寄存器、 的调试器通过微处理器外部特设的通信口访问各种寄存器、 存储器资源,并执行相应的调试指令。 存储器资源,并执行相应的调试指令。 在宿主机的通信端口和目标板调试通信接口之间, 在宿主机的通信端口和目标板调试通信接口之间,通 信接口的引脚信号可能存在差异, 信接口的引脚信号可能存在差异,因此在这两者之间往往 可以通过一块信号转换电路板连接。 可以通过一块信号转换电路板连接。 一般高档的微处理器都带JTAG 一般高档的微处理器都带 JTAG (Joint Test Action Group,联合测试行动组 接口,它是一种边界扫描标准, 联合测试行动组) Group,联合测试行动组) 接口 ,它是一种边界扫描标准, 只需5根引脚就可以实现在线仿真的功能。 只需5根引脚就可以实现在线仿真的功能。

嵌入式

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

2.4 板级支持包由于嵌入式系统中采用微处理器/微控制器的多样性, 由于嵌入式系统中采用微处理器/微控制器的多样性,嵌入 式操作系统的可移植性显得更加重要。 式操作系统的可移植性显得更加重要。所以有些嵌入式操作 系统的内核明确分成两层,上层一般称为“内核” 系统的内核明确分成两层,上层一般称为“内核”,而低层 则称为“ 硬件抽象层” 底层的缩写是HAL HAL, 则称为 “ 硬件抽象层 ” , 底层的缩写是 HAL, 也有的厂商 VxWorks的提供者WindRiver公司 把硬件抽象层称为BSP 的提供者WindRiver公司) BSP, ( 如VxWorks的提供者WindRiver公司) 把硬件抽象层称为BSP, 板级支持包( Package)。 即 板级支持包 ( Board Support Package)。 板级支持包是操 作系统与目标应用硬件环境的中间接口, 作系统

与目标应用硬件环境的中间接口,它是软件包中具有 平台依赖性的那一部分。 平台依赖性的那一部分。 板级支持包的主要功能包括两部分: 板级支持包的主要功能包括两部分: 在系统启动时, 在系统启动时,对硬件进行初始化 为驱动程序提供访问硬件的手段

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

Top