嵌入式系统复习重点一、题型填空题2`×10单选题2`×5名词解释2`×5简答题5`×6设计题15`×2二、考点第一章嵌入式系统概述1、嵌入式系统从技术角度的定义及其特点(见PPT第一章)定义:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。特点:嵌入性、内含计算机、专用性。2、嵌入式系统的未来P3产品市场窗口现在预计翻番的周期狂热到6~9个月;全球重新定义市场的机会和膨胀的应用空间;互联现在是一个需求而不是辅助性的,包括用有线和刚刚显露头角的无线技术;基于电子的产品更复杂化;互联嵌入式系统产生新的依赖网络基础设施的应用;微处理器的处理能力按莫尔定律(Moore’sLaw)预计的速度在增加。该定律认为集成电路和晶体管个数每18个月翻一番。3、什么是嵌入式处理器及嵌入式系统的分类P5嵌入式处理器:为完成特殊应用而设计的特殊目的的处理器。嵌入式系统可以分为以下几大类:嵌入式微处理器EMPU;嵌入式微控制器MCU;嵌入式DSP处理器;嵌入式片上系统SOC。4、嵌入式操作系统相关的基本概念P7-10(可能考名词解释)前后台系统:对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为,后台也可以叫做任务级,这种系统在处理的及时性上比实际可以做到的要差。中断服务程序处理异步事件,这部分可以看成前台行为,前台也叫中断级,时间相关性很强的关键操作一定是靠中断服务程序来保证的。操作系统:操作系统是计算机中最基本的程序。操作系统负责计算机系统中全部软硬资源的分配与回收、控制与协调等并发的活动;操作系统提供用户接口,使用户获得良好的工作环境;操作系统为用户扩展新的系统功能提供软件平台。实时操作系统:实时操作系统是一段在嵌入式系统启动后首先执行的背景程序,用户的应用程序是运行于RTOS之上的各个任务,RTOS根据各个任务的要求,进行资源(包括存储器、外设等)管理、消息管理、任务调度、异常处理等工作。在RTOS支持的系统中,每个任务均有一个优先级,RTOS根据各个任务的优先级,动态地切换各个任务,保证对实时性的要求。代码的临界区:也称为临界区,指处理不可分割的代码,运行这些代码不允许被打断。一旦这部分代码开始执行,则不允许任何中断打断(这不是绝对的,如果中断不调用任何包含临界区的代码,也不访问临界区的使用的共享资源,这个中断可以执行)。为确保临界区代码的执行,在进入临界区之前要关中断,而临界区代码执行完成以后要立即开中断。资源:程序运行时可使用的软、硬件环境统称为资源。资源可以是输入、输出设备,例如打印机、键盘、显示器,也可以是一个变量、一个结构或一个数组等。共享资源:可以被一个以上任务使用的资源叫做共享资源。为了防止数据被破坏,每个任务在与共享资源打交道时,必须独占该资源,这叫做互斥。任务:一个任务也叫做一个线程,是一个简单的程序,该程序可以认为CPU完全属于该程序本身。实时应用程序的设计过程,包括如何把问题分割成多个任务,每个任务都是整个应用的某一部分,被赋予一定的优先级,有它自己的一套CPU和寄存器和自己的栈空间。任务切换:当多任务内核决定运行另外的任务时,保存正在运行任务的当前状态,即CPU寄存器中的全部内容。这些内容保存在当前状态保存区,也就是任务自己的栈区之中。入栈工作完成以后,就把下一个将要运行的任务的当前状态从任务的栈中重新装入CPU寄存器,并开始下一个任务的运行,这个过程就叫任务的切换。(这个过程增加了应用程序的额外负担,CPU的寄存器越多,额外负担就越重。做任务切换所需要的时间取决于CPU有多少寄存器要入栈,实时内核的性能不应该以每秒钟能做多少次任务切换来评价。)内核:多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核提供必不可少的系统服务,如信号量、消息队列、延时等。调度:调度是内核的主要职责之一。调度就是决定该轮到哪个任务运行了。多数实时内核是基于优先级调度法的。每个任务根据其重要程序的不同被赋予一定的优先级。基于优先级的调度法指CPU总是让处在就绪态的优先级最高的任务先运行。然而究竟何时让高优先级任务掌握CPU的使用权,有两种不同的情况,这要看用的是什么类型的内核,是非占先式的还是占先式的内核。非先占式内核:非占先式内核要求每个任务自我放弃CPU的所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。先占式内核:当系统响应时间很重要时,要使用占先式内核。因此绝大多数商业上销售的实时内核都是占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。任务优先级:任务的优先级是表示任务被调度的优先程度。每个任务都具有优先级。任务越重要,赋予的优先级应越高,越容易被调度而进入运行态。中断:中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:1.在前后台系统中,程序回到后台程序;2.对非占先式内核而言,程序回到被中断了的任务;3.对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。时钟节拍:时钟节拍是特定的周期性中断。这个中断可以看作是系统心脏的脉动。中断之间的时间间隔取决于不同应用,一般在10ms到200ms之间。时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,以及当任务等待事件发生时,提供等待超时的依据。时钟节拍率越快,系统的额外开销就越大。5、嵌入式实时操作系统的优缺点及常见的嵌入式实时操作系统P11-14优点:在嵌入式实时操作系统环境下开发实时应用程序使程序的设计和扩展变得容易,不需要大的改动就可以增加新的功能。通过将应用程序分割成若干独立的任务模块,使应用程序的设计过程大为简化;而且对实时性要求苛刻的事件都得到了快速、可靠的处理。通过有效的系统服务,嵌入式实时操作系统使得系统资源得到更好的利用。缺点:使用嵌入式实时操作系统还需要额外的ROM/RAM开销,2~5%的CPU额外负荷,以及内核的费用。常见的嵌入式实时操作系统:uClinux、WWiinnddoowwssCCEE、、VxWorks、μC/OS-II第二章ARM7体系结构1、ARM的体系结构及常用的ARM处理器系列P16ARM内核采用RISC体系结构。RISC是精简指令集计算机的缩写,其目标是设计出在高时钟频率下单周期执行,简单而有效的指令集。ARM内核采用RISC体系结构,因此具有RISC的结构特点如具有大量的通用存储器;独特的装载/保存(load-store)结构;简单的寻址模式;统一和固定长度的指令格式。常用的ARM处理器系列:ARM7系列、ARM9系列、ARM10系列、ARM11系列、Intel的XScale系列和MPCore系列;还有针对低端8位MCU市场推出的Cortex-M3系列,其具有32位CPU性能、8位CPU的价格。2、ARM7TDMI的完整意思是什么?ARM7TDMI是基于ARM体系结构V4版本的低端ARM核。其弥补了ARM6很难在低于5V电压下稳定工作的不足,还增加了后缀所对应的功能:3、存储器的字与半字及对齐关系P20从偶数地址开始的连续2个字节构成一个半字;以能被4整除的地址开始的连续4个字节构成一个字;ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。如果一个数据是从偶地址开始的连续存储,那么它就是半字对齐,否则就是非半字对齐;如果一个数据是以能被4整除的地址开始的连续存储,那么它就是字对齐,否则就是非字对齐。4、3级流水线P20(可能考大题)可参考第二章PPT23页的思考题例子。5、ARM处理器的两种状态P24ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令,并且各自对应1种处理器的状态:ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;Thumb状态:16位,处理器执行半字方式的Thumb指令。注意:两个状态之间的切换并不影响处理器模式或寄存器内容。具体例子见书上P25程序清单2.2。6、ARM处理器的7种处理模式P26(必考)ARM体系结构支持7种处理器模式,分别为:用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率,ARM7TDMI完全支持这七种模式。7、ARM状态下的内部寄存器P28-36(重点)(熟记各数字)在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。ARM处理器共有7种不同的处理器模式,每种模式都有一组相应的寄存器组,最多可以18个活动的寄存器。如下表所示:处理器模式说明备注用户(usr)正常程序运行的工作模式不能直接从用户模式切换到其他模式特权模式系统(sys)用于支持操作系统的特权任务等与用户模式类似,但具有直接切换到其他模式等特权异常模式管理(svc)供操作系统使用的一种保护模式只有在系统复位和软件中断响应时,才进入此模式中止(abt)用于虚拟内存和(或)存储器保护在ARM7内核中没有多大用处未定义(und)支持软件仿真的硬件协处理器只有在未定义指令异常响应时,才进入此模式中断(irq)中断请求处理只有在IRQ异常响应时,才进入此模式快速中断(fiq)快速中断请求处理只有在FIQ异常响应时,才进入此模式寄存器R0~R7为未分组的通用寄存器,它们在任何处理器模式都对应于相同的32位物理寄存器。寄存器R8~R12有两个分组的物理寄存器。一个用于除FIQ模式之外的所有寄存器模式,另一个用于FIQ模式。在发生FIQ中断后,处理器不必为保护寄存器而浪费时间,从而加速了FIQ的处理速度。寄存器R13、R14分别有6个分组的物理寄存器。1个用于用户和系统模式,其余5个分别用于5种异常模式。寄存器R13通常作为堆栈指针(SP),用于保存待使用的寄存器的内容。寄存器R14称为链接寄存器(LR),在结构上有两个特殊功能:当使用BL指令调用子程序时,返回地址将自动存入R14中;当发生异常时,将R14对应的异常模式版本设置为异常返回地址(有些异常有一个小的固定偏移量)。寄存器R15称为程序计数器(PC),它指向正在“取指”的指令。寄存器CPSR为当前程序状态寄存器,在异常模式中,另外一个寄存器“程序状态保存寄存器(SPSR)”可以被访问。每种异常都有自己的SPSR,在进入异常时它保存CPSR的当前值,异常退出时可通过它恢复CPSR。Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:8个通用寄存器R0~R7,在汇编语言中寄存器R0~R7为通用寄存器,对于任何处理器模式,它们中的每一个都对应于相同的32为物理寄存器。程序计数器(PC);堆栈指针(SP),堆栈指针SP对应ARM状态的寄存器R13。每个异常模式都有其自身的SP分组版本,SP通常指向各异常模式所专用的堆栈。注意:在发生异常时,处理器自动进入ARM状态。链接寄存器(LR),链接寄存器LR对应ARM状态寄存器R14。注意:在发生异常时,处理器自动进入ARM状态。