77

Click here to load reader

嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

Embed Size (px)

DESCRIPTION

嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发. 微电子学院 李 康. Ⅰ 课程开设目的. 了解与熟悉嵌入式系统的开发与编程 了解基于 ARM 7/9 的嵌入式 SOC 结构与特点 了解高性能嵌入式系统的发展趋势. Ⅱ 课程安排. 一 . 嵌入式系统简介 二 . 嵌入式系统开发流程 三 . 嵌入式系统的编程与调试 四 . 基于 ARM 7/9 的嵌入式处理器结构 五 . 嵌入式处理器结构发展趋势 六 . 网络处理器. 参考教材. - PowerPoint PPT Presentation

Citation preview

Page 1: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统与结构—基于 ARM 的体系结构和应用开

微电子学院

李 康

Page 2: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

Ⅰ 课程开设目的

了解与熟悉嵌入式系统的开发与编程 了解基于 ARM 7/9 的嵌入式 SOC 结构与特点 了解高性能嵌入式系统的发展趋势

Page 3: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

Ⅱ 课程安排 一 . 嵌入式系统简介 二 . 嵌入式系统开发流程 三 . 嵌入式系统的编程与调试 四 . 基于 ARM 7/9 的嵌入式处理器结构 五 . 嵌入式处理器结构发展趋势 六 . 网络处理器

Page 4: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

参考教材

《嵌入式技术与系统— Intel Xscale 结构与开发》,陈章龙,唐志强,涂时亮,北航出版社;

辅助参考: 《 ARM Architecture Reference Manual (2nd Editi

on) 》 , ARM 公司

《嵌入式系统开发原理与实践》,陈文智等编著,清华大学出版社

Page 5: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统组成与特点;

嵌入式系统软 / 硬件组成;

嵌入式系统开发流程

一 . 嵌入式系统简介

Page 6: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.1 嵌入式系统组成与特点

1 计算机系统的分类 台式计算机 PC ( Desktop Computing ) 服务器 ( Servers ) 嵌入式计算机( Embedded Computers )

Page 7: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

PC 应用

Page 8: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

服务器应用 工作站、文件服务器,数据库应用、 Web 服务器等。

SUN 890 服务器 IBM 系列服务器

Page 9: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式应用— 航空、航天

Page 10: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式应用— 军事、通信

Page 11: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式应用— 消费类电子

Page 12: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.1 嵌入式系统组成与特点 1 嵌入式系统的定义

IEEE (国际电气和电子工程师协会)定义△:

用于控制、监视或者辅助操作机器和设备的装置

一般定义△:

以应用为中心,以计算机技术为基础,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积功耗等严格要求的专用计算机系统。

Page 13: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.1 嵌入式系统组成与特点 2 2 嵌入式应用系统的特点嵌入式应用系统的特点

应用于特定目的专用系统应用于特定目的专用系统

工作于嵌入式环境工作于嵌入式环境

完整的计算机系统完整的计算机系统

围绕任务进行设计所用资源少需要较长系统生命期

功耗因素体积限制环境条件

实时性要求Memory 系统RTOS

专用开发工具

Page 14: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.2 嵌入式系统硬件组成

Page 15: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统组成结构

Page 16: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

硬件结构组成—典型的片上系统 SOC片上总线

Page 17: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式 SOC 举例— S3C44BOX

Page 18: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式 SOC 举例— LPC2210/LPC2220

Page 19: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式 SOC 举例— PXA255

Page 20: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

商用嵌入式处理器核 包括有 Microprocessor , MCU , DSP 三类。典型 Microp

rocessor 如下:

MIPS MPS 32 , MPS 64

MIPS 技术公司 (斯坦福大学)

PowerPC PowerPC 405 IBM

SPARC e 系列为嵌入式 SUN ( Berkerley 大学)

ARM ARM7~11 系列 ARM 公司(剑桥大学)

Page 21: 嵌入式系统与结构 — 基于 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 等

Page 22: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

BootLoader

在 PC 机上, BIOS 完成处理器和硬件的初始化。对嵌入式系统而言,有时需要自己编制这些工作程序,即开机程序。

芯片厂家一般会提供一些 BootLoader 程序。

Page 23: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

SOC 的片上调试接口

OCD ( On Chip Debugging )是 CPU 芯片提供的一种调试功能(片上调试),是为了能够在片外调试 SOC 内部处理器核的一种手段。

Page 24: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.3 嵌入式系统软件组成

Page 25: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统软件组成

应用程序

API应用程序接口( )

HAL BSP驱动层、 、

基本模块 扩展模块

内存管理 文件管理

OS内核

进程调度

网络模块 图形驱动

Database 模块

Hardware

应用层

OS层

驱动层

Page 26: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

软件层次结构应用程序层

API层

RTOS 层

设备驱动层 设备驱动程序

BSP

HAL硬

Page 27: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

软件层次结构 HAL: 定义统一的软硬件接口标准 BSP:实现对 OS 的支持,提供访问硬件设备寄

存器的函数包 设备驱动程序:提供对各种外围设备的软件驱动

支持

Page 28: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

实时操作系统( RTOS )

多任务管理

存储管理

I/O 资源管理

中断管理

1. 多线程 / 多进程方式,提供调度机制来对多任务管理;2. 调度算法包括:

FCFS 先来先服务 、 Round Robin 轮询、 Priority 优先级。

动态内存管理技术;高端应用在硬件配合下采用页表进行虚拟存储管理。

提供 I/O 驱动

中断方式处理器外部事件和 I/O 请求。

Page 29: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

典型的嵌入式操作系统介绍 μc/OS-II :

中小型系统使用。支持最多 64 个任务,真正的实时 OS 。用 ANSI C 开发

Vxworks : 基本微内核,由 400 多个目标模块组成。用于航空、航天、军事等高端实时要求极高的领域

WinCE : 多线程,完整优先权,多任务 OS ,但不是硬实时系统。高度模块化。

Page 30: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

典型的嵌入式操作系统介绍

Win mobile:

Linux OS/μcLinux :

Symbian OS:

Page 31: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.4 嵌入式系统开发流程

1. 嵌入式系统开发工具2. 嵌入式软件的固化3. 嵌入式软件的调试

Page 32: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统开发的特点和技术挑战

跨平台开发,需要交叉软件集成开发环境( IDE )

需要进行软硬件协同设计 代码需要固化 采用基于任务的设计方法

Page 33: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式系统开发的特点和技术挑战 技术挑战

功耗、体积与性能的均衡 系统实时性要求高 软件稳定性、系统可靠性及抗干扰能力 Time-to-Market 系统可测性设计和系统设计优化是关键

Page 34: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.4.1 嵌入式系统开发环境和工具

Page 35: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

“工欲善其事,必先利其器”

嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。

Page 36: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1. 嵌入式软件交叉开发环境 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: 文本编辑器 交叉编译器 交叉调试器 仿真器 下载器等

交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。

Page 37: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

交叉开发环境

目标机硬件

目标机应用系统   — 应用软件   — 应用中间件   — 目标机 OS

宿主机硬件

宿主机OS

调试代理

运行库

宿主机开发环境   — 编辑   — 编译   — 连接   — 调试

运行平台Target 开发平台Host

Page 38: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1. 嵌入式软件交叉开发环境

物理连接 物理连接是指宿主机与目标机通过物理线路

连接在一起,连接方式主要有三种: 串口 以太口 OCD ( On Chip Debug )方式,如 JTAG 、 B

DM 等

Page 39: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1. 嵌入式软件交叉开发环境

逻辑连接 物理连接是逻辑连接的基础。 逻辑连接指宿主机与目标机间按某种通

信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。

Page 40: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

2. 嵌入式软件开发工具的分类

嵌入式软件开发阶段

Page 41: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

2. 嵌入式软件开发工具的分类 根据不同的阶段,嵌入式软件开发工具可

以分为: 需求分析工具( Requirement Analysis Tool

s ) 软件设计工具 (Software Design Tools)

编码、调试工具 (Coding Tools)

测试工具 (Testing Tools)

配置管理工具、维护工具等

Page 42: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

主要嵌入式软件开发工具产品

RequirementAnalysis

SoftwareDesign

Coding Test Release

Phases

TAU

ObjectGeode

Rational Rose RealTime

Rhapsody

Tornado

pRISM+

Spectra

Win CE PlatformBuilder

CodeWarrior

Xray Debugger

Logiscope

CodeTEST

LambdaTOOL

Page 43: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

3. 嵌入式软件实现阶段的开发过程 设计完成后,嵌入式软件的开发进入实现阶段,

可分为三个步骤:生成、调试和固化运行。 软件的生成主要是在宿主机上进行,利用各种工具完成对应用程序的编辑、交叉编译和链接工作,生成可供调试或固化的目标程序。

调试是通过交叉调试器完成软件的调试工作。调试完成后还需进行必要的测试工作。

固化运行是先用一定的工具将应用程序固化到目标机上,然后启动目标机,在没有任何工具干预的情况下应用程序能自动地启动运行。

Page 44: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.4.2 嵌入式软件的编辑

常用的嵌入式软件编辑工具

Page 45: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ARM 处理器集成开发环境( IDE) Visual Studio 2005 Tornado 2.0 ADS 1.2 RealView GNU

Page 46: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

交叉编译

把在宿主机上编写的高级语言程序编译成可以运行在目标机上的代码,即在宿主机上能够编译生成另一种 CPU (嵌入式微处理器)上的二进制程序。

Page 47: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1.4.3 嵌入式软件调试

嵌入式软件调试的基本原理

Page 48: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式软件调试的基本方式

交叉调试方式 Rom Monitor In Circuit Emulator On Chip Debugging

Simulator 方式(非交叉)

Page 49: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

1. ROM Monitor 调试方式

ROM监控器是一小程序,驻留在嵌入系统 ROM 中,通过串行的或网络的连接和运行在工作站上的调试软件通信。这是一种便宜的方式,当然也是最低端的技术。它除了要求一个通信端口和少量的内存空间外,不需要其它任何专门的硬件。

应用举例 : Trace32 工具; Angel工具( Angel Debug Protocol)

从应用来讲,并不局限于嵌入式系统。

Page 50: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ROM Monitor 调试方式

调试器

Windows 或其它桌面操作系统

PC 机等硬件

嵌入式硬件

监控程序 (ROM Monitor)

被调试程序

宿主机 目标机

逻辑上的连接

物理上的连接

Page 51: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ROM Monitor

ROM Monitor 能配合调试器完成: 程序映像下载 对目标机系统内存的读写 对寄存器的读写 设置和清除不同类型的断点 单步执行指令 复位系统 …等调试功能

Page 52: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ROM Monitor 调试过程 ( 1 )启动目标机,监控器掌握对目标机的控制,

等待和调试器建立连接; ( 2 )启动调试器,并和监控器建立起通信连接; ( 3 )使用调试器将应用程序下载到目标机上的 R

AM 空间中; ( 4 )使用调试器进行调试,发出各种调试命令,监控器解释并执行这些命令,通过目标机上的各种异常来获取对目标机的控制,将命令执行结果回传给调试器;

( 5)如果程序有问题,在调试器的帮助下定位错误;修改之后再重新编译链接并下载程序,开始新的调试,如此反复直至程序正确运行为止。

Page 53: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ROM Monitor 优点

1) 提高调试程序的效率 ,缩短开发周期,降低成本

2) 简单、方便3) 可扩展性强,可支持许多高级调试功能4) 成本低廉,不需专门的调试硬件支持5) 几乎所有的交叉调试器都支持这种方式

Page 54: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ROM Monitor 缺点

1) 当 ROM Monitor占用 CPU 时,应用程序不响应外部的中断,因此不便调试有时间特性的程序。

2) 某些调试功能依赖于 CPU 硬件的支持(如硬件断点功能)

3) ROM Monitor 要占用目标机一定数量的资源,如CPU 、 RAM 、 ROM 和通信设备等资源。

4) 调试环境不同于实际目标环境。

Page 55: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

2. ICE 调试模式

ICE( In-Circuit Emulator )是一种用于替代目标机上 CPU 的设备,即在线仿真器。

它比一般的 CPU 有更多的引出线,能够将内部的信号输出到被控制的目标机。

ICE上的 Memory也可以被映射到用户的程序空间,这样即使目标机不存在的情形下也可以进行代码的调试。

Page 56: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

宿主开发平台

目标平台 ICE

连接 ICE和目标机时,一般是将目标机的 CPU取下,而将 ICE的 CPU引出线接到目标机的 CPU插槽。

用 ICE进行调试时,在 Host 端运行的调试器通过 ICE来控制目标机上运行的程序。

ICE 的调试结构

Page 57: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

ICE 优缺点

适用于:1) 调试实时的应用系统2) 调试设备驱动程序3) 对硬件进行功能和性

能的测试4) 实时性能分析

缺点:1) 价格太昂贵,不利于团队开发

2) 所仿 CPU 有限

Page 58: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

3. OCD 调试方式

OCD ( On Chip Debugging )是 CPU 芯片提供的一种调试功能(片上调试),可以认为是一种廉价的 ICE功能: OCD 的价格只有 ICE的 20%,但提供了 ICE 80%的功能。

Page 59: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

OCD 调试结 构

调试器

Windows 或其它桌面操作系统

PC 机等硬件

被调试程序

OCD接口

嵌入式硬件

宿主机 目标机

逻辑上的连接

物理连接

仿真器

针形连接器并口、串口或网络接口 为特定处理

器而建造

Page 60: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

OCD 优点

1) 不占用目标机的资源2) 调试环境和最终的程序运行环境基本一致3) 支持软硬断点、 Trace 功能4) 精确计量程序的执行时间5) 提供时序分析功能

Page 61: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

OCD缺点

1) 调试的实时性不如 ICE2) 不支持非干扰调试查询3) CPU必需具有 OCD 功能

Page 62: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

OCD 的几种商用实现

BDM ( Background Debugging Mode )( Motoral

a )

JTAG ( Joint Test Access Group )( ARM )

OnCE ( On Chip Emulation )

Page 63: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

各种 OCD仿真器实例

Page 64: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

OCD 连接

Page 65: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

4. Simulator

交叉开发方式存在如下缺点: 硬件支持 必须有目标机或评估板 易使用性 普通编程人员不熟悉 廉价性  成本高 可移植性、可扩展性  不高 团队开发 较难 开发周期 较长

Page 66: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

软件仿真器 软件仿真器,在宿主机上创建一个虚拟的目标

机环境,再将应用系统下载到这个虚拟目标机上运行/调试。

软件仿真的对象 仿真处理器 仿真外设 仿真环境

软件仿真的级别 指令级仿真开发 API级仿真开发

Page 67: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

宿主机 OS

编辑 £ºC¡¢C++

编译、链接

应用仿真开发环境示意图

调试目标操作系统库TOSLib

应用编程接口API

仿真调试代理EDA

应用系统

通信

用户

虚拟目标硬件V-Target

虚拟目标环境

IDE

应用仿真开发环境示意图

Page 68: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

   设 计

编码

测试

运行维护

下载

调试 固化

交叉调试 固化运行

仿真编译

仿真调试

正确

N

仿真库

编译链接

Y

运行库

结合了仿真的软件开发过程

Page 69: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

软件仿真器优点

最大好处就是可以不用真正的目标机。可以在目标机环境并不存在的条件下开发目标机上的应用系统,并且在调试时可以利用 Host 资源提供更详细的错误诊断信息。

Page 70: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

软件仿真器缺点

缺点1) 和实际运行环境差别很大2) 设备模拟的局限性较大3) 实时特性较差4) 对 Host 的资源要求较高

适用范围对时间特性没有严格要求、没有特殊外设、只需要验证逻辑正确的应用程序

Page 71: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

嵌入式软件生成阶段

三个过程 源代码程序的编

写 编译成各个目标

模块 链接成可供下载

调试或固化的目标程序

编辑器编辑器 交叉编译器

交叉编译器

交叉链接器

交叉链接器

源程序源程序 目标模块

目标模块 可供调

试 /固化

可供调试 /固化

库文件库文件

Page 72: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

小 结

Page 73: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

硬件抽象层( HAL )的概念

微软公司首先提出将操作系统底层与硬件相关的部分单独设计成硬件抽象层 HAL( Hardware Abstraction Layer )的思想。

硬件抽象层的引入大大推动了嵌入式操作系统的通用程度,为嵌入式操作系统的广泛应用提供了可能

Page 74: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

具有 HAL 的嵌入式系统结构

硬件抽象服务:HAL通过硬件抽象层接口向 OS以及应用程序提供对硬件进行抽象后的服务。

OS 可移植性:当操作系统或应用程序使用硬件抽象层 API进行设计时,只要硬件抽象层 API能够在下层硬件平台上实现,那么操作系统和应用程序的代码就可以移植。

引入 HAL 后的嵌入式系统结构

Page 75: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

HAL 引入后的 V 开发模式

传统开发的瀑布模式

HAL 使软件设计在硬件设计结束前开始进行,使整个嵌入式系统的设计过程成为软硬件设计并行的 V 模式开发过程 。

引入 HAL 后 V开发模式

Page 76: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

通用 HAL 的结构框图

LINUX 的通用 HAL结构示意

Page 77: 嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发

板级支持包 BSP 概述 是硬件抽象层的一种实现,是现有的大多数商

用嵌入式操作系统实现可移植性所采用的一种方案 。

是一种封闭的专用硬件抽象层。 BSP形式的硬件抽象层与 BSP 所向上支持的

嵌入式操作系统是紧密相关的。