810 likes | 1.07k Views
嵌入式系统与结构 — 基于 ARM 的体系结构和应用开发. 微电子学院 李 康. Ⅰ 课程开设目的. 了解与熟悉嵌入式系统的开发与编程 了解基于 ARM 7/9 的嵌入式 SOC 结构与特点 了解高性能嵌入式系统的发展趋势. Ⅱ 课程安排. 一 . 嵌入式系统简介 二 . 嵌入式系统开发流程 三 . 嵌入式系统的编程与调试 四 . 基于 ARM 7/9 的嵌入式处理器结构 五 . 嵌入式处理器结构发展趋势 六 . 网络处理器. 参考教材.
E N D
嵌入式系统与结构—基于ARM的体系结构和应用开发嵌入式系统与结构—基于ARM的体系结构和应用开发 微电子学院 李 康
Ⅰ 课程开设目的 • 了解与熟悉嵌入式系统的开发与编程 • 了解基于ARM 7/9的嵌入式SOC结构与特点 • 了解高性能嵌入式系统的发展趋势
Ⅱ 课程安排 • 一. 嵌入式系统简介 • 二. 嵌入式系统开发流程 • 三. 嵌入式系统的编程与调试 • 四. 基于ARM 7/9的嵌入式处理器结构 • 五. 嵌入式处理器结构发展趋势 • 六. 网络处理器
参考教材 • 《嵌入式技术与系统—Intel Xscale 结构与开发》,陈章龙,唐志强,涂时亮,北航出版社; • 辅助参考: • 《ARM Architecture Reference Manual (2nd Edition)》, ARM公司 • 《嵌入式系统开发原理与实践》,陈文智等编著,清华大学出版社
一. 嵌入式系统简介 嵌入式系统组成与特点; 嵌入式系统软/硬件组成; 嵌入式系统开发流程
1.1 嵌入式系统组成与特点 • 1 计算机系统的分类 • 台式计算机 PC(Desktop Computing) • 服务器 (Servers) • 嵌入式计算机(Embedded Computers)
SUN 890 服务器 IBM 系列服务器 服务器应用工作站、文件服务器,数据库应用、Web服务器等。
1.1 嵌入式系统组成与特点 • 1 嵌入式系统的定义 • IEEE(国际电气和电子工程师协会)定义△: 用于控制、监视或者辅助操作机器和设备的装置 • 一般定义△: 以应用为中心,以计算机技术为基础,软硬件可裁减,适应应用系统对功能、可靠性、成本、体积功耗等严格要求的专用计算机系统。
2 嵌入式应用系统的特点 应用于特定目的专用系统 工作于嵌入式环境 完整的计算机系统 1.1 嵌入式系统组成与特点 围绕任务进行设计 所用资源少 需要较长系统生命期 功耗因素 体积限制 环境条件 实时性要求 Memory 系统 RTOS 专用开发工具
硬件结构组成—典型的片上系统SOC 片上总线
商用嵌入式处理器核 • 包括有Microprocessor,MCU, DSP三类。典型Microprocessor如下:
嵌入式系统外设接口 • 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内部处理器核的一种手段。
软件层次结构 • HAL:定义统一的软硬件接口标准 • BSP:实现对OS的支持,提供访问硬件设备寄存器的函数包 • 设备驱动程序:提供对各种外围设备的软件驱动支持
多任务管理 存储管理 I/O资源管理 中断管理 实时操作系统(RTOS) • 1. 多线程/多进程方式,提供调度机制来对多任务管理; • 2. 调度算法包括: • FCFS 先来先服务 、Round Robin 轮询、Priority 优先级。 • 动态内存管理技术; • 高端应用在硬件配合下采用页表进行虚拟存储管理。 • 提供I/O驱动 • 中断方式处理器外部事件和I/O请求。
典型的嵌入式操作系统介绍 • μc/OS-II: • 中小型系统使用。支持最多64个任务,真正的实时OS。用ANSI C开发 • Vxworks: • 基本微内核,由400多个目标模块组成。用于航空、航天、军事等高端实时要求极高的领域 • WinCE: • 多线程,完整优先权,多任务OS,但不是硬实时系统。高度模块化。 END
典型的嵌入式操作系统介绍 • Win mobile: • Linux OS/μcLinux: • Symbian OS: END
1.4 嵌入式系统开发流程 嵌入式系统开发工具 嵌入式软件的固化 嵌入式软件的调试
嵌入式系统开发的特点和技术挑战 • 跨平台开发,需要交叉软件集成开发环境(IDE) • 需要进行软硬件协同设计 • 代码需要固化 • 采用基于任务的设计方法
嵌入式系统开发的特点和技术挑战 • 技术挑战 • 功耗、体积与性能的均衡 • 系统实时性要求高 • 软件稳定性、系统可靠性及抗干扰能力 • Time-to-Market • 系统可测性设计和系统设计优化是关键
“工欲善其事,必先利其器” 嵌入式软件开发工具的集成度和可用性将直接关系到嵌入式系统的开发效率。
1. 嵌入式软件交叉开发环境 • 交叉开发环境是指用于嵌入式软件开发的所有工具软件的集合,一般包括: • 文本编辑器 • 交叉编译器 • 交叉调试器 • 仿真器 • 下载器等 • 交叉开发环境由宿主机和目标机组成,宿主机与目标机之间在物理连接的基础上建立起逻辑连接。
运行平台 开发平台 Target Host 宿主机开发环境 目标机应用系统 —编辑 调 —应用软件 运 试 —编译 行 —应用中间件 代 —连接 库 OS —目标机 理 —调试 目标机硬件 宿主机 OS DownLoad 宿主机硬件 交叉开发环境
1. 嵌入式软件交叉开发环境 • 物理连接 • 物理连接是指宿主机与目标机通过物理线路连接在一起,连接方式主要有三种: • 串口 • 以太口 • OCD(On Chip Debug)方式,如JTAG、BDM等
1. 嵌入式软件交叉开发环境 • 逻辑连接 • 物理连接是逻辑连接的基础。 • 逻辑连接指宿主机与目标机间按某种通信协议建立起来的通信连接,目前逐步形成了一些通信协议的标准。
2. 嵌入式软件开发工具的分类 需求分析(Requirement Analysis) 设计(Software Design) 编码(Coding) 测试(Test) 发布、维护(Release) 嵌入式软件开发阶段
2. 嵌入式软件开发工具的分类 • 根据不同的阶段,嵌入式软件开发工具可以分为: • 需求分析工具(Requirement Analysis Tools) • 软件设计工具(Software Design Tools) • 编码、调试工具(Coding Tools) • 测试工具(Testing Tools) • 配置管理工具、维护工具等
Rational Rose RealTime ObjectGeode Rhapsody TAU Tornado LambdaTOOL pRISM+ Spectra Win CE Platform Builder CodeWarrior Xray Debugger Logiscope CodeTEST Phases Requirement Analysis Software Design Coding Test Release 主要嵌入式软件开发工具产品
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) • 从应用来讲,并不局限于嵌入式系统。
宿主机 目标机 调试器 Windows或其它桌面操作系统 PC机等硬件 被调试程序 监控程序(ROM Monitor) 逻辑上的连接 嵌入式 硬件 物理上的连接 ROM Monitor调试方式