《嵌入式系统复习内容(答案整理)(共8页).doc》由会员分享,可在线阅读,更多相关《嵌入式系统复习内容(答案整理)(共8页).doc(8页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上第一章 嵌入式系统概述1 嵌入式系统是什么?目前,对嵌入式系统的定义多种多样:IEEE(国际电气和电子工程师协会)的定义为:用于对机器和设备进行控制,监视或者辅助操作的装置。从技术的角度定义:以应用为中心,以计算机为基础,并且软硬件可裁剪,适用于对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。从系统的角度定义:嵌入式系统是完成复杂功能的硬件和软件,并使之紧密耦合在一起的计算机系统。嵌入式系统是指嵌入式操作系统和功能软件集成在以微控制器或微处理器为核心的微型计算机硬件体系中所形成的简单便捷,稳定可靠,机电一体化产品整体。简单地说,嵌入式系统是软件体系和硬件体
2、系紧密结合的一体化系统。2 嵌入式系统由哪几个部分组成?嵌入式系统由硬件平台和系统软件组成。硬件平台指嵌入式处理器和与之通过接口连接的外围硬件平台。系统软件指实时操作系统和用户应用软件。3 嵌入式微(?)处理器有几种类型?各有什么特点?嵌入式微处理器(EMPU):比较适合于大容量的数据计算和处理,具有体积小、重量轻、成本低、可靠性高的优点。与嵌入式控制器相比,速度快,运算功能强大,可对各类数据进行快速处理。嵌入式微控制器(EMCU):比较适合于基于逻辑运算和简单数据计算结果的控制,最大特点是单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。嵌入式DSP(EDSP):对系统结构和指令的某些
3、部分进行了特殊设计,使之适合于执行DSP算法,编译效率较高,指令执行速度也较快。总而言之,就是运算速度快。嵌入式片上系统(ESOC):根据应用系统设计者定义,可以在一个硅片上集成一个更为复杂的系统。整个嵌入式系统的大部分尽可集成到一块或几块芯片上,应用系统电路板将变得很整洁,对于减少体积和功耗,提高可靠性十分有益。4 你能列举几种熟悉的操作系统吗?COS-,CLinux,WinCE,VxWorks,TRON,ITRON,eCos,Nucleus,OSE等。第二章 嵌入式系统基本元素1需要掌握嵌入式处理器内核的基本知识如下: 1.1 CPU的字长与大小端、总线宽度、外部存储器字长。字节(8位),
4、 半字(16位),字(32位)。总线宽度因各个CPU种类而异。 1.2 CPU异常的基本类型,异常优先级与中断优先级的异同点在哪里?复位、一般异常和中断。CPU 异常具有优先级,当复数个异常事件发生时,事件处理按硬件排列的优先级顺序进行。可屏蔽中断作为CPU 异常的一类其优先级最低。 而在可屏蔽中断源之中也有优先级,当复数个中断源申请中断时,优先顺序可通过优先级寄存器的设置,来决定中断服务的顺序。1.3 CPU异常与中断的区别在哪里?异常向量与中断向量各自的作用是什么?中断属于CPU异常中的一类。一般异常是指CPU内部事件引起的异常。中断在这里专指CPU外部事件引起的异常,又称硬中断,可分为:
5、不可屏蔽中断NMI和可屏蔽中断MI。异常向量使CPU 转入异常入口地址执行程序,开始了异常处理。中断向量使CPU 转入中断入口地址执行程序,开始了中断处理。 1.4 CPU的工作模式有几大类?不同模式的区别体现在哪里?两大类:用户模式和特权模式。除了共用的工作寄存器组(如R0R7)外, 不同的工作模式还拥有自己专用寄存器组(如PC和SR)。用户模式是指CPU 运行用户程序时的CPU状态,特权模式的设置主要是为操作系统服务的,它让操作系统可以轻易切换进入用户模式,而用户模式却不能切换进入特权模式,从而限制用户程序对关键寄存器或内存的访问。1.5 处理器的内核是什么?什么叫外设或外围功能模块?嵌入
6、式处理器的内核(即CPU)主要由算术逻辑单元、寄存器阵列、控制单元、总线四个部分组成。与CPU通过一定的总线相连的,具有特定功能的模块。1.6 列举嵌入式处理器常有的外围功能模块。系统时钟,外部存储器控制器(EMC),向量中断控制器(VIC),引脚连接控制器,数据高速通道(DMA),高速缓冲存储器(Cache),内存管理单元(MMU),定时器 ,实时时钟(RTC),异步串行口(UART),数模转换器(ADC),脉宽调制器(PWM),SPI总线接口模块、SSPI总线接口模块、I2C总线接口模块、IIR总线接口模块、以太网接口模块、USB接口模块和CAN接口模块等。1.7 冯诺依曼结构和哈佛结构的
7、区别?冯诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构,数据总线和地址总线共用。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构,数据总线和地址总线是分开的。1.8 嵌入式处理器芯片采用PLL锁相环的目的是什么?使用PLL锁相环可以产生相对于参考输入时钟频率不同倍率的内核时钟,当芯片工作频率高于一定频率时,就需要消除由于芯片内部时钟驱动所引起的片内时钟与片外时钟的相位差,PLL锁相环可以用来消除相位差。通过PLL锁相环调节,可以确保芯片和外部接口电路之间快速同步和有效的数据传输。 第三章 ARM7体系结构1ARM7DTMI采用了什么总线结构?采用了几
8、级流水线?执行中指令的地址与PC内容(取 指地址)的地址差是多少?冯诺依曼总线结构。3级。ARM指令集差8,Thumb指令集差4。2 在ARM7体系中处理器状态是指什么?有几个状态?指的是执行指令的状态,处理器的操作状态。有两种状态:ARM状态和Thumb状态3 什么是用户模式?什么是特权模式?ARM7体系的处理器其特权模式有几种?用户模式为正常程序工作模式;特权模式为用于支持异于正常程序工作模式的一些特权任务以及应用。特权模式有6种:系统,快中断,中断,管理,中止,未定义。4 掌握ARM7体系处理器的内部工作寄存器与处理器模式的关系。5 ARM7的PC,SP,LR,CPSR对应哪个工作寄存器
9、(R0R15)吗?各个模式中LR的功能是什么?请说明状态寄存器CPSR的各位功能以及SPSR与CPSR的关系。R15,R13,R14,CPSR(状态寄存器)。保存子程序返回地址或者异常返回地址。6 ARM7体系的处理器的CPU异常共有几种?各自的起因分别是什么?(重点)7种:复位,数据中止,中断,快中断,预取中止,未定义,软件中断。P30页7在ARM7体系中的嵌入式系统中,调用子程序(C语言程序时为函数)时,程序的断点被自动保存在什么地方?发生中断时,程序的断点被自动保存在什么地方?CPU响应中断时,被自动保存的还有什么?它能自动实现中断嵌套吗?为什么?(重点)存入自身模式下的链接寄存器LR(
10、R14)中。存入对应异常模式下的链接寄存器LR(R14)中。保存当前处理器状态CPSR,以及一些使用到的需要保护的寄存器的值。不能实现自动中断嵌套,因为当发生IRQ中断时,程序返回地址被存入IRQ中断模式下的LR(R14),如果继续发生IRQ中断,那第二次的中断返回地址也还是被存入该IRQ中断模式下的LR(R14)中,那先前发生中断时候存入的程序返回地址将被覆盖掉,导致不能返回正确的位置。第四章 ARM7指令系统1掌握ARM处理器的寻址方式?有哪些是80C51单片机中有的?哪些是没有的?对80C51 单片机中所没有的寻址方式,你能举例几个指令说明它们的用法吗?ARM处理器的9种基本寻址方式:1
11、.寄存器寻址;2.立即寻址;3.寄存器移位寻址;4.寄存器间接寻址;5.基址寻址;6.多寄存器寻址;7.堆栈寻址;8.块拷贝寻址;9.相对寻址。80C51系列单片机的7种寻址方式:1.立即寻址;2.直接寻址;3.寄存器寻址;4.寄存器间接寻址;5.相对寻址;6.基址变址寻址;7.位寻址;寄存器移位寻址:多寄存器寻址:块拷贝寻址: 2条件码如何应用。使用条件码可以实现高效的逻辑操作,提高代码效率。所有的ARM指令都可以条件执行,而Thumb指令只有B(跳转)指令具有条件执行功能。如果指令不标明条件代码,将默认为无条件(AL)执行。P41页。 3掌握存储器访问指令、数据处理指令、分支指令、杂项指令
12、、存储器访问伪指令的使用方法。 4掌握ARM指令集和Thumb指令集各自的特点与优点。ARM指令集效率高,但是代码密度低;而Thumb指令集具有较高的代码密度,却仍然保持ARM的大多数性能上的优势,它是ARM指令集的子集。Thumb指令集具有灵活、小巧的特点。ARM指令集支持ARM核所有的特性,具有高效、快速的特点。第五章 LPC系列处理器1掌握LPC2xxx芯片处理器异常向量表的作用,看懂异常向量表的代码(重点)对于每一个异常事件,都有一个与之相对应的处理程序,它们是关联在一起的,并以一张一维表的格式存储在存储器的固定单元中。这张指定了各异常中断及其处理程序的对应关系的表,称为异常向量表。2
13、 在LPC2xxx芯片处理器的嵌入式系统中,当CPU响应功能外设中断请求时,你能说出整个中断的响应过程吗?(重点)当正在执行用户程序时,产生外部中断,中断向量控制器(VIC)将中断服务程序地址装入VICVectAddr寄存器,程序跳转到异常向量表中的中断入口地址处,执行指令跳转到VICVectAddr寄存器中的中断服务地址,中断服务程序执行完毕后,返回用户程序继续执行被中断的代码。3 储器映射指什么?存储器重映射又是什么呢?LPC2XXX芯片的重映射区域有几个?有多大?(重点)ARM芯片可以存在片内和片外存储器,程序是根据这些存储单元的地址来进行操作的。给存储器分配地址的过程称为存储器映射。
14、存储器重映射是指内核发出的地址信息与CPU外围存储器物理地址的对应关系重新定义,是存储器映射的重新控制,用于控制地址范围为0x0000 0x003F存储区域的重新映射。该区域存放着异常向量表。LPC2XXX芯片的重映射区域有4个:内部Flash,内部SRAM,内部Boot Block,片外存储器。根据不同的芯片,其大小有所不同。4 掌握存储器管理器的作用,使用外部存储器时常应操作的是什么要素?用于存储器映射控制,实现部分地址的重新映射。同一个存储器组的器件必须宽度相同,一些慢速的外部存储器可能不能适应EMC最高速度的读/写操作,所以需要在读写周期中插入若干个空闲等待周期,以降低读写操作的速度。
15、如果存储器组配置成32位宽度,地址线A0和A1无用,可作为GPIO使用;如果存储器组配置成16位宽度,地址线A0无用,可作为GPIO使用。5 掌握向量中断控制器的作用,LPC2xxx芯片处理器有几种中断?其中IRQ中断有几种?作用:允许哪些中断源可以产生中断、可以产生哪类中断、产生中断后执行哪段服务程序。LPC2xxx芯片处理器有3种中断:FIQ中断、向量IRQ中断、非向量IRQ中断。IRQ分为向量IRQ与非向量IRQ。 VIC最多支持16个向量IRQ中断。任何中断源都可以设置为非向量IRQ中断。它与向量IRQ中断的区别在于前者不能为每个非向量IRQ中断源设置服务程序地址,而是所有的非向量IR
16、Q中断都共用一个相同的服务程序入口地址。6LPC2xxx芯片处理器的中断处理是如何进行的?当正在执行用户程序时,产生中断,如果是IRQ中断,中断向量控制器(VIC)将中断服务程序地址装入VICVectAddr寄存器,程序跳转到异常向量表中的IRQ入口地址0x0018处,执行指令跳转到VICVectAddr寄存器中的中断服务地址,中断服务程序执行完毕后,返回用户程序继续执行被中断的代码。如果是FIQ中断,切换到FIQ模式,并跳转到中断向量表FIQ入口地址0x001C地址执行指令,然后跳转到FIQ处理程序代码段。第六章COS-实时操作系统1需要掌握的基本概念:共享资源、代码的临界区、可重入函数与不
17、可重入函数、占先式和非占先式、时钟节拍、任务、任务切换、优先级中断、优先级任务调度、同步吗?2个以上任务可同时访问的资源。2个以上任务可同时访问的共享资源称为临界资源,这段区域为代码临界区。可重入函数可以由多于一个任务并发使用,而不必担心数据错误。相反, 不可重入函数不能由超过一个任务所共享,除非能确保函数的互斥(或者使用,或者在代码的关键部分禁用中断)。可重入函数可以在任意时刻被中断,稍后再继续运行,不会丢失数据。可重入函数要么使用局部变量,要么在使用全局变量时保护自己的数据。非占先式,各个任务彼此合作共享一个CPU。中断任务可以使一个高优先级的任务由挂起状态变为就绪状态。但中断任务以后控制
18、权还是回到原来被中断的任务,直到该任务主动放弃CPU使用权时,那个高优先级的任务才能获得CPU的使用权。当系统响应时间很重要时,要使用占先式内核,最高优先级的任务一旦就绪,总能获得CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入就绪状态,当前任务的CPU的使用权就被剥夺了,那个高优先级的任务就立刻得到CPU的控制权。时钟节拍是特定的周期性的中断。这个中断可以看作是系统心脏的脉动。中断之间的时间间隔取决于不同应用,一般为10200ms.时钟的节拍式中断使得内核可以将任务延时若干个整数时钟节拍,并且当任务等待事件发生时,提供等待超时的依据。时钟节拍率越快,则系统的额外开销就越大。一个
19、任务就是一个独立的程序,该程序可以认为CPU完全属于该自己的。中断可以使正在执行的任务暂时挂起,如果优先级更高的任务被该中断唤醒,则高优先级的任务在中断嵌套全部退出后立即执行,中断嵌套层数可达255层。一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的并行处理只是一个假象。而实际上它是通过实时操作系统的内核控制任务之间的切换来实现的。一系列时间相关事件称为同步事件,驱动的任务为同步任务。随机发生的事件称为异步事件,驱动的任务为异步任务,如中断。2. COS-系统的任务状态有几个?它们是如何迁移的?任务是否可以被调用?5个:睡眠状态、就绪状态、运行状态、等待
20、状态、被中断状态。任务不可以被调用。任务是独立的程序,具体含义是指不能彼此直接调用,也不能直接数据进行交换,同时在任务中调用函数必须是可重入型函数。3. COS-系统的信号量、邮箱、消息队列的共同点是什么?不同点是什么?在一个多任务的应用工程中,任务之间并不是完全独立的,它们存在一些需相互配合的处理,这些相互配合是靠任务间的通讯或同步,信号量、邮箱、消息队列可以实现这种任务与任务,任务与中断服务函数间的通讯与同步。邮箱可以使一个任务或者中断服务子程序向另一个任务发送一个指针型的变量。而信号量不可以,其只能发送信号量。消息队列可以使一个任务或者中断服务子程序向另一个任务发送以指针方式定义的变量。
21、因具体的应用有所不同,每个指针指向的数据结构变量也有所不同,实际上,我们可以将消息队列看作多个邮箱组成的数组,只是它们共用一个等待任务列表。4 在实时操作系统COS-中,任务的并行处理是真正的并行处理吗?这种并行处理是如何实现的。不是。 一个任务的程序是顺序执行的,而不同任务的程序却是并行执行的。从应用程序的观点来看,此处的并行处理只是一个假象。而实际上它是通过实时操作系统的内核控制任务之间的切换来实现的。也就是任务调度啦。5 COS-操作系统是在main()中建立的,你知道调用什么系统函数建立的吗?你能否简单说明这些系统函数大致做了些什么工作?(必考-编程)OSInit();系统初始化,初始
22、化系统所有的变量和数据结构。P271OSTaskCreate();任务的创建OSStart();多任务的启动6 对于COS-操作系统,你能指出几个任务管理的系统函数和它的功能?以及时间管理的系统函数和它的功能吗?(任务建立与时间延迟的使用必考-编程)建立任务:OSTaskCreate(),OSTaskCreateExt()堆栈检验:OSTaskStkChk() 删除任务:OSTaskDel() 请求删除任务:OSTaskDelReq()改变任务的优先级:OSTaskChangePrio() 挂起任务:OSTaskSuspend()获得有关任务的信息: OSTaskQuery()任务延时函数:O
23、STimeDly() 按时分秒延时函数:OSTimeDlyHMSM()让处在延时期的任务结束延时: OSTimeDlyResume()获取系统时间:OSTimeGet() 设定系统时间:OSTimeSet()7 你知道运行中的COS-嵌入式系统在什么时候要进行任务调度?任务调度是如何实现的吗?COS-总是运行进入就绪态任务中优先级最高的那一个。当创建新任务时,或当前任务调用一些可能把自己挂起的系统函数(如OSMBoxPend)时,内核就要进行任务切换。在上述的场合,任务级的调度是由函数OSSched()完成的。检查是否中断调用和允许任务调用,找到优先级最高的任务,判断该任务是否正在运行,调用系
24、统函数进行任务切换。详细过程:1)将需要保护的寄存器内容推入当前堆栈; 2)OSTCBCur中的OSTCBStkPtr = SP;3)OSTCBCur = OSTCBHighRdy; 4)SP= OSTCBHighRdy中的OSTCBSTKPtr; 5)将从前保护的寄存器内容从新堆栈中弹出; 6)执行中断返回指令;8信号量,邮箱,消息队列都有两种不同的用法,你是否掌握了它们在实际程序中的用法?(必考其中的一两个-编程)第七章 COS-操作系统移植1COS-操作系统在嵌入式微处理器的移植需要用户定义的头文件是OS_CPU.H,你知道需要做些什么吗?用#define设置一个常量的值;声明10个(与
25、编译器相关)数据类型;用#define声明三个宏(与处理器相关),OS_ENTER_CRITICAL() /* 禁止中断*/OS_EXIT_CRITICAL() /* 允许中断 */OS_STK_GROWTH /* 堆栈增长方向 */具体见PPT2 COS-操作系统在嵌入式微处理器的移植还需要用户编写OS_CPU_A.ASM和OS_CPU_C.C,你知道这两个文件都包含些什么函数?各函数的功能?OSStartHighRdy()OS启动时运行的处于就绪态,且为最高优先级的任务的程序。OSCtxSw()任务级任务切换函数OSIntCtxSw()中断级任务切换函数OSTickISR()允许时钟节拍中断函数OSTaskStkInit()初始化任务的堆栈结构OSTaskCreateHook();OSTaskDelHook();OSTaskSwHook() OSTaskStatHook();OSTimeTickHook() 允许用户扩展C/OS-的功能 唯一必要的函数是OSTaskStkInit(),其它五个函数必须声明但没必要包含代码。 3掌握任务切换时和中断处理的处理流程。任务级任务切换:中断级任务切换:中断处理:P269页专心-专注-专业
限制150内