1、嵌入式系统设计与实例开发 基于ARM微处理器与实时操作系统 第二讲 基本概念及设计方法 主讲教师:罗子波 副教授,本节提要,1,3,2,嵌入式系统硬件知识,嵌入式系统软件知识,嵌入式系统的选择原则和设计工具,嵌入式微处理器简介 嵌入式微处理器体系结构 嵌入式微处理器的分类,2.1 嵌入式系统硬件知识,嵌入式微处理器简介,嵌入式硬件系统组成: 嵌入式微处理器: 控制单元 ALU 寄存器 存储器 输入/输出单元,嵌入式处理器的基本结构(1),微处理器是整个系统的核心,通常由3大部分组成:控制单元、算术逻辑单元和寄存器。,嵌入式处理器的基本结构(2),控制单元:主要负责取指、译码和取操作数等基本动作,并发送主要的控制指令。控制单元中包括两个重要的寄存器:程序计数器(PC)和指令寄存器(IR)。程序计数器用于记录下一条程序指令在内存中的位置,以便控制单元能到正确的内存位置取指;指令寄存器负责存放被控制单元所取的指令,通过译码,产生必要的控制信号送到算术逻辑单元进行相关的数据处理工作。 算术逻辑单元:算术逻辑单元分为两部分,一部分是算术运算单元,主要处理数值型的数据,进行数学运算,如加、减、乘、
2、除或数值的比较;另一部分是逻辑运算单元,主要处理逻辑运算工作,如AND、OR、XOR或NOT等运算。 寄存器:用于存储暂时性的数据。主要是从存储器中所得到的数据(这些数据被送到算术逻辑单元中进行处理)和算术逻辑单元中处理好的数据(再进行算术逻辑运行或存入到存储器中。,冯诺依曼体系结构和哈佛体系结构 CISC与RISC 信息存储的字节顺序 IP 核 流水线 存储器系统,2.1.2 嵌入式微处理器体系结构,冯诺依曼体系结构模型,指令寄存器,控制器,数据通道,输入,输出,中央处理器,存储器,程序,指令0,指令1,指令2,指令3,指令4,数据,数据0,数据1,数据2,哈佛体系结构,指令寄存器,控制器,数据通道,输入,输出,中央处理器,程序存储器,指令0,指令1,指令2,数据存储器,数据0,数据1,数据2,地址,指令,地址,数据,CISC和RISC,CISC:复杂指令集(Complex Instruction Set Computer) 具有大量的指令和寻址方式 8/2原则:80%的程序只使用20%的指令 大多数程序只使用少量的指令就能够运行。,RISC:精简指令集(Reduced Instru
3、ction Set Computer) 在通道中只包含最有用的指令 确保数据通道快速执行每一条指令 使CPU硬件结构设计变得更为简单,CISC与RISC的数据通道,IF,ID,REG,ALU,MEM,开始,退出,IF,ID,ALU,MEM,REG,微操作通道,开始,退出,单通数据通道,CISC的背景和特点,背景:存储资源紧缺, 强调编译优化 增强指令功能,设置一些功能复杂的指令,把一些原来由软件实现的、常用的功能改用硬件的(微程序)指令系统来实现 为节省存储空间,强调高代码密度,指令格式不固定,指令可长可短,操作数可多可少 寻址方式复杂多样,操作数可来自寄存器,也可来自存储器 采用微程序控制,执行每条指令均需完成一个微指令序列(微程序) CPI ,指令越复杂,CPI越大。,CISC的主要缺点,指令使用频度不均衡。 高频度使用的指令占据了绝大部分的执行时间,扩充的复杂指令往往是低频度指令。 大量复杂指令的控制逻辑不规整,不适于VLSI工艺 VLSI的出现,使单芯片处理机希望采用规整的硬联逻辑实现,而不希望用微程序,因为微程序的使用反而制约了速度提高。(微码的存控速度比CPU慢5-10倍)
4、。 软硬功能分配 复杂指令增加硬件的复杂度,使指令执行周期大大加长,直接访存次数增多,降低了CPU性能。 不利于先进指令级并行技术的采用 流水线技术,RISC基本设计思想,减小CPI: CPUtime=Instr_Count * CPI * Clock_cycle 精简指令集:保留最基本的,去掉复杂、使用频度不高的指令 采用Load/Store结构,有助于减少指令格式,统一存储器访问方式 采用硬接线控制代替微程序控制,典型的高性能RISC处理器,SUN公司的SPARC(1987) MIPS公司的SGI:MIPS(1986) HP公司的PA-RISC, IBM, Motorola公司的PowerPC DEC、Compac公司的Alpha AXP IBM的RS6000(1990)第一台Superscalar RISC机,CISC与RISC的对比,for (i = 0; i 10000; +i) /* 各种算术运算操作 */ 实验平台:桌面Intel Pentium4,带硬件浮点支持 Operator Time Operator Time + (int) 1 + (double) 5 * (
5、int) 5 * (double) 5 / (int) 12 / (double) 10 (int) 2 sin 48,小实验1,信息存储的字节顺序,大端模式 字数据的高位字节存储在低地址中 字数据的低字节则存放在高地址中 小端模式 低地址中存放字数据的低字节 高地址中存放字数据的高字节,示例,A. 小端存储法(0x01234567),B. 大端存储法,The ARM 可以用 little/big endian 格式存取数据.,r0 = 0x11223344,STR r0, r1,LDRB r2, r1,r1 = 0x100,Memory,3 2 1 0,0 1 2 3,Byte Lane,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,11,22,33,44,31,24,23,16,15,8,7,0,00,00,00,44,31,24,23,16,15,8,7,0,00,00,00,11,Little endian,Big endian,R2 = 0x44,R
6、2 = 0x11,For more information, see: “Application Note 61: Big and Little Endian Byte Addressing”,字节顺序,2.1.3 嵌入式微处理器的分类,本节提要,1,3,2,嵌入式系统硬件知识,嵌入式系统软件知识,嵌入式系统的选择原则和设计工具,2.2.1 嵌入式软件概述,规模较小 开发难度大 实时性和可靠性要求高 要求固化存储,2.2.1 嵌入式软件体系结构,无操作系统的情形 在嵌入式系统的发展初期,由于硬件的配置比较低,对于是否有系统软件的支持,要求还不是很强烈。在那个阶段,嵌入式软件的设计主要是以应用为核心,应用软件直接建立在硬件上,没有专门的操作系统。 有操作系统的情形,无操作系统的情形,循环轮询系统:(Polling Loop) 最简单的软件结构,程序依次检查系统的每个输入条件,一旦条件成立就进行相应的处理。 Initialize(); while(1) if(condition_1) action_1(); if(condition_2) action_2(); if(condition_
7、n) acition_n(); ,事件驱动系统:(Event-Driven system) 事件驱动系统是能对外部事件直接响应的系统。它包括前后台、实时多任务、多处理器等,是嵌入式实时系统的主要形式。 应用程序是一个无限循环,循环中调用相应的函数完成相应操作,这部分可以看成后台行为(background)。中断服务程序处理异步事件,这部分可看成前台行为(foreground)。 后台也可以叫做任务级,前台也叫中断级。,例如,很多基于微处理器的产品采用前后台系统设计,如微波炉、电话机、玩具等。从省电的角度出发,平时微处理器处在停机状态,所有的事都靠中断服务来完成。,前后台系统(后台循环、前台中断),ISR,ISR,后台 前台,ISR,时间,提高了系统可靠性 提高了系统的开发效率,降低了开发成本,缩短了开发周期 有利于系统的扩展和移植,有操作系统的情形,2.2.3 嵌入式操作系统的分类,按系统的类型分: 商用系统 专用系统 开源系统 按响应时间分: 实时 硬实时系统 软实时系统 非实时,按软件结构分类,单体结构(Monolithic Structure) 分层结构(Layered Stru
8、cture) Out of date 微内核结构(Microkernel Model),单体结构,最常用的组织结构; 整个系统只有一个可执行文件,包含所有的操作系统组件; 系统的结构就是无结构,由一组函数组成,相互之间可以随意地调用。,应用软件,文件I /O,存储管理,进程管理,I/O驱动,存储驱动,中断驱动,硬件,单体内核,分层结构,在分层结构(layered)中,一个操作系统被划分为若干个层次(0N),各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码。 这种结构要求在每个层次上都要提供一组API接口函数,这就会带来额外的开销,微内核,设备驱动程序,微内核结构,操作系统内核只包含最少的功能,如存储管理和进程管理; 其他的操作系统组件以中间件的形式存在于内核之外; 设备驱动程序完全从内核中剥离,独立成为一层。,中间件、应用软件,存储管理,进程管理,I/O驱动,存储驱动,中断驱动,硬件,有操作系统的情形,硬件,板级 初始化,设备 驱动层,以太网 驱动,串口 驱动,LCD 驱动,键盘 驱动,操作 系统层,中间件 层,应用 软件层,TCP/IP 网络系统,文件 系统,
9、内核,嵌入式 GUI,嵌入式 CORBA,嵌入式 JAVA,嵌入式 DCOM,面向领域 的中间件,WWW 浏览器,MP3 播放器,电子 邮件,为什么要有设备驱动程序? 嵌入式硬件设备本身无法工作,需要软件来驱动,如初始化、控制、数据读写等。 什么是设备驱动程序? 直接与硬件打交道、对硬件进行控制和管理的软件。 在一个嵌入式系统中,设备驱动程序是必不可少的。,设备驱动程序,设备驱动程序的主要功能,硬件启动(Startup):在开机上电或重启的时候,对硬件进行初始化; 硬件关闭(Shutdown):把硬件配置成关机状态; 硬件停用(Disable):暂停使用硬件; 硬件启用(Enable):重新启用硬件; 硬件读操作(Read):从硬件中读取数据; 硬件写操作(Write):往硬件中写数据; ,嵌入式中间件,中间件(Middleware):在OS内核、设备驱动程序和应用软件之外的所有系统软件; 中间件的基本思路:把原本属于应用软件层的一些通用的功能模块抽取出来,形成独立的一层软件,从而为运行在其上的各个应用软件提供一个灵活、安全、移植性好、相互通信、协同工作的平台; 优点:实现软件的可重用,降低应用软件的复杂性,降低开发成本。,2.2.4 嵌入式操作系统的几个概念,占先式内核 调度策略分析 任务优先级分配 时间的可确定性 任务切换时间 中断响应时间 优先级反转 任务执行时间的抖动 任务划分,2.2.5 常见的嵌入式操作系统,实时嵌入式操作系统的种类繁多,大体上可分为两种,商用型和免费型。 商用型的实操作系统功能稳定、可靠,有完善的技术支持和售后服务,但往往价格昂贵C/OS 。 免费型的实时操作系统在价格方面具有优势,目前主要有Linux和,稳定性与服务性存在挑战。,VxWorks,VxWorks操作系统是美国WindRiver公司于1983年设计开发的一种嵌入式实时操作系统(RTOS),具有良好的持续发展能力、高性能的内核以及友好的用户开发环境,在嵌入式实时
《嵌入式系统的幻灯片》由会员F****n分享,可在线阅读,更多相关《嵌入式系统的幻灯片》请在金锄头文库上搜索。