第二章嵌入式系统开发过程PPT学习教案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第二章嵌入式系统开发过程
会计学
1
二、嵌入式软件开发的特点
1.嵌入式软件开发需要软硬件开发环境和工具
嵌入式应用系统的开发是属于跨平台开发,即
开发平台使用的处理器和开发对象的处理器往
往不是同一类型,需要交叉的软件集成开发环
境,即进行代码编写、编译、链接和调试应用
程序的集成开发环境。
第1页/共38页
注意:什么是交叉开发环境?
JTAG仿真器该方式是目前采用最多的一 种调试 方式。 •优点:方 便简单 ,价格 便宜, 软硬件 均可调 试。 •缺点:需 要工作 基本正 常(至少 MCU 工作正 常)的目 标板, 仅适用 有调试 接口的 芯片。
第18页/共38页
开发环境的连接
第19页/共38页
4.在线仿真器ICE方式
在线仿 真器ICE是一种 用于替 代目标 机CPU 的设备 ,对目 标机来 说,在 线仿真 器就相 当于它 的CPU 。事实 上,ICE本身 就是一 个嵌入 式系统 ,有自 己的CP U、RA M、ROM和 软件。 仿真器 与目标 板通过 仿真头( 仿真头 是仿真 器的一 部分)连 接,与 主机有 串口、 并口、 以太网 口或U SB 口等连接 方式。 该仿真 器可以 真正地 运行所 有的CP U动作 ,并且 可以在 其使用 的内存 中设置 非常多 的硬件 中断点 ,可以 实时查 看所有 需要的 数据, 从而给 调试过 程带来 很多便 利。 •优点:功 能非常 强大, 软硬件 均可做 到完全 实时在 线调试 。 •缺点:ICE价格昂 贵,而 且每种 CPU都 需要一 种与之 对应的 ICE, 使得开 发成本 非常高 。
第24页/共38页
BSP和BIOS区别
BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指 针,中断分配,内存初始化..)、装入操作系统并调度操作系统向 硬件发出的指令。
BSP是和操作系统绑在一起运行,尽管BSP的开始部分和BIOS所做 的工作类似,但是 BSP还包含和系统有关的基本驱动
使用ICD和目 标板的 调试端 口连接 ,发送 调试命 令和接 收调试 信息, 可以完 成必要 的调试 功能。 一般情 况下, 在ARM 芯片的 开发板 上采用J TAG边 界扫描 口进行 调试。 摩托罗 拉公司 采用专 用的B DM( 后台调 试模式 )调试 接 口。 例如, ARM开 发板, 可以将 JTAG 调试器( 基于JT AG的ICD也称 为JTA G仿真 器),接 在开发 板的JT AG口 上,通 过JTAG 口与A RM处 理器核 进行通 信。
3) 开发计算机一般称宿主机,嵌入式设备称为目标机,在宿 主机上编译好的程序,下载到目标机上运行,交叉开发环 境提供调试工具对目标机上运行的程序进行调试。
4) 交叉开发环境一般由运行于宿主机上的交叉软件开发环境 (最少必须包含编译调试模块)、宿主机到目标机的调试通 道组成。
第2页/共38页
5) 运行于 宿主机 上的交 叉开发 软件。

基于JTAG 的ICD( In-Circ uit De bugge r)。

Angel调 试监控 软件。

在线仿真 器ICE(In-Circu it Emulator) 。
第3页/共38页
开发环境的连接
第4页/共38页
2.嵌入式软硬件必须协同设计
3.需要新的任务设计方法
嵌入式应用系统以任务为基本的执行单元。在设计阶
2.监控器方式
• 主机和目 标板通 过某种 接口( 通常是 串口、 以太网 口) 连接, 主机上 提供调 试界面 (调试 器), 被调试 程序下 载到目 标板上 运行。
• 监控程 序是一 段运行 于目标 机上的 可执行 程序, 主要负 责监控 目标机 上被调 试程序 的运行 情况, 与宿主 机端的 调试器 一起完 成对应 用程序 的调试 。监控 程序预 先被固 化到目 标机的R0M空 间中, 在目标 机复位 后将被 首先执 行,它 包含基 本功能 的启动 代码, 并完成 必要的 硬件初 始化, 等待宿 主机的 命令。 被调试 程序通 过监控 程序下 载到目 标机的RAM中 ,就可 以开始 进行调 试。
1) 作为嵌入式系统应用的ARM处理器,其应用软件的开发 属跨平台开发,因此需要一个交叉开发环境。
2) 交叉开发是指在一台通用计算机上进行软件的编辑编译, 然后下载到嵌入式设备中进行运行调试的开发方式。用来 开发的通用计算机可以选用比较常见的PC机、工作站等, 运行通用的Windows或Unix操作系统。
BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设 置,但是程序员还可以编程修改BSP,在BSP中任意添加一些和系 统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中
第25页/共38页
不同系统中的BSP
一个嵌入式操作系统针对不同的CPU,会有 不同的BSP
即使同一种CPU,由于外设的一点差别BSP 相应的部分也不一样
第16页/共38页
监控器调试的优缺点: 主要用于调试运行在目标机操作系统上的应
用程序,不适宜用来调试目标操作系统,占用目 标机的通信端口。有的微处理器需要在目标板工 作正常的前提下,事先烧制监控程序,而且功能
有限,特别是硬件调试能力较差。
第17页/共38页
3.在线调试器(ICD In-Circuit Debugger)方式
第21页/共38页
➢ 好的评估电路板一般文档齐全,对处理器的常用 功能模块和主流应用都有硬件实现,并提供电路 原理图和相关开发例程与源代码供用户设计自己 的应用目标板和应用程序作参考。
➢ 选购合适于自己实际应用的开发板可以加快开发 进度,可以减少自行设计开发的工作量。
第22页/共38页
ARM嵌入式技术平台
为了 方便调 试开发 ,交叉 开发软 件一般 为一个 整合编 辑、编 译汇编 链接、 调试、 工程管 理及函 数库等 功能模 块的集 成开发 环境IDE(Inte grated Devel opment Envir onment)。
6.组成ARM交叉 开发环 境的宿 主机到 目标机 的调试 通道一 般有以 下三种 :
头文件 (*.h,*.hpp)
C/C++源代码
汇编头文件 汇编源代码
源文件列表
编译预处理
编译器
汇编器
源文件列表
Archive工具
库文件 (*.a,*.lib)
可重定位 目标文件
链接器和定位器
链接器 命令文件
重定位文件表 (*.o,*.a)
共享目标文件 (*.o,*.a)
目标开发系统
可执行映象 (*.elf,*.coff)
第6页/共38页
嵌入式开发的基本流程
系统定义与需求分析(功能、性能、环境需
求等,并制定规格说明文档)
系统设计方案的初步确立
初步设计方案性价比评估与方案评审论证
完善初步方案、初步方案实施
软硬件集成测试
系统功能性能测试及可靠性测试
第7页/共38页
嵌入式系统的开发基本流程图
第8页/共38页
系统定义与需求分 析
调试工具和待调试的嵌入式软件都在宿主机上运 行,在宿主机上通过软件手段模拟目标机的环 境,执行为某种嵌入式处理器编写的源程序。可 以进行语法和逻辑上的调试。 优点:简单方便,不需要目标板,成本低。 缺点:模拟环境与实际的运行环境差别较
大,不能模拟所有的设备,功能非常有限, 无法实时调试。
第15页/共38页
第5页/共38页
2.2嵌入式系统开发流程
一、嵌入式系统开发的基本流程
嵌入式系统开发必须将硬件、软件、人力资源
等元素结合起来。任何一个嵌入式产品都是软
硬件的结合体,是软硬件的综合开发,这是嵌
入式系统开发的最大特点。
系统开发的过程中必须始终综合考虑各个方面
的因素。面向具体应用的嵌入式开发决定了嵌
入式开发的方法、流程各有不同,
初始化过程总可以抽象为三个主要环境,按照 自底向上、从硬件到软件的次序依次为:
片级初始化 板级初始化 系统级初始化
第29页/共38页
初始化过程
片级初始化:
主要完成CPU的初始化
设置CPU的核心寄存器和控制寄存器 CPU核心工作模式 CPU的局部总线模式等
BSP的设计与实现
为实现上述两部分功能,设计 一个完整的BSP需要完成两部 分工作:
设计初始化过程,完成嵌入式系 统的初始化;
设计硬件相关的设备驱动,完成 操作系第统28页及/共3应8页用程序对具体硬件 的操作。
嵌入式系统初始化以及BSP的功能
嵌入式系统的初始化过程是一个同时包括硬件 初始化和软件初始化的过程;而操作系统启动 以前的初始化操作是BSP的主要功能之一
链接映射文件 (*.map)
设备程序员
图 嵌入式软件开发流程图
第11页/共38页
源 代 码 编 辑 阶 段
源文件 编译阶

链 接 与 重 定 位
调试与 下载阶

开发流程 工程建立 源文件 编译 调试 固化
❖汇编源程序*.s ❖C语言程序*.c ❖链接脚本文件*.ld ❖存储区映像文件*.map ❖命令脚本文件*.CS
嵌入式系统的调试有多种方法,可分为: 1. 模拟器(Simulator)方式、 2. ICE(In-Circuit Emulator,在线仿真器)方式、 3. ICD(In-Circuit Debugger,在线调试器)方式、 4. 监控器(Monitor)方式。
第14页/共38页
1.模拟器(Simulator)调试方式
硬件主板研制测试硬件主板研制测试操作系统的选定操作系统的选定bspbsp编程编程上层应用程序的开发上层应用程序的开发第34页共38页bspbspbspbsp对板卡中每个芯片的操作都通过多个函数对板卡中每个芯片的操作都通过多个函数来完成来完成如果应用程序对板卡的操作都直接通过调用如果应用程序对板卡的操作都直接通过调用bspbsp中的函数来完成那将很不利于源程序的中的函数来完成那将很不利于源程序的调试调试并降低了程序的可移植性并ห้องสมุดไป่ตู้低了程序的可移植性把能完成某个特定功能的函数封装在一个库文把能完成某个特定功能的函数封装在一个库文件中并放在应用程序与件中并放在应用程序与bspbsp之间之间对每个芯片来说都应当有初始化函数和状态对每个芯片来说都应当有初始化函数和状态读取函数读取函数第35页共38页bspbspbspbsp的开发需要具备一定的硬件知识的开发需要具备一定的硬件知识要求掌握操作系统所定义的要求掌握操作系统所定义的bspbsp接口接口两种快捷方法两种快捷方法以经典以经典bspbsp为参考为参考使用操作系统提供的使用操作系统提供的bspbsp模板模板设计实现设计实现bspbsp两部分功能时应采用以下两种不两部分功能时应采用以下两种不同方法同方法自底向上地实现自底向上地实现bspbsp中的初始化操作中的初始化操作自顶向下地设计硬件相关的驱动程序自顶向下地设计硬件相关的驱动程序第36页共38页bspbsp目前目前bspbsp的设计与实现主要是针对某些特定的的设计与实现主要是针对某些特定的文件进行修改文件进行修改直接修改相关文件容易造成代码的不一致性直接修改相关文件容易造成代码的不一致性增加软件设计上的隐形错误从而增加系统调增加软件设计上的隐形错误从而增加系统调试和代码维护的难度试和代码维护的难度解决这个问题的一个可行办法是
系统设计初步说明文档
系统初步设计方案与设计描述文 档
系处 统理 系功 器 操 开 统 协能 器选 作 发 总 同划 件择 系 环 体 设分 选与 统 境 设 计与 择基 选 选 计软 本 择 择 硬接 件口
N
初步设计方案性价
比评估与方案评审
论证
Y
完善初步方案、初步方案实 施
硬件设计
软件设计
元 器 件 选 择
第26页/共38页
BSP的特点与功能
硬件相关性
因为嵌入式实时系统的硬件环境具有应用相关 性,所以,作为高层软件与硬件之间的接口, BSP必须为操作系统提供操作和控制具体硬件的 方法。
操作系统相关性
不同的操作系统具有各自的软件层次结构, 因 此,不同的操作系统具有特定的硬件接口形式
第27页/共38页
第12页/共38页
三、嵌入式软件的开发要点
尽量用高级语言开发,少用汇编语言开发 局域化不可移植部分 提高软件的可重用性
第13页/共38页
2.3嵌入式系统的调试
调试是任何项目开发过程中必不可少的一部分,特别是 在软硬件结合非常紧密的嵌入式系统开发中。一般来说, 大多数的调试工作是在RAM中进行的,只有当程序完成 并能运行后才切换到ROM(Flash)中。
第20页/共38页
注意:评估电路板
➢ 评估电路板,也称作开发板,一般用来作为开 发者学习板、实验板,可以作为应用目标板出 来之前的软件测试、硬件调试的电路板。
➢ 尤其是对应用系统的功能没有完全确定、初步 进行嵌入式开发且没有相关开发经验的非常重 要。
➢ 开发评估电路板并不是ARM应用开发必须的, 对于有经验的工程师完全可以自行独立设计自 己的应用电路板和根据开发需要设计实验板。
原 理 图 绘 制
印 刷 板 设 计









制 试终 件件









引 导 程 序 编 制
操 作 系 统 移 植
驱 动 程 序 开 发
软 件 测 试
软硬件集成 测试
系统功能性能、测试第及9可页靠 /共38页
性测试
N 满足要求
Y 样机
二 、 嵌 入 式 软件的 基本开 发流程
第10页/共38页
段,用多个并发的任务代替通用软件的多个模块,并
定义了应用软件间的接口。
嵌入式系统的设计通常采用DARTS(Design and
Analysis of Real-Time Systems)设计方法,该方法
给出了系统任务划分的方法和定义任务间接口的机制。
4.开发过程完成后,系统应用程序代码需要固化到 系统中进行功能、性能和可靠性测试
众多工具 及评估板
“一通百通”
众多的 ARM芯片
ARM
第23页/共38页
众多软件 及RTOS
2.4板级支持包
BSP全称“板级支持包”(Board Support Packages),说的简单一点,就是一段启动 代码,和计算机主板的BIOS差不多,但提 供的功能区别就相差很大
在Windows CE中,BSP是驱动程序、OEM 适应层(OEM Adaptation Layers,OAL)、 硬件抽象层(HAL)以及启动设备和使外设 正常工作所需BIOS文件的集合。
相关文档
最新文档