嵌入式系统与结构 — 基于 arm 的体系结构和应用开发
DESCRIPTION
嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发. 微电子学院 李 康. Ⅰ 课程开设目的. 了解与熟悉嵌入式系统的开发与编程 了解基于 ARM 7/9 的嵌入式 SOC 结构与特点 了解高性能嵌入式系统的发展趋势. Ⅱ 课程安排. 一 . 嵌入式系统简介 二 . 嵌入式系统开发流程 三 . 嵌入式系统的编程与调试 四 . 基于 ARM 7/9 的嵌入式处理器结构 五 . 嵌入式处理器结构发展趋势 六 . 网络处理器. 参考教材. - PowerPoint PPT PresentationTRANSCRIPT
嵌入式系统与结构—基于 ARM 的体系结构和应用开
发
微电子学院
李 康
Ⅰ 课程开设目的
了解与熟悉嵌入式系统的开发与编程 了解基于 ARM 7/9 的嵌入式 SOC 结构与特点 了解高性能嵌入式系统的发展趋势
Ⅱ 课程安排 一 . 嵌入式系统简介 二 . 嵌入式系统开发流程 三 . 嵌入式系统的编程与调试 四 . 基于 ARM 7/9 的嵌入式处理器结构 五 . 嵌入式处理器结构发展趋势 六 . 网络处理器
参考教材
《嵌入式技术与系统— Intel Xscale 结构与开发》,陈章龙,唐志强,涂时亮,北航出版社;
辅助参考: 《 ARM Architecture Reference Manual (2nd Editi
on) 》 , ARM 公司
《嵌入式系统开发原理与实践》,陈文智等编著,清华大学出版社
嵌入式系统组成与特点;
嵌入式系统软 / 硬件组成;
嵌入式系统开发流程
一 . 嵌入式系统简介
1.1 嵌入式系统组成与特点
1 计算机系统的分类 台式计算机 PC ( Desktop Computing ) 服务器 ( Servers ) 嵌入式计算机( Embedded Computers )
PC 应用
服务器应用 工作站、文件服务器,数据库应用、 Web 服务器等。
SUN 890 服务器 IBM 系列服务器
嵌入式应用— 航空、航天
嵌入式应用— 军事、通信
嵌入式应用— 消费类电子
1.1 嵌入式系统组成与特点 1 嵌入式系统的定义
IEEE (国际电气和电子工程师协会)定义△:
用于控制、监视或者辅助操作机器和设备的装置
一般定义△:
以应用为中心,以计算机技术为基础,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积功耗等严格要求的专用计算机系统。
1.1 嵌入式系统组成与特点 2 2 嵌入式应用系统的特点嵌入式应用系统的特点
应用于特定目的专用系统应用于特定目的专用系统
工作于嵌入式环境工作于嵌入式环境
完整的计算机系统完整的计算机系统
围绕任务进行设计所用资源少需要较长系统生命期
功耗因素体积限制环境条件
实时性要求Memory 系统RTOS
专用开发工具
1.2 嵌入式系统硬件组成
嵌入式系统组成结构
硬件结构组成—典型的片上系统 SOC片上总线
嵌入式 SOC 举例— S3C44BOX
嵌入式 SOC 举例— LPC2210/LPC2220
嵌入式 SOC 举例— PXA255
商用嵌入式处理器核 包括有 Microprocessor , MCU , DSP 三类。典型 Microp
rocessor 如下:
MIPS MPS 32 , MPS 64
MIPS 技术公司 (斯坦福大学)
PowerPC PowerPC 405 IBM
SPARC e 系列为嵌入式 SUN ( Berkerley 大学)
ARM ARM7~11 系列 ARM 公司(剑桥大学)
嵌入式系统外设接口 1. 存储器
RAM 、 SRAM DRAM Flash 、 EEPROM 、 MashROM HDD 、 CD-ROM
2. 通信接口 RS-232 、 IrDA 、 SPI 、 I2C 、 CAN 、 Bluetooth 、
Ethernet 、 IEEE1394 、 GPIO 3. I/O 设备:
LED 、 CRT 、 LCD 等
BootLoader
在 PC 机上, BIOS 完成处理器和硬件的初始化。对嵌入式系统而言,有时需要自己编制这些工作程序,即开机程序。
芯片厂家一般会提供一些 BootLoader 程序。
SOC 的片上调试接口
OCD ( On Chip Debugging )是 CPU 芯片提供的一种调试功能(片上调试),是为了能够在片外调试 SOC 内部处理器核的一种手段。
1.3 嵌入式系统软件组成
嵌入式系统软件组成
应用程序
API应用程序接口( )
HAL BSP驱动层、 、
基本模块 扩展模块
内存管理 文件管理
OS内核
进程调度
网络模块 图形驱动
Database 模块
Hardware
应用层
OS层
驱动层
软件层次结构应用程序层
API层
RTOS 层
设备驱动层 设备驱动程序
BSP
HAL硬
软
软件层次结构 HAL: 定义统一的软硬件接口标准 BSP:实现对 OS 的支持,提供访问硬件设备寄
存器的函数包 设备驱动程序:提供对各种外围设备的软件驱动
支持
实时操作系统( RTOS )
多任务管理
存储管理
I/O 资源管理
中断管理
1. 多线程 / 多进程方式,提供调度机制来对多任务管理;2. 调度算法包括:
FCFS 先来先服务 、 Round Robin 轮询、 Priority 优先级。
动态内存管理技术;高端应用在硬件配合下采用页表进行虚拟存储管理。
提供 I/O 驱动
中断方式处理器外部事件和 I/O 请求。
典型的嵌入式操作系统介绍 μc/OS-II :
中小型系统使用。支持最多 64 个任务,真正的实时 OS 。用 ANSI C 开发
Vxworks : 基本微内核,由 400 多个目标模块组成。用于航空、航天、军事等高端实时要求极高的领域
WinCE : 多线程,完整优先权,多任务 OS ,但不是硬实时系统。高度模块化。
典型的嵌入式操作系统介绍
Win mobile:
Linux OS/μcLinux :
Symbian OS:
1.4 嵌入式系统开发流程
1. 嵌入式系统开发工具2. 嵌入式软件的固化3. 嵌入式软件的调试
嵌入式系统开发的特点和技术挑战
跨平台开发,需要交叉软件集成开发环境( IDE )
需要进行软硬件协同设计 代码需要固化 采用基于任务的设计方法
嵌入式系统开发的特点和技术挑战 技术挑战
功耗、体积与性能的均衡 系统实时性要求高 软件稳定性、系统可靠性及抗干扰能力 Time-to-Market 系统可测性设计和系统设计优化是关键
1.4.1 嵌入式系统开发环境和工具
“工欲善其事,必先利其器”
嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。
1. 嵌入式软件交叉开发环境 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: 文本编辑器 交叉编译器 交叉调试器 仿真器 下载器等
交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。
交叉开发环境
目标机硬件
目标机应用系统 — 应用软件 — 应用中间件 — 目标机 OS
宿主机硬件
宿主机OS
调试代理
运行库
宿主机开发环境 — 编辑 — 编译 — 连接 — 调试
运行平台Target 开发平台Host
1. 嵌入式软件交叉开发环境
物理连接 物理连接是指宿主机与目标机通过物理线路
连接在一起,连接方式主要有三种: 串口 以太口 OCD ( On Chip Debug )方式,如 JTAG 、 B
DM 等
1. 嵌入式软件交叉开发环境
逻辑连接 物理连接是逻辑连接的基础。 逻辑连接指宿主机与目标机间按某种通
信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。
2. 嵌入式软件开发工具的分类
嵌入式软件开发阶段
2. 嵌入式软件开发工具的分类 根据不同的阶段,嵌入式软件开发工具可
以分为: 需求分析工具( Requirement Analysis Tool
s ) 软件设计工具 (Software Design Tools)
编码、调试工具 (Coding Tools)
测试工具 (Testing Tools)
配置管理工具、维护工具等
主要嵌入式软件开发工具产品
RequirementAnalysis
SoftwareDesign
Coding Test Release
Phases
TAU
ObjectGeode
Rational Rose RealTime
Rhapsody
Tornado
pRISM+
Spectra
Win CE PlatformBuilder
CodeWarrior
Xray Debugger
Logiscope
CodeTEST
LambdaTOOL
3. 嵌入式软件实现阶段的开发过程 设计完成后,嵌入式软件的开发进入实现阶段,
可分为三个步骤:生成、调试和固化运行。 软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。
调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。
固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。
1.4.2 嵌入式软件的编辑
常用的嵌入式软件编辑工具
ARM 处理器集成开发环境( IDE) Visual Studio 2005 Tornado 2.0 ADS 1.2 RealView GNU
交叉编译
把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种 CPU (嵌入式微处理器)上的二进制程序。
1.4.3 嵌入式软件调试
嵌入式软件调试的基本原理
嵌入式软件调试的基本方式
交叉调试方式 Rom Monitor In Circuit Emulator On Chip Debugging
Simulator 方式(非交叉)
1. ROM Monitor 调试方式
ROM监控器是一小程序,驻留在嵌入系统 ROM 中,通过串行的或网络的连接和运行在工作站上的调试软件通信。这是一种便宜的方式,当然也是最低端的技术。它除了要求一个通信端口和少量的内存空间外,不需要其它任何专门的硬件。
应用举例 : Trace32 工具; Angel工具( Angel Debug Protocol)
从应用来讲,并不局限于嵌入式系统。
ROM Monitor 调试方式
调试器
Windows 或其它桌面操作系统
PC 机等硬件
嵌入式硬件
监控程序 (ROM Monitor)
被调试程序
宿主机 目标机
逻辑上的连接
物理上的连接
ROM Monitor
ROM Monitor 能配合调试器完成: 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设置和清除不同类型的断点 单步执行指令 复位系统 …等调试功能
ROM Monitor 调试过程 ( 1 )启动目标机,监控器掌握对目标机的控制,
等待和调试器建立连接; ( 2 )启动调试器,并和监控器建立起通信连接; ( 3 )使用调试器将应用程序下载到目标机上的 R
AM 空间中; ( 4 )使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;
( 5)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。
ROM Monitor 优点
1) 提高调试程序的效率 ,缩短开发周期,降低成本
2) 简单、方便3) 可扩展性强,可支持许多高级调试功能4) 成本低廉,不需专门的调试硬件支持5) 几乎所有的交叉调试器都支持这种方式
ROM Monitor 缺点
1) 当 ROM Monitor占用 CPU 时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。
2) 某些调试功能依赖于 CPU 硬件的支持(如硬件断点功能)
3) ROM Monitor 要占用目标机一定数量的资源,如CPU 、 RAM 、 ROM 和通信设备等资源。
4) 调试环境不同于实际目标环境。
2. ICE 调试模式
ICE( In-Circuit Emulator )是一种用于替代目标机上 CPU 的设备,即在线仿真器。
它比一般的 CPU 有更多的引出线,能够将内部的信号输出到被控制的目标机。
ICE上的 Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。
宿主开发平台
目标平台 ICE
连接 ICE和目标机时,一般是将目标机的 CPU取下,而将 ICE的 CPU引出线接到目标机的 CPU插槽。
用 ICE进行调试时,在 Host 端运行的调试器通过 ICE来控制目标机上运行的程序。
ICE 的调试结构
ICE 优缺点
适用于:1) 调试实时的应用系统2) 调试设备驱动程序3) 对硬件进行功能和性
能的测试4) 实时性能分析
缺点:1) 价格太昂贵,不利于团队开发
2) 所仿 CPU 有限
3. OCD 调试方式
OCD ( On Chip Debugging )是 CPU 芯片提供的一种调试功能(片上调试),可以认为是一种廉价的 ICE功能: OCD 的价格只有 ICE的 20%,但提供了 ICE 80%的功能。
OCD 调试结 构
调试器
Windows 或其它桌面操作系统
PC 机等硬件
被调试程序
OCD接口
嵌入式硬件
宿主机 目标机
逻辑上的连接
物理连接
仿真器
针形连接器并口、串口或网络接口 为特定处理
器而建造
OCD 优点
1) 不占用目标机的资源2) 调试环境和最终的程序运行环境基本一致3) 支持软硬断点、 Trace 功能4) 精确计量程序的执行时间5) 提供时序分析功能
OCD缺点
1) 调试的实时性不如 ICE2) 不支持非干扰调试查询3) CPU必需具有 OCD 功能
OCD 的几种商用实现
BDM ( Background Debugging Mode )( Motoral
a )
JTAG ( Joint Test Access Group )( ARM )
OnCE ( On Chip Emulation )
各种 OCD仿真器实例
OCD 连接
4. Simulator
交叉开发方式存在如下缺点: 硬件支持 必须有目标机或评估板 易使用性 普通编程人员不熟悉 廉价性 成本高 可移植性、可扩展性 不高 团队开发 较难 开发周期 较长
软件仿真器 软件仿真器,在宿主机上创建一个虚拟的目标
机环境,再将应用系统下载到这个虚拟目标机上运行/调试。
软件仿真的对象 仿真处理器 仿真外设 仿真环境
软件仿真的级别 指令级仿真开发 API级仿真开发
宿主机 OS
编辑 £ºC¡¢C++
编译、链接
应用仿真开发环境示意图
调试目标操作系统库TOSLib
应用编程接口API
仿真调试代理EDA
应用系统
通信
用户
虚拟目标硬件V-Target
虚拟目标环境
IDE
应用仿真开发环境示意图
设 计
编码
测试
运行维护
下载
调试 固化
交叉调试 固化运行
仿真编译
仿真调试
正确
N
仿真库
编译链接
Y
运行库
结合了仿真的软件开发过程
软件仿真器优点
最大好处就是可以不用真正的目标机。可以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用 Host 资源提供更详细的错误诊断信息。
软件仿真器缺点
缺点1) 和实际运行环境差别很大2) 设备模拟的局限性较大3) 实时特性较差4) 对 Host 的资源要求较高
适用范围对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序
嵌入式软件生成阶段
三个过程 源代码程序的编
写 编译成各个目标
模块 链接成可供下载
调试或固化的目标程序
编辑器编辑器 交叉编译器
交叉编译器
交叉链接器
交叉链接器
源程序源程序 目标模块
目标模块 可供调
试 /固化
可供调试 /固化
库文件库文件
小 结
硬件抽象层( HAL )的概念
微软公司首先提出将操作系统底层与硬件相关的部分单独设计成硬件抽象层 HAL( Hardware Abstraction Layer )的思想。
硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能
具有 HAL 的嵌入式系统结构
硬件抽象服务:HAL通过硬件抽象层接口向 OS以及应用程序提供对硬件进行抽象后的服务。
OS 可移植性:当操作系统或应用程序使用硬件抽象层 API进行设计时,只要硬件抽象层 API能够在下层硬件平台上实现,那么操作系统和应用程序的代码就可以移植。
引入 HAL 后的嵌入式系统结构
HAL 引入后的 V 开发模式
传统开发的瀑布模式
HAL 使软件设计在硬件设计结束前开始进行,使整个嵌入式系统的设计过程成为软硬件设计并行的 V 模式开发过程 。
引入 HAL 后 V开发模式
通用 HAL 的结构框图
LINUX 的通用 HAL结构示意
板级支持包 BSP 概述 是硬件抽象层的一种实现,是现有的大多数商
用嵌入式操作系统实现可移植性所采用的一种方案 。
是一种封闭的专用硬件抽象层。 BSP形式的硬件抽象层与 BSP 所向上支持的
嵌入式操作系统是紧密相关的。