第一章嵌入式系统概述1.嵌入式系统是什么?目前,对嵌入式系统的定义多种多样:IEEE(国际电气和电子工程师协会)的定义为:用于对机器和设备进行控制,监视或者辅助操作的装置。从技术的角度定义:以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。从系统的角度定义:嵌入式系统是完成复杂功能的硬件和软件,并使之紧密耦合在一起的计算机系统。嵌入式系统是指嵌入式操作系统和功能软件集成在以微控制器或微处理器为核心的微型计算机硬件体系中所形成的简单便捷,稳定可靠,机电一体化产品整体。简单地说,嵌入式系统是软件体系和硬件体系紧密结合的一体化系统。2.嵌入式系统由哪几个部分组成?嵌入式系统由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件指实时操作系统和用户应用软件。3.嵌入式微(?)处理器有几种类型?各有什么特点?嵌入式微处理器(EMPU):比较适合于大容量的数据计算和处理,具有体积小、重量轻、成本低、可靠性高的优点。与嵌入式控制器相比,速度快,运算功能强大,可对各类数据进行快速处理。嵌入式微控制器(EMCU):比较适合于基于逻辑运算和简单数据计算结果的控制,最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。嵌入式DSP(EDSP):对系统结构和指令的某些部分进行了特殊设计,使之适合于执行DSP算法,编译效率较高,指令执行速度也较快。总而言之,就是运算速度快。嵌入式片上系统(ESOC):根据应用系统设计者定义,可以在一个硅片上集成一个更为复杂的系统。整个嵌入式系统的大部分尽可集成到一块或几块芯片上,应用系统电路板将变得很整洁,对于减少体积和功耗,提高可靠性十分有益。4.你能列举几种熟悉的操作系统吗?µCOS-Ⅱ,µCLinux,WinCE,VxWorks,TRON,µITRON,eCos,Nucleus,OSE等。第二章嵌入式系统基本元素1.需要掌握嵌入式处理器内核的基本知识如下:1.1CPU的字长与大小端、总线宽度、外部存储器字长。字节(8位),半字(16位),字(32位)。总线宽度因各个CPU种类而异。1.2CPU异常的基本类型,异常优先级与中断优先级的异同点在哪里?复位、一般异常和中断。CPU异常具有优先级,当复数个异常事件发生时,事件处理按硬件排列的优先级顺序进行。可屏蔽中断作为CPU异常的一类其优先级最低。而在可屏蔽中断源之中也有优先级,当复数个中断源申请中断时,优先顺序可通过优先级寄存器的设置,来决定中断服务的顺序。1.3CPU异常与中断的区别在哪里?异常向量与中断向量各自的作用是什么?中断属于CPU异常中的一类。一般异常是指CPU内部事件引起的异常。中断在这里专指CPU外部事件引起的异常,又称硬中断,可分为:不可屏蔽中断NMI和可屏蔽中断MI。异常向量使CPU转入异常入口地址执行程序,开始了异常处理。中断向量使CPU转入中断入口地址执行程序,开始了中断处理。1.4CPU的工作模式有几大类?不同模式的区别体现在哪里?两大类:用户模式和特权模式。除了共用的工作寄存器组(如R0~R7)外,不同的工作模式还拥有自己专用寄存器组(如PC和SR)。用户模式是指CPU运行用户程序时的CPU状态,特权模式的设置主要是为操作系统服务的,它让操作系统可以轻易切换进入用户模式,而用户模式却不能切换进入特权模式,从而限制用户程序对关键寄存器或内存的访问。1.5处理器的内核是什么?什么叫外设或外围功能模块?嵌入式处理器的内核(即CPU)主要由算术逻辑单元、寄存器阵列、控制单元、总线四个部分组成。与CPU通过一定的总线相连的,具有特定功能的模块。1.6列举嵌入式处理器常有的外围功能模块。系统时钟,外部存储器控制器(EMC),向量中断控制器(VIC),引脚连接控制器,数据高速通道(DMA),高速缓冲存储器(Cache),内存管理单元(MMU),定时器,实时时钟(RTC),异步串行口(UART),数模转换器(ADC),脉宽调制器(PWM),SPI总线接口模块、SSPI总线接口模块、I2C总线接口模块、IIR总线接口模块、以太网接口模块、USB接口模块和CAN接口模块等。1.7冯·诺依曼结构和哈佛结构的区别?冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构,数据总线和地址总线共用。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,数据总线和地址总线是分开的。1.8嵌入式处理器芯片采用PLL锁相环的目的是什么?使用PLL锁相环可以产生相对于参考输入时钟频率不同倍率的内核时钟,当芯片工作频率高于一定频率时,就需要消除由于芯片内部时钟驱动所引起的片内时钟与片外时钟的相位差,PLL锁相环可以用来消除相位差。通过PLL锁相环调节,可以确保芯片和外部接口电路之间快速同步和有效的数据传输。第三章ARM7体系结构1.ARM7DTMI采用了什么总线结构?采用了几级流水线?执行中指令的地址与PC内容(取指地址)的地址差是多少?冯诺依曼总线结构。3级。ARM指令集差8,Thumb指令集差4。2.在ARM7体系中处理器状态是指什么?有几个状态?指的是执行指令的状态,处理器的操作状态。有两种状态:ARM状态和Thumb状态3.什么是用户模式?什么是特权模式?ARM7体系的处理器其特权模式有几种?用户模式为正常程序工作模式;特权模式为用于支持异于正常程序工作模式的一些特权任务以及应用。特权模式有6种:系统,快中断,中断,管理,中止,未定义。4.掌握ARM7体系处理器的内部工作寄存器与处理器模式的关系。5.ARM7的PC,SP,LR,CPSR对应哪个工作寄存器(R0~R15)吗?各个模式中LR的功能是什么?请说明状态寄存器CPSR的各位功能以及SPSR与CPSR的关系。R15,R13,R14,CPSR(状态寄存器)。保存子程序返回地址或者异常返回地址。6.ARM7体系的处理器的CPU异常共有几种?各自的起因分别是什么?(重点)7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。P30页7.在ARM7体系中的嵌入式系统中,调用子程序(C语言程序时为函数)时,程序的断点被自动保存在什么地方?发生中断时,程序的断点被自动保存在什么地方?CPU响应中断时,被自动保存的还有什么?它能自动实现中断嵌套吗?为什么?(重点)存入自身模式下的链接寄存器LR(R14)中。存入对应异常模式下的链接寄存器LR(R14)中。保存当前处理器状态CPSR,以及一些使用到的需要保护的寄存器的值。不能实现自动中断嵌套,因为当发生IRQ中断时,程序返回地址被存入IRQ中断模式下的LR(R14),如果继续发生IRQ中断,那第二次的中断返回地址也还是被存入该IRQ中断模式下的LR(R14)中,那先前发生中断时候存入的程序返回地址将被覆盖掉,导致不能返回正确的位置。第四章ARM7指令系统1.掌握ARM处理器的寻址方式?有哪些是80C51单片机中有的?哪些是没有的?对80C51单片机中所没有的寻址方式,你能举例几个指令说明它们的用法吗?ARM处理器的9种基本寻址方式:1.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;6.多寄存器寻址;7.堆栈寻址;8.块拷贝寻址;9.相对寻址。80C51系列单片机的7种寻址方式:1.立即寻址;2.直接寻址;3.寄存器寻址;4.寄存器间接寻址;5.相对寻址;6.基址变址寻址;7.位寻址;寄存器移位寻址:多寄存器寻址:块拷贝寻址:2.条件码如何应用。使用条件码可以实现高效的逻辑操作,提高代码效率。所有的ARM指令都可以条件执行,而Thumb指令只有B(跳转)指令具有条件执行功能。如果指令不标明条件代码,将默认为无条件(AL)执行。P41页。3.掌握存储器访问指令、数据处理指令、分支指令、杂项指令、存储器访问伪指令的使用方法。4.掌握ARM指令集和Thumb指令集各自的特点与优点。ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。Thumb指令集具有灵活、小巧的特点。ARM指令集支持ARM核所有的特性,具有高效、快速的特点。第五章LPC系列处理器1.掌握LPC2xxx芯片处理器异常向量表的作用,看懂异常向量表的代码(重点)对于每一个异常事件,都有一个与之相对应的处理程序,它们是关联在一起的,并以一张一维表的格式存储在存储器的固定单元中。这张指定了各异常中断及其处理程序的对应关系的表,称为异常向量表。2.在LPC2xxx芯片处理器的嵌入式系统中,当CPU响应功能外设中断请求时,你能说出整个中断的响应过程吗?(重点)当正在执行用户程序时,产生外部中断,中断向量控制器(VIC)将中断服务程序地址装入VICVectAddr寄存器,程序跳转到异常向量表中的中断入口地址处,执行指令跳转到VICVectAddr寄存器中的中断服务地址,中断服务程序执行完毕后,返回用户程序继续执行被中断的代码。3.储器映射指什么?存储器重映射又是什么呢?LPC2XXX芯片的重映射区域有几个?有多大?(重点)ARM芯片可以存在片内和片外存储器,程序是根据这些存储单元的地址来进行操作的。给存储器分配地址的过程称为存储器映射。存储器重映射是指内核发出的地址信息与CPU外围存储器物理地址的对应关系重新定义,是存储器映射的重新控制,用于控制地址范围为0x0000~0x003F存储区域的重新映射。该区域存放着异常向量表。LPC2XXX芯片的重映射区域有4个:内部Flash,内部SRAM,内部BootBlock,片外存储器。根据不同的芯片,其大小有所不同。4.掌握存储器管理器的作用,使用外部存储器时常应操作的是什么要素?用于存储器映射控制,实现部分地址的重新映射。同一个存储器组的器件必须宽度相同,一些慢速的外部存储器可能不能适应EMC最高速度的读/写操作,所以需要在读写周期中插入若干个空闲等待周期,以降低读写操作的速度。如果存储器组配置成32位宽度,地址线A0和A1无用,可作为GPIO使用;如果存储器组配置成16位宽度,地址线A0无用,可作为GPIO使用。5.掌握向量中断控制器的作用,LPC2xxx芯片处理器有几种中断?其中IRQ中断有几种?作用:允许哪些中断源可以产生中断、可以产生哪类中断、产生中断后执行哪段服务程序。LPC2xxx芯片处理器有3种中断:FIQ中断、向量IRQ中断、非向量IRQ中断。IRQ分为向量IRQ与非向量IRQ。VIC最多支持16个向量IRQ中断。任何中断源都可以设置为非向量IRQ中断。它与向量IRQ中断的区别在于前者不能为每个非向量IRQ中断源设置服务程序地址,而是所有的非向量IRQ中断都共用一个相同的服务程序入口地址。6.LPC2xxx芯片处理器的中断处理是如何进行的?当正在执行用户程序时,产生中断,如果是IRQ中断,中断向量控制器(VIC)将中断服务程序地址装入VICVectAddr寄存器,程序跳转到异常向量表中的IRQ入口地址0x0018处,执行指令跳转到VICVectAddr寄存器中的中断服务地址,中断服务程序执行完毕后,返回用户程序继续执行被中断的代码。如果是FIQ中断,切换到FIQ模式,并跳转到中断向量表FIQ入口地址0x001C地址执行指令,然后跳转到FIQ处理程序代码段。第六章μCOS-Ⅱ实时操作系统1.需要掌握的基本概念:共享资源、代码的临界区、可重入函数与不可重入函数、占先式和非占先式、时钟节拍、任务、任务切换、优先级中断、优先级任务调度、同步吗?2个以上任务可同时访问的资源。2个以上任务可同时访问的共享资源称为临界资源,这段区域为代码临界区。可重入函数可以由多于一个任务并发使用,而不必担心数据错误。相反,不可重入函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用信号量,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用局部变量,要