《实时嵌入式系统设计》课程复习课件_第1页
《实时嵌入式系统设计》课程复习课件_第2页
《实时嵌入式系统设计》课程复习课件_第3页
《实时嵌入式系统设计》课程复习课件_第4页
《实时嵌入式系统设计》课程复习课件_第5页
已阅读5页,还剩37页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、嵌入式系统概论复习课北京航空航天大学机器人研究所魏洪兴嵌入式系统概论考试时间时间: 2011年1月5日晚18:0020:00 地点:主南405考试形式:半开卷考试时间时间:考试要求掌握嵌入式系统的软硬件基本概念,包括CISC、RISC、进程、线程、操作系统通信与同步等,及一些术语的表示方法;掌握ARM体系结构:包括寄存器组织、工作模式、异常处理等;掌握ARM汇编指令,能够进行简单的汇编程序设计;了解uC/OS的基本结构考试要求掌握嵌入式系统的软硬件基本概念,包括CISC、RIS嵌入式系统的软硬件基本概念嵌入式系统的软硬件基本概念嵌入式系统的软/硬件框架嵌入式系统的软/硬件框架CISC和RISC

2、CISC:复杂指令集(Complex Instruction Set Computer)具有大量的指令和寻址方式8/2原则:80%的程序只使用20%的指令大多数程序只使用少量的指令就能够运行。RISC:精简指令集(Reduced Instruction Set Computer)在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 CISC和RISCCISC:复杂指令集(Complex InCISC与RISC的数据通道IFIDREGALUMEM开始退出IFIDALUMEMREG微操作通道开始退出单通数据通道CISC与RISC的数据通道IFIDREGALUME

3、M开始退CISC与RISC的对比类别CISCRISC指令系统指令数量很多较少,通常少于100执行时间有些指令执行时间很长,如整块的存储器内容拷贝;或将多个寄存器的内容拷贝到存贮器没有较长执行时间的指令编码长度编码长度可变,1-15字节编码长度固定,通常为4个字节寻址方式寻址方式多样简单寻址操作可以对存储器和寄存器进行算术和逻辑操作只能对寄存器对行算术和逻辑操作,Load/Store体系结构编译难以用优化编译器生成高效的目标代码程序 采用优化编译技术,生成高效的目标代码程序 CISC与RISC的对比类别CISCRISC指令系统指令数量非占先式与占先式非占先式(non-preemptive)非占先

4、式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到改任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。非占先式内核的一个特点是几乎不需要使用信号量保护共享数据。运行着的任务占有CPU,而不必担心被别的任务抢占。非占先式内核的最大缺陷在于其响应高优先级的任务慢,任务已经进入就绪态,但还不能运行,也许要等很时间,直到当前运行着的任务释放CPU。内核的任务级响应时间是不确定的,不知道什么时候最高优先级的任务

5、才能拿到CPU的控制权,完全取决于应用程序什么时候释放CPU。非占先式与占先式非占先式(non-preemptive)非占先式(Non-Preemptive)低优先级任务ISR高优先级任务(1)(2)(3)(4)(5)(6)(7)中断服务程序使高优先级任务就绪低优先级任务释放CPU使用权TIME非占先式(Non-Preemptive)低优先级任务ISR高占先式(preemptive)当系统响应时间很重要时,要使用占先式(preemptive)内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被

6、挂起了,那个高优先级的任务立刻得到了CPU的控制权。使用占先式内核时,应用程序不应直接使用不可重入型函数。如果调入可重入型函数时,低优先级的任务CPU的使用权被高优先级任务剥夺,不可重入型函数中的数据有可能被破坏。占先式(preemptive)占先式(Preemptive)低优先级任务ISR高优先级任务(1)(2)(3)(4)(5)(6)中断服务程序使高优先级任务就绪高优先级任务得到CPU使用权TIME占先式(Preemptive)低优先级任务ISR高优先级任务进程、线程和任务在多道程序系统中,各个程序之间是并发执行的,共享系统资源。CPU需要在各个运行的程序之间来回地切换,这样的话,要想描述

7、这些多道的并发活动过程就变得很困难。为此,操作系统设计者提出了进程的概念。进程、线程和任务在多道程序系统中,各个程序之间是并发执什么是进程?A process a program in execution 一个进程应该包括: 程序的代码; 程序的数据; PC中的值,用来指示下一条将运行的指令; 一组通用的寄存器的当前值,堆、栈; 一组系统资源(如打开的文件) 总之,进程包含了正在运行的一个程序的所有状态信息。什么是进程?A process a programain( ).A( ).PROCESSA program is C statements or commands静态的;A process

8、 is program + running context动态的.main( ).A( ).PROGRAMheap StackA MainRegisters,PCProcess Program main( )A program is C statem进程的特性动态性:程序的运行状态在变,PC、寄存器、 堆和栈等;独立性:是一个独立的实体,是计算机系统资 源的使用单位。每个进程都有“自己” 的PC和内部状态,运行时独立于其他 的进程(逻辑PC和物理PC);并发性:从宏观上看各进程是同时独立运行的进程的特性动态性:程序的运行状态在变,PC、寄存器、 怎么办? 需要提出一种新的实体,满足以下特性:(

9、1)实体之间可以并发地执行;(2)实体之间共享相同的地址空间;这种实体就是:线程(Thread)怎么办? 需要提出一种新的实体,满足以下特性:这种实体就是什么是线程? Thread: A sequential execution stream within a process; A thread of execution; 进程当中的一条执行流程。什么是线程? Thread:从两个方面来理解进程: 从资源组合的角度:进程把一组相关的 资源组合起来,构成了一个资源平台 (环境),包括地址空间(代码段、数据 段)、打开的文件等各种资源; 从运行的角度:代码在这个资源平台上的 一条执行流程(线程)。

10、资源平台 线程 从两个方面来理解进程:资源平台 线程 进程 线程 资源平台优点: 一个进程中可以同时存在多个线程; 各个线程之间可以并发地执行; 各个线程之间可以共享地址空间。进程 线程 资源平台优点:线程所需的资源(本图摘自Silberschatz, Galvin and Gagne: “Operating System Concepts”) 线程所需的资源(本图摘自Silberschatz, Gal任务task典型的任务一个无限循环。void mytask(void *pdata) for (;) do something; waiting; do something; C/OS II 2

11、.5版本支持64个任务,每个任务一个特定的优先级。优先级越高,数字越小。系统占用了8个任务,保留优先级为0、1、2、3、OS_LOWEST_PRIO-3、 OS_LOWEST_PRIO-2、 OS_LOWEST_PRIO-1、 OS_LOWEST_PRIO-0。任务task典型的任务一个无限循环。任务状态就绪休眠等待或挂起运行中断服务删除任务删除任务删除任务中断中断结束创建任务任务调度任务被占先等待消息挂起收到消息挂起时间到任务状态就绪休眠等待或挂起运行中断服务删除任务删除任务删除任实时嵌入式系统设计课程复习课件OSIntEnter()/* 在调用本函数之前必须先将中断关闭 */void OS

12、IntEnter (void) if (OSRunning = TRUE) if (OSIntNesting 255) OSIntNesting+; OSIntEnter()/* 在调用本函数之前必须先将中断关OSIntExit的意义OSIntExit的意义OSIntExit()void OSIntExit (void) OS_ENTER_CRITICAL(); /关中断 if (-OSIntNesting|OSLockNesting) = 0) /判断嵌套是否为零 /把高优先级任务装入 OSIntExitY = OSUnMapTblOSRdyGrp; OSPrioHighRdy=(INT8U

13、)(OSIntExitY 3) + OSUnMapTblOSRdyTblOSIntExitY); if (OSPrioHighRdy != OSPrioCur) OSTCBHighRdy = OSTCBPrioTblOSPrioHighRdy; OSCtxSwCtr+; OSIntCtxSw(); OS_EXIT_CRITICAL(); /开中断返回OSIntExit()void OSIntExit (voiARM处理器体系结构与指令集ARM处理器体系结构与指令集ARM寄存器组织 1*ARM寄存器组织 1*寄存器 - 237 寄存器31 个通用32位寄存器,包括程序计数器PC未分组寄器R0-R

14、7分组寄存器R8-R14程序计数器PC(R15)6 个状态寄存器15 通用寄存器 (R0 to R14), 以及1或者2个状态寄存器和程序计数器在任何时候都是可以访问的可访问的寄存器取决于处理器的模式其它寄存器 (the banked registers) 的状态在支持IRQ, FIQ, 管理员, 中止和未定义模式处理时被切换寄存器 - 237 寄存器寄存器 - 3R0 到 R15 可以直接访问R0 到 R14 是通用寄存器R13: 堆栈指针 (sp) (通常)每种处理器模式都有单独的堆栈R14: 链接寄存器 (lr)R15 包含程序计数器 (PC)CPSR 当前程序状态寄存器,包括代码标志状

15、态和当前模式位5个SPSRs-(程序状态保存寄存器) 当异常发生时保存CPSR状态寄存器 - 3R0 到 R15 可以直接访问处理器工作模式(1)ARM 有7个基本工作模式:1、User:非特权模式,大部分任务执行在这种模式正常程序执行的模式2、FIQ:当一个高优先级(fast)中断产生时将会进入这种模式高速数据传输和通道处理3、IRQ:当一个低优先级(normal)中断产生时将会进入这种模式通常的中断处理4、Supervisor:当复位或软中断指令执行时将会进入这种模式供操作系统使用的一种保护模式5、Abort: 当存取异常时将会进入这种模式虚拟存储及存储保护6、Undef: 当执行未定义指

16、令时会进入这种模式软件仿真硬件协处理器7、System: 使用和User模式相同寄存器集的特权模式特权级的操作系统任务处理器工作模式(1)ARM 有7个基本工作模式:程序状态寄存器 - 1ARM7TDMI 包含当前程序状态寄存器 (CPSR), 加上5个程序状态保存寄存器SPSR,当异常发生时,用于保存CPSR的状态 这些寄存器的功能是:保存ALU当前操作信息控制允许和禁止中断设置处理器操作模式程序状态寄存器 - 1ARM7TDMI 包含当前程序状态寄存程序状态寄存器 - 2N, Z, C and V 条件码标志可以在处理器中作为数学和逻辑操作改变可以被所有的指令测试,以决定指令是否被执行N

17、: Negative. Z : Zero. C : Carry. V : oVerflowI and F 位是中断禁止位M0, M1, M2, M3 and M4 位是模式位程序状态寄存器 - 2N, Z, C and V 条件码标志程序状态寄存器 条件位:N = 1-结果为负,0-结果为正或0Z = 1-结果为0,0-结果不为0C =1-进位,0-借位V =1-结果溢出,0结果没溢出Q 位:仅ARM 5TE/J架构支持指示增强型DSP指令是否溢出J 位仅ARM 5TE/J架构支持J = 1: 处理器处于Jazelle状态中断禁止位:I = 1: 禁止 IRQ.F = 1: 禁止 FIQ.T

18、Bit仅ARM xT架构支持T = 0: 处理器处于 ARM 状态T = 1: 处理器处于 Thumb 状态Mode位(处理器模式位):0b10000User0b10001FIQ0b10010IRQ0b10011Supervisor0b10111Abort0b11011Undefined0b11111System2731N Z C V Q2867I F T mode1623 815 54024fsxc U n d e f i n e dJ程序状态寄存器 条件位:中断禁止位:2731N Z C V ARM异常 - 1异常内部或外部中断源产生并引起处理器处理一个事件,如外部中断或试图执行未定义指令

19、都会引起异常。处理异常之前必须保留处理器的状态异常类型FIQ IRQ(Interrupt ReQuest)未定义指令预取中止数据中止复位软件中断Software interrupt通过软件中断产生进行管理员模式中获得通常要求特殊的管理功能,如操作系统支持ARM异常 - 1异常内部或外部中断源产生并引起处理器处异常 - 2异常类型未定义的指令陷井当ARM接受到一条不能处理的指令,ARM把这条指令提供给任何一个协处理器执行如果协处理器可以执行这条指令但此时协处理器忙,ARM将等待直到协处理器准备好或中断发生如果没有协处理器处理这条指令,那么ARM将处理未定义的指令陷井异常优先级(1) Reset (highest priority)(2) Data abort(3) FIQ(4) IRQ(5) Prefetch abort(6) 未定义指令, Software interrupt (最低优先级)异常 - 2异常类型异常向量异常向量Vector Table异常处理当异常产生时, ARM core:拷贝 CPSR 到 SPSR_设置适当的 CPSR 位: 改变处理器状态进入 ARM 态改变处理器模式进入相应的异

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论