Agenda 嵌入式系统概述 嵌入式系统硬件基础 嵌入式系统软件基础 嵌入式系统开发过程
嵌入式系统概述 嵌入式系统 ( Embedded Systems ) 是指以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。是将应用程序和操作系统与计算机硬件集成在一起的系统
嵌入式设备 消费电子:PDA、手机、机顶盒、微波炉 大型设备:汽车、电梯 网络设备:路由器、交换机、防火墙 其他设备:自动售货机、ATM
嵌入式系统和实时系统 嵌入式系统经常被误解为就是实时性系统。其实,多数嵌入式系统并不需要实时性 Linux是嵌入式操作系统,并非实时操作系统。 Vxwork、pSOS等是嵌入式实时操作系统
嵌入式系统与普通系统 在实时计算中,系统的正确性不仅仅依赖于计算的逻辑结果而且依赖于结果产生的时间 对于实时系统来说最重要的要求就是实时操作系统必须有满足在一个事先定义好的时间限制中对外部或内部的事件进行响应和处理的能力 此外作为实时操作系统还需要有效的中断处理能力来处理异步事件和高效的I/O能力来处理有严格时间限制的数据收发应用
实时多任务操作系统与分时多任务操作系统 分时操作系统,软件的执行在时间上的要求,并不严格,时间上的错误,一般不会造成灾难性的后果。 实时操作系统,虽然事件可能在无法预知的时刻到达,但是软件上必须在事件发生时能够在严格的时限内作出响应(系统响应时间),即使是在尖峰负荷下,也应如此,系统时间响应的超时就意味着致命的失败。另外,实时操作系统的重要特点是具有系统的可确定性,即系统能对运行情况的最好和最坏等的情况能做出精确的估计。
实时操作系统中的重要概念 系统响应时间(System response time ) 系统发出处理要求到系统给出应答信号的时间。 任务切换时间(Context-switching time) 是任务之间切换而使用的时间。 中断延迟(Interrupt latency ) 是计算机接收到中断信号到操作系统作出响应,并转入中断服务程序的时间。
实时操作系统应具有如下的功能 任务管理(多任务和基于优先级的任务调度) 任务间同步和通信(信号量和共享内存等) 存储器优化管理(含ROM的管理) 实时时钟服务 中断管理服务
嵌入式系统发展趋势 嵌入式应用软件的开发需要强大的开发工具和操作系统的支持。 联网成为必然趋势 支持小型电子设备实现小尺寸、微功耗和低成本 提供精巧的多媒体人机界面
实时系统的体系结构设计 实时系统的体系结构必须满足 1.高运算速度 2.高速的中断处理 3.高的I/O吞吐率 5.高速可靠的和有时间约束的通信 6.体系结构支持的出错处理 7.体系结构支持的调度 8.体系结构支持的操作系统 9.体系结构支持的实时语言特性。 10.系统的稳定性和容错也非常重要 11.还要考虑到实时的分布式应用。
Agenda 嵌入式系统概述 嵌入式系统硬件基础 嵌入式系统软件基础 嵌入式系统开发过程
嵌入式系统硬件架构
嵌入式系统硬件架构 处理器: 微处理器:x86, 68K,PPC, ARM, MIPS… 微控制器:单片机8051等 DSP:适用于音频及视频通信 存储器: 只读ROM 随即读取RAM: SRAM,DRAM 混合型:EEPROM,FLASH,NVRAM(带后备电池的 SRAM) 外设:通用和专用
Agenda 嵌入式系统概述 嵌入式系统硬件基础 嵌入式系统软件基础 嵌入式系统开发过程
嵌入式软件层次结构
应用程序 开发者真正需要定制的部分。 产品的各项功能的实现。 一般采用C语言实现。 有可能需要采取多进程或多任务的编程方式。 需要考虑进程间通信和网络传输。 有可能有图形界面。
操作系统 负责如下功能 - 进程调度 - 内存管理 - 虚拟文件系统 - 网络接口 - 进程间通信
嵌入式操作系统 - VxWorks VxWorks - 由WindRiver公司开发的实时操作系统内核。 - 开放式结构和对工业标准的支持,使得开发人员容易设计高效的嵌入式系统。 - 集成开发环境Tornado功能强大。 - 开发技术文档比较全面。
嵌入式操作系统 - Linux Linux - 免费的,开发源代码的操作系统。 - 源于通用操作系统设计,实时性不足。 - 集成开发环境较为欠缺,正在改善中。 - 开发技术文档由于嵌入式Linux版本较多,不够统一。
嵌入式操作系统 - Linux 嵌入式Linux种类 - Hard Hat Linux: Monta Vista - RTLinux: New Mexico Institute of Technology - 红旗Linux: 中科红旗 - Embedix: Lineo
Agenda 嵌入式系统概述 嵌入式系统硬件基础 嵌入式系统软件基础 嵌入式系统开发过程
嵌入式软件开发模型 连接式开发环境 可抽换存储装置开发环境 独立式开发环境
连接式开发环境 嵌入式系统的一个特点在于其开发的特殊性与困难性。 开发机器 != 执行机器 开发环境 != 执行环境 开发机器 != 执行机器 开发环境 != 执行环境 专门的开发环境与开发工具
连接式开发环境
连接式开发环境 宿主机 - 开发机器(编辑器、编译器、调试器、….) 目标机 - 程序运行的机器 交叉编译是指宿主机和目标机是不同的系统 Ethernet连接用来下载可执行文件、内核、根文件系统等大型对象。 RS232连接用来进行调试。
大型连接式开发环境
可抽换存储装置开发环境
可抽换存储装置开发环境 主机和目标板之间没有实际连接。 主机先将数据写入存储装置,然后将存储装置转接到目标板,并用该存储装置引导。 目标板只包含了最起码的引导加载程序,其他组件存放在抽换式存储媒体上。
独立式开发环境
独立式开发环境 目标板是一个独立的开发系统,包含了引导、操作以及开发额外软件所必须的软件。 非常适合以PC为主的高级嵌入式系统开发应用中。
嵌入式软件开发工具 应用软件开发: Windriver公司Tornado for VxWorks 嵌入式Linux的开发套间gcc,gdb和make
嵌入式软件开发流程 Linux类 BSP调试-〉 RTOS移植-〉协议栈移植-〉应用程序调试- 〉 系统联调 -〉样机交付 Vxworks类
嵌入式软件开发工具 开发工具 典型的商业开发工具及供应商 免费开发工具 编译器(Compiler) 调试器(In Circuit Emulator) 软仿真(Simulator) 集成开发环境(IDE) 典型的商业开发工具及供应商 Windriver公司的Tornado for VxWorks MontaVisa公司的HardHat Linux 开发工具包 AMC公司的SuperTAP调试器 免费开发工具 GNU系列开发工具 Wiggler调试器