嵌入式系统原理及设计 复习要点考试.doc_第1页
嵌入式系统原理及设计 复习要点考试.doc_第2页
嵌入式系统原理及设计 复习要点考试.doc_第3页
嵌入式系统原理及设计 复习要点考试.doc_第4页
嵌入式系统原理及设计 复习要点考试.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

一、 填空题(每空1分,共15分)二、 选择题(每题2分,共20分)三、 简答题(5小题,共35分)四、 综合应用题(2题,共30分)知识点:第1章嵌入式系统概述1. 嵌入式系统的分类:四类P5嵌入式微处理器、微控制器、dsp处理器、片上系统2. 嵌入式操作系统基本概念:前后台系统、内核、占先式内核、非占先式内核、中断 P7-10前后台系统:对基于芯片的开发来说,应用程序一般是一个无限的循环,可称为前后台系统或超循环系统。中断服务程序处理异步事件这部分可以看成前台行为(中断级)。循环中调用相应的函数完成相应的操作,这部分可以看成后台行为(任务级)。内核:多任务系统中,内核负责管理各个任务,或者说为每个任务分配CPU时间,并且负责任务之间的通信。内核提供的基本服务是任务切换。使用实时内核可以大大简化应用系统的设计,是因为实时内核允许将应用分成若干个任务,由实时内核来管理它们。内核需要消耗一定的系统资源,比如25的CPU运行时间、RAM和ROM等。非占先式内核:非占先式内核要求每个任务自动放弃CPU 的所有权。非占先式调度法也称作合作型多任务,各个任务彼此合作共享一个CPU。异步事件还是由中断服务来处理。中断服务可以使一个高优先级的任务由挂起状态(mount)变为就绪状态。但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。占先式内核: 当系统响应时间很重要时,要使用占先式内核。最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪状态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。如果是中断服务子程序使一个高优先级的任务进入就绪态,中断完成时,中断了的任务被挂起,优先级高的那个任务开始运行。中断:中断是一种硬件机制,用于通知CPU有个异步事件发生了。中断一旦被识别,CPU保存部分(或全部)上下文即部分或全部寄存器的值,跳转到专门的子程序,称为中断服务子程序(ISR)。中断服务子程序做事件处理,处理完成后,程序回到:1. 在前后台系统中,程序回到后台程序;2. 对非占先式内核而言,程序回到被中断了的任务;3. 对占先式内核而言,让进入就绪态的优先级最高的任务开始运行。第2章 ARM7体系结构1. ARM7TDMI:T、D、M、I分别代表什么 P19T(Thumb):支持高密度16位的Thumb指令集;D(debug):支持片上调试M(multify):支持64位乘法I:支持Embeded ICE硬件仿真功能模块;2. 存储器的字与半字 P20ARM处理器使用了冯诺依曼(Von Neumann)结构,指令和数据共用一条32 位总线,只有装载、存储和交换指令可以对存储器中的数据进行访问。以bit1=0,bit0=0其他位为任意值。字以bit0=0,其他位为任意值。半字从偶数地址开始的连续2个字节构成一个半字; 以能被4整除的地址开始的连续4个字节构成一个字;ARM指令的长度刚好是一个字,Thumb指令的长度刚好是一个半字。3. 3级流水线 P2022取值译码执行a) 取值 从存储器装载一条指令; b) 译码 识别将要被执行的指令;c) 执行 处理指令并将结果写回寄存器无论ARM处理器处于何种状态,程序计数器R15(即PC)总是指向“正在取值”的指令。 习惯上约定将“正在执行的指令作为参考点”,称之为当前第1条指令。因此,PC总是指向第3条指令,或者说PC总是指向当前正在执行的地址在加上2条指令的地址。ARM与Thumb指令下的PC值当处理器处于ARM状态时,每条指令长为4字节,所以PC的值为正在执行的指令地址加8字节,即:PC值=当前程序执行位置+8字节当处理器处于Thumb状态时,每条指令长为2字节,所以的值为正在执行的指令地址加字节,即:值当前程序执行位置字节4. ARM指令集与Thumb指令集、ARM处理器的两种状态及状态的切换 P2425ARM7TDMI处理器内核包含2套指令系统,分别为ARM指令集和Thumb指令集,并且各自对应1种处理器的状态:ARM状态:32位,处理器执行字方式的ARM指令,处理器默认为此状态;Thumb状态:16位,处理器执行半字方式的Thumb指令(可视为ARM的子集)。注意:两个状态之间的切换并不影响处理器模式或寄存器内容以“当前程序状态寄存器CPSR”中的控制位T反映处理器正在操作的状态,即哪种指令集正在执行。AT arm到ThumbTA thumb到armCode 32Code 16LDR R0, =Lable+1LDR R0 ,=LableBX R0BX R0Code 16Code 16Lable mov R1,#12Lable mov R1,#10当T=0时,处理器处于ARM状态,执行ARM指令;当T=1时,处理器处于Thumb状态,执行Thumb指令。5. ARM处理器的7种模式(用户模式、特权模式) P26 ARM体系结构支持7种处理器模式,分别为:用户模式、快速中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。这样的好处是可以更好的支持操作系统并提高工作效率。ARM7TDMI完全支持这七种模式。除用户模式外,其它模式均为特权模式。特权模式允许对CPSR的完全读/写访问; 用户模式只允许只允许对CPSR的控制位进行读访问,但允许对条件标志位的读/写访问。此外,特权模式可以自由的切换处理器模式,而用户模式不能直接切换到别的模式。6. ARM内部寄存器:31个通用32位寄存器、6个状态寄存器 P27在ARM处理器内部共有37个用户可访问的寄存器,分别为31个通用32位寄存器和6个状态寄存器。7. Thumb状态下的寄存器 P34Thumb状态寄存器集是ARM状态集的子集,程序员可以直接访问的寄存器为:a) 8个通用寄存器R0R7;b) 堆栈指针(SP);c) 链接寄存器(LR);d) 程序计数器(PC);e) 当前程序状态寄存器( CPSR)8. 当前程序状态寄存器:(模式位、状态位、FIQ禁止、IRQ禁止) P37ARM内核包含1个CPSR和5个仅供异常处理程序使用的SPSR。CPSR反映当前处理器的状态,其包含:a) 4个条件代码标志(负标志N、零标志Z、进位标志C和溢出标志V );b) 2个中断禁止位(IRQ禁止与FIQ禁止);c) 5个对当前处理器模式进行编码的模式位(M4:0);d) 1个用于指示当前执行指令的状态位(ARM指令还是Thumb指令)。9. 异常的返回指令:(FIQ和IRQ) P40快速中断fiqSUBS PC,R14_fiq,#4R144中断irqSUBS PC,R14_irq,#4R14410. 异常向量表(IRQ、FIQ、复位) P40地址异常进入时的模式进入时I的状态进入时F的状态0x0000 0000复位管理禁止禁止0x0000 0018IRQ中断禁止F0x0000 001cFIQ快速中断禁止禁止11. 异常中断的进入与退出 P4142异常的进入:当一个异常导致模式切换时,内核自动的做如下处理:将异常处理程序的返回地址保存到相应异常模式下的LR;将CPSR的当前值保存到相应异常模式下的SPSR;设置CPSR为相应的异常模式;设置PC为相应异常处理程序的中断入口向量地址,跳转到相应的异常中断处理程序执行;异常的退出: 当异常处理程序结束时,异常处理程序必须: 返回到发生异常中断的指令的下一条指令处执行,即就是说将LR中的值减去偏移量后移入PC;将SPSR的值复制回CPSR;清零在入口处置位的中断禁止标志。12. ARM处理器支持的存储格式:大端格式和小端格式 P49 PPT80小端存储器系统: 在小端格式中,数据的高字节存放在高地址中。(高对高)大端存储器系统: 在大端格式中,数据的高字节存放在低地址中。(高对低)第3章ARM7TDMI(-S)指令系统1. ARM处理器的八种寻址方式寄存器寻址操作数的值在寄存器中,指令中的地址码字段指出的是寄存器编号,指令执行时直接取出寄存器值来操作。寄存器寻址指令举例如下: MOV R1,R2 ;将R2的值存入R1 SUB R0,R1,R2 ;将R1的值减去R2的值,结果保存到R0立即寻址立即寻址指令中的操作码字段后面的地址码部分即是操作数本身,也就是说,数据就包含在指令当中,取出指令也就取出了可以立即使用的操作数(这样的数称为立即数)。立即寻址指令举例如下: SUBSR0,R0,#1 ;R0减1,结果放入R0,并且影响标志位MOVR0,#0xFF000 ;将立即数0xFF000装入R0寄存器 寄存器移位寻址寄存器移位寻址是ARM指令集特有的寻址方式。当第2个操作数是寄存器移位方式时,第2个寄存器操作数在与第1个操作数结合之前,先进行移位操作。寄存器移位寻址指令举例如下:MOVR0,R2,LSL #3 ;R2的值左移3位,结果放入R0,即是 ;R0=R28 ANDSR1,R1,R2,LSL R3 ;R2的值左移R3位,然后和R1相“与”操作, ;结果放入R1寄存器间接寻址 寄存器间接寻址指令中的地址码给出的是一个通用寄存器的编号,所需的操作数保存在寄存器指定地址的存储单元中,即寄存器为操作数的地址指针。寄存器间接寻址指令举例如下: LDRR1,R2;将R2指向的存储单元的数据读出;保存在R1中 SWPR1,R1,R2;将寄存器R1的值和R2指定的存储;单元的内容交换 基址寻址基址寻址就是将基址寄存器的内容与指令中给出的偏移量相加,形成操作数的有效地址。基址寻址用于访问基址附近的存储单元,常用于查表、数组操作、功能部件寄存器访问等。基址寻址指令举例如下: LDRR2,R3,#0x0C ;读取R3+0x0C地址上的存储单元 ;的内容,放入R2 STRR1,R0,#-4! ;先R0=R0-4,然后把R1的值寄存 ;到保存到R0指定的存储单元 多寄存器寻址多寄存器寻址一次可传送几个寄存器值,允许一条指令传送16个寄存器的任何子集或所有寄存器。多寄存器寻址指令举例如下: LDMIAR1!,R2-R7,R12 ;将R1指向的单元中的数据读出到 ;R2R7、R12中(R1自动加4) STMIAR0!,R2-R7,R12 ;将寄存器R2R7、R12的值保 ;存到R0指向的存储单元中 ;(R0自动加4)堆栈寻址STMFDSP!,R1-R7,LR ;将R1R7、LR入栈 ,满递减堆栈LDMFD SP!,R1-R7,PC ;数据出栈,放入R1R7、PC寄存器, ;满递减堆栈相对寻址相对寻址是基址寻址的一种变通。由程序计数器PC提供基准地址,指令中的地址码字段(地址标号)作为偏移量,两者相加后得到的地址即为操作数的有效地址。相对寻址指令举例如下:BLSUBR1;调用到SUBR1子程序BEQLOOP;条件跳转到LOOP标号处.LOOPMOVR6,#1.SUBR1. 2. 单寄存器加载/存储指令 LDR/STR 多寄存器加载/存储指令 LDM/STM(了解)LDR/STR指令用于对内存变量的访问、内存缓冲区数据的访问、查表、外围部件的控制操作等。若使用LDR指令加载数据到PC寄存器,则实现程序跳转功能,这样也就实现了程序散转。 所有单寄存器加载/存储指令可分为“字、有/无符号字节、有/无符号半字加载存储指令” 。多寄存器加载/存储指令可以实现在一组寄存器和一块连续的内存单元之间传输数据。LDM为加载多个寄存器;STM为存储多个寄存器。允许一条指令传送16个寄存器的任何子集或所有寄存器。它们主要用于现场保护、数据复制、常数传递等。3. 分支指令:B、BL、BXB指令为简单的跳转指令,不附带其它功能。跳转范围限制在当前指令的32M字节地址内(ARM指令为字对齐,最低2位地址固定为0)。BL带链接的分支指令BL指令除了具有跳转功能,还能在跳转之前将下一条指令的地址拷贝到R14(即LR) 链接寄存器中,它适用于子程序调用。跳转范围限制在当前指令的32M字节地址内。指令格式如下:例如: BL DelayNS;调用子程序DelayNSBX 带状态切换的分支指令BX指令除了具有跳转功能,还能在跳转的同时切换处理器状态。其跳转范围不受限制。指令格式如下:BX Rn4. 状态寄存器的读/写指令:MRS/MSR在ARM处理器中,只有MRS指令可以对状态寄存器CPSR和SPSR进行读操作。通过读CPSR可以了解当前处理器的工作状态。读SPSR寄存器可以了解到进入异常前的处理器状态。指令格式如下所示:MRS R1,CPSR ; 读取CPSR状态寄存器到R1MRS R2,SPSR ; 读取SPSR状态寄存器到R2在ARM处理器中,只有MSR指令可以对状态寄存器CPSR和SPSR进行写操作。与MRS配合使用,可以实现对CPSR或SPSR寄存器的读-修改-写操作,可以切换处理器模式等操作。将R0的内容写入CPSR寄存器的控制位域MSR CPSR_c,R0第4章 LPC2000系列ARM硬件结构1. 片内Flash的编程方法 P104 PPT141. 使用JTAG仿真/调试器,通过芯片的JTAG接口下载程序;2. 使用在系统编程技术(即ISP),通过UART0接口下载程序;3. 使用在应用编程技术(即IAP),在用户程序运行时对Flash进行擦除和/或编程操作,实现数据的存储和固件的现场升级。2. 存储器映射的概念 PPT21给物理存储器分配逻辑地址的过程称为存储器映射3. 存储器重映射概念PPT30 将已经过映射的存储器再次映射的过程称为存储器重映射,它使同一物理存储单元出现多个不同的逻辑地址。这些存储单元主要包括引导块“Boot Block”和用于保存异常向量表的少量存储单元。3.1引导块概念及功能 PPT31 引导块(Boot Block)是芯片设计厂家在LPC2000系列ARM内部固化的一段代码,用户无法修改或删除。这段代码在芯片复位后被首先运行,其功能主要是: 判断运行哪个存储器上的程序; 检查用户代码是否有效; 判断芯片是否被加密; 芯片的在应用编程(IAP)以及在系统编程功能(ISP)。3.2异常向量表重映射 PPT34、36、37(异常向量表占据的存储单元及可来自的四个不同区域)异常向量表位于存储器映射的0x00000x001C地址空间,定义了8个异常向量,每个异常向量占一个字。 通常在0x00000x001C地址空间每个异常入口放置一条ARM 跳转指令,在其后的0x00200x0003F地址空间上放置跳转目标地址,即异常服务函数的入口地址。 所以一个异常向量表实际包含了8个字的异常入口和8个字的跳转目标地址,占用了16个字(64字节)的存储单元。异常向量表可以来自四个不同的区域:Boot Block、片内Flash、片内RAM和外部存储器。微控制器可以执行这些存储器中的代码。 除了片内Flash的向量表位于0x00000x003F地址上,其他存储器的向量表都不位于这个地址。为了能让ARM内核通过访问0x00000x003F地址访问到其他存储区域的向量表,这样向量表必须进行重映射。4. 启动代码 PPT40上电/复位 引导代码(BootBlock) 启动代码 用户main函数 向量表定义; 堆栈初始化; 系统变量初始化; 中断系统初始化; I/O初始化; 外围初始化; 地址重映射等操作。5. 时钟系统 PPT47(组成部分、结构框图)组成部分:晶体震荡器、唤醒定时器、锁相环(PPL )和分频器。6. 晶体振荡器的两种模式 PPT49外部时钟源(从属模式),也可以使用外接晶体和片内振荡电路(振荡模式)产生时钟。7. 复位 PPT54、56(2个复位源、复位信号保持的时间)1、外部复位 把nRESET引脚拉为低电平,并保持一个最小时间,引发复位在晶体振荡器保持稳定振荡,或者使用有源晶振时,外部复位信号可以缩短到不小于300ns。 2、看门狗复位通过设置看门狗相关寄存器,当看门狗定时器溢出后,引发复位芯片上电后,晶体振荡器开始振荡。因为振荡从开始到稳定需要一过程,所以外部复位信号至少要保持10ms;8. 唤醒定时器 PPT68(工作原理,注意计数周期)唤醒定时器能够确保振荡器和芯片内部硬件电路在处理器开始执行指令之前有足够的时间初始化 。计数满4096个周期后,控制开关闭合9. PLL PPT72、7680(结构框图、馈送序列、计算)Fosc为晶体震荡频率Fcco为流控震荡器频率Fcclk为连接PPL之后的频率馈送序列分两步进行,如下所示:step1. 将值0xAA写入PLLFEED step2. 将值0x55写入PLLFEED最后得出PLL的输出频率(当PLL激活并连接时)为: Fcclk = MFosc 或 Fcclk = Fcco / (2P)CCO输出频率为: Fcco = Fcclk2P 或 Fcco = FoscM2P10. VPB分频 PPT83 (了解)(框图未画) VPB分频器主要有两个用途:1. 将处理器时钟(cclk)分频,以便外设在合适的速度下工作。2. 降低系统功耗。11. 两种节电模式:空闲模式和掉电模式节电模式处理器系统时钟外设空闲模式停止执行指令有效正常工作掉电模式停止执行指令无效无需时钟支持的外设能够正常工作12. 外部存储器控制器特性(可扩展4个Bank组,每组的寻址范围最大16MB,总线宽度可以为8、16、32位)13. 存储器组配置寄存器(WST1、RBLE和WST2)14. 16位总线宽度外接存储器的连接方式 PPT2628(注意引脚的名称,地址线的连接、片选信号)LPC2200与存储芯片MT45W4MW16 的连接示意图。MT45W4MW16是一款PSRAM芯片,16位总线宽度,容量8M字节 。MT45W4MW16部分引脚描述引脚描述A0A22地址线D0D15数据线CE片选线OE读使能线WE写使能线UB高字节使能线LB低字节使能线15. (大题)向量中断控制器:中断的优先级、(向量IRQ中断的硬件处理过程 PPT7173/P204)、(设计实例PPT74)、PPT76 向量IRQ

温馨提示

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

评论

0/150

提交评论