《2022年最新ARM嵌入式系统试题及答案解析.pdf》由会员分享,可在线阅读,更多相关《2022年最新ARM嵌入式系统试题及答案解析.pdf(15页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精品文档精品文档ARM嵌入式系统基础教程- 期中开卷专业:软件1002班姓名:王世伟学号: 04103060 (24)一、嵌入式系统基本概念1、什么是嵌入式系统?有何特点?答:所谓嵌入式 ,实际上是 “嵌入式计算机系统” ,的简称, 它是相对于通用计算机系统而言,注重于发展独立的单芯片技术。嵌入式系统是“ 控制、监视或者辅助装置、机器和设备运行的装置” 。特点 :(1)嵌入式系统是将先进的计算机技术,半导体技术以及电子技术与各行业的具体应用相结合的产物,这一点就决定了他必然是一个技术密集,资金密集,高度分散,不断创新的知识集成系统。(2)系统内核小(3)专用性强( 4)系统精简 (5)系统软件
2、要求(6)嵌入式软件开发要走向标准化,需要使用多任务的操作系统。(7)嵌入式系统本身并不具备在其上进行进一步开发的能力。2、举例在你的身边常见到的嵌入式系统产品,谈一谈你对“ 嵌入式系统 ” 的初步理解。答:产品有:洗衣机,空调,手机。嵌入式系统就是内置小计算机系,可以对机器进行智能控制的系统。3、嵌入式系统的3 个基本特点?答: (1)专用性(2)嵌入型(3)计算机系统4、什么是嵌入式处理器,嵌入式处理器可以分为几大类?答:嵌入式处理机是嵌入式的核心,是控制,辅助系统运行的硬件单元。分类:四大类(1)嵌入式微处理器(2)嵌入式微控制器(3)嵌入式DSP 处理器( 4)SoC片上系统5、广泛使
3、用的三种类型的操作系统?答:多道批处理操作系统、分时操作系统以及实时操作系统。6、列举常见的4 种嵌入式操作系统?说明你对嵌入式操作系统的基本认识,嵌入式操作系统在嵌入式系统开发中的必要性。答:嵌入式Linux 、Win CE、VxWorks 、C/OS -II 没有操作系统的计算机效率十分底下,把操作系统嵌入到计算机中,可以提高系统的可靠性,开发效率,缩短了开发周期。二、 ARM7体系结构1、ARM是什么样的公司?精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 1 页,共 15 页 - - - - -
4、- - - - - 精品文档精品文档答: 它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC 处理器。特点是只设计芯片,而不生产。它将技术授权给世界上许多著名的半导体、软件和OEM 厂商,并提供服务。2、什么是 RISC?什么是CISC?答: RISC 是精简指令集计算机的缩写。CISC 是复杂指令集计算机的缩写。3、举出 2 个 ARM公司当前应用比较多的ARM处理器核?答: ARM7 系列、 ARM9 系列、 ARM10 系列、 ARM11 系列、 intel 的 Xscale 系列和MPCore 系列。4、ARM7TDMI中的 T、D、 S、I 分别表示什么含
5、义?答: T:支持高密度16 位的 Thumb 指令集D:支持片上调试S:ARM7TDMI 的可综合( synthesizable)版本(软核)I :支持 EmbededICE 观察硬件M :支持 64 位乘法5、ARM7TDMI处理器采用什么样的体系结构,其可寻址地址空间多大?答: ARM 处理器使用冯 .诺依曼结构使用单个平面的232个 8 位字节地址空间。地址空间可以看作是包含230个 32 位字,或 231个 16 位半字。6、ARM7TDMI处理器采用几级流水线处理,使用何种存储器编址方式?答: ARM7TDMI处理器采用三级流水线。ARM 处理器将存储器看做是一个从0 开始的线性递
6、增的字节集合。7、ARM处理器哪几种状态和模式?答:共 7 种。(1)用户模式(2)快速中断模式(3)外部中断模式(4)管理模式(5)数据访问中断模式(6)系统模式(7)未定义指令模式8、简述 ARM处理器两种状态的应用特点。答: ARM 状态:处理器执行32 位字对齐方式的ARM 指令,每条ARM 指令长度为 32位,指令的功能强大,处理器默认为此状态。Thumb 状态:处理机执行16 位半字对齐方式的Thumb 。每条Thumb 指令长度为 16位,是 ARM指令功能的子集。9、简述 ARM处理器 7 种模式的应用特点。答: (1)用户模式: ARM处理器正常的程序执行模式。精品资料 -
7、- - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 2 页,共 15 页 - - - - - - - - - - 精品文档精品文档(2)快速中断模式:用于高速数据传输或通道处理。(3)外部中断模式:用于通用的中断处理。(4)管理模式:操作系统使用的保护模式。(5)数据访问中断模式:当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。(6)系统模式:运行具有特权的操作系统任务。(7)未定义指令模式:当未定义的指令执行时进入该模式,可用于支持硬件处理器的软件仿真。10、结合 CPSR的结构,说明其中的M4:0的作用和T
8、 位的作用。答: M4:0 是模式控制位,这些位决定处理器的工作模式。T 位:T 位标志控制处理器按照ARM指令集运行,还是按照Thumb指令集运行。M1IM0TM4M3M2F8765432102829303127VCZN11、结合 CPSR的结构,说明其中的I 位和 F 位的作用。答: I位和 F位都是中断禁止标志位,用来时能或禁止ARM的两种外部中断。M1IM0TM4M3M2F8765432102829303127VCZN12、简述 ARM7TDMI内部有哪些寄存器及特点。答:分别为31 个通用 32 位寄存器和6 个状态寄存器。它们不能在同一使劲同时被访问,对其的访问取决于处理器状态和处
9、理器模式。13、结合下表简述FIQ模式下有哪几个私有寄存器,这些私有寄存器有何使用特点?寄存器通寄存器在汇寄存器R13_irqR13_irqR14_undR13_undR14_abtR13_abtR14_svcR13_scvSPSR_svcSPSR_abtSPSR_undSPSR_irqSPSR_fiqR14_fiqR13_fiqR12_fiqR11_fiqR10_fiqR9_fiqR8_fiq快中断中断未定义中止管理系统用户SPSRCPSRCPSR状态R15R15(PC)R14R14(LR)R13R13(SP)R12R12(IP)R11R11(FP,v8)R10R10(SL,v7)R9R9(
10、SB,v6)R8R8(v5)R7R7(v4)R6R6(v3)R5R5(v2)R4R4(v1)R3R3(a4)R2R2(a3)R1R1(a2)R0R0(a1)用寄存器和程序计数器各模式下实际访问的寄存器编中的名称类别答: FIQ模式下私有寄存器有R8-fiq ,R9-fiq,R10-fiq ,R11-fiq ,R12-fiq ,R13-fiq ,R14-fiq,和 SPSR-fiq 。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 3 页,共 15 页 - - - - - - - - - - 精品文档精品文
11、档这些寄存器使得在发生FIQ中断,处理器不必为保护寄存器而浪费时间,从而加速了 FIQ的处理速度。14、ARM7TDMI中的 PC 指向的是下一条将要执行的指令,这句话对吗?为什么?答:不对, PC 中的内容总是指向正在“取指”指令的地址。15、简述 ARM处理器的CPSR和 SPSR的功能、作用和工作方式。答: CPSR 是当前状态寄存器,他可以在任何运行模式下被访问,它包括条件标志位,中断标志位,当前处理器模式标志位,以及其他的一些相关的控制盒状态位。 ARM内核就是通过使用CPSR来监视和控制内部操作的。SPSR用于保存CPSR的当前值,从异常退出时则可由SPSR来恢复 CPSR 。16
12、、简述 ARM7的内部寄存器R13、R14、 R15的主要功能、作用和工作方式。答: R13 作为堆栈指针SP,用于指定堆栈操作出入口的地址。其他6 个 R13 寄存器为堆栈寄存器。为用户模式和系统模式共用一个。R14 可以用作通用寄存器,也可以用作链接寄存器。链接寄存器用于保存子程序地址或者返回地址。R15:程序寄存器,总是指向正在“ 取指 ” 的指令17、什么是计算机的寻址方式?ARM7TDMI有几种寻址方式?答:寄存器寻址、立即寻址、寄存器移位寻址、寄存器间接寻址、基址寻址、多寄存器寻址、堆栈寻址、相对寻址。18、什么是堆栈?ARM中的堆栈是如何定义和使用的?答:堆栈都是一种数据项按序排
13、列的数据结构,只能在一端 (称为栈顶 (top)对数据项进行插入和删除。ARM处理器将 RB 作为堆栈指针SP,用于保存堆栈的出入口处地址。19、何谓存储的 “ 大端模式 ” 、“ 小端模式 ” ?写出数据0 x12345678在 0 x20000000字单元中“ 小端模式 ”下的存储细节。答:大端模式:按照数据的低字节存放在高地址中的顺序进行存储。小端模式:按照数据的高字节存放在高地址中的顺序进行存储。0 x20000000存放 0 x78,0 x20000001存放 0 x56,0 x20000002存放 0 x34 0 x20000003存放 0 x12。20、什么是 “ 字对齐 ” 和
14、“ 半字对齐 ” ?ARM 指令必须字对齐存放,Thumb 指令必须半字对齐存放,这句话正确吗?答:如果一个字数据的访问存储地址A 能被 4 整除,即地址的低两位为零,则为字对齐的存储器访问。如果一个半数据的访问的存储地址A 能被 2整除,即地址的最低位为零,则为半字对齐的存储器访问,如果 Thumb状态下将一个非字对齐的地址写入PC,则数据在写入PC时第0 位被忽略,最终PC的 bit0为 0,将会产生不可预料的结果。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 4 页,共 15 页 - - - -
15、- - - - - - 精品文档精品文档21、ARM指令长度和Thumb指令长度固定位长吗?位长分别是多少?答:固定, ARM为一个字( 32bit), Thumb为一个半字( 16bit)22、ARM7TDMI中的中断分为那两类?在CPU级别如何分别屏蔽?答:分别为IRQ,FIQ ,在 cpu级别通过状态寄存器CPSR中的 I 和 F 位置位来屏蔽。23、什么是 ARM7TDMI中的异常?简述ARM7TDMI中的复位、 IRQ、FIQ和软中断等几种主要异常的控制原理。答:异常是指正常的程序被暂时中止的状态模式。复位异常时处理器进行管理模式执行相应操作,I 和 F 均为禁止;软中断异常也进入管
16、理模式,I 位禁止; IRQ异常时进入中断模式,I 位禁止; FIQ异常进入快速中断模式,I 和 F 位均为禁止,都是通过异常向量表。24、简述 ARM7TDMI中产生复位、IRQ、FIQ 和软中断等几种主要异常的条件,这几种异常会使ARM分别进入到哪种模式?ARM核响应异常的过程,以及这几种异常地返回指令是什么?答:复位异常: 当 nRESET信号被拉低时,ARM处理器放弃正在执行时的指令,等到 nRESET下信号再次变高时,ARM执行下列操作:(1)强制 M4:0复为 10011 ,进入管理模式;(2)将 CPSR中的 I 和 F 置位;( 3)将 CPSR中的 T 位清零( 4)强制 p
17、c从地址 0 x00 开始对下一条指令进行取值;(5)返回 ARM 状态并回复执行,无返回指令。IRQ:只有 CPSR中相应的I 位被清除时,才可能发生IRQ 异常,进入中断模式,内核自动作如下处理:(1)将异常处理的返回地址保存到R14-irq 中( 2)用户模式的CPSR被保存到SPSR-irq中;(3)修改 CPSR ,禁止新的IRQ中断产生, 进入 ARM状态,IRQ模式( 4)置 IRQ模式下的IRQ异常处理程序的中断入口地址向量。地址 0 x00000018 。返回指令: subspc , R14-irq , #4 FIQ:只有CPSR中的想用下位被清零时,才发生下IQ 异常进入F
18、IQ 模式, FIQ 中的 8个专用寄存器用来保护中断地址。其返回指令:subs pc,R14-fiq , #4 软中断 swi:用于进入“管理模式”,通常用于请求一个特定的管理函数。返回指令:movs pc,R14-svc 三、 ARM7TDMI指令系统1、ARM7TDMI支持哪几种指令集,各有什么特点?答:支持 ARM 指令集和Thumb 指令集两种。ARM 指令集:指令32 位,效率高,代码密度低,所有ARM 指令都是可以有条件执行的。Thumb 指令集:指令16 位,代码密度较高,Thumb 指令仅有一条指令具备条件执行功2、ARM汇编指令的基本格式?答:基本指令:在 ARM指令集中,
19、每条指令占有4 个字节,即指令长度为32位。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 5 页,共 15 页 - - - - - - - - - - 精品文档精品文档3、何谓 ARM指令的条件码?默认的条件码是什么?举例说明ARM指令的条件码对指令执行的影响。答:条件码是按照指定条件执行的操作条件:默认条件码是AL(无条件执行)例子:比较两值大小,并进行相应加1 处理:cmp R0 ,R1;ADDHI R0 ,R0,#1;ADDLS R1 ,R1,#1 4、解释何为 “ 满堆栈 ” 、“ 空堆栈 ”
20、、“ 递增堆栈 ” 和 “ 递减堆栈 ”? ARM指令系统中是如何支持的?答:满堆栈:堆栈指针指向最后压入栈的有效数据项。空堆栈:堆栈指针指向下一个待压入数据的空位置。递增堆栈:在向堆栈写入数据后,堆栈指针的值变大,即向高地址方向生长。递减堆栈:在想堆栈写入数据后,堆栈指针的值变小,即向低地址方向生长。ARM指令支持四种对战类型:满递增,空递增,满递减,空递减。5、请说明 MOV指令与 LDR加载指令的区别和用途。答: LDR 的操作数既可以来源于寄存器也可以来源于存储器,MOV 的操作数能来源于寄存器。LDR 指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、外围
21、部件的控制操作等;MOV 指令将 8 位立即数或寄存器传送到目标寄存器( Rd) ,可用于移位运算等操作。6、解释 B 指令、 BL 指令与 BX指令的功能差别?简述他们的应用场合。答: B指令:是分支指令,跳转到标号指定的地址程序。Bl 指令:带连接的分支指令,跳转到指定的地址程序,同时还将程序计数器PC的值保存到LR寄存器中。BX指令:带状态切换的分支指令,跳转到Rm指定的地址处执行程序,根据跳转地址的最低位来切换处理器状态。B/BL指令跳转范围限制在当前指令的+-32MB地址内。7、解释 SWI(软中断)指令的执行过程和典型应用。答: SWI 指令用于产生软中断,从而实现先从用户模式到管
22、理模式的变换。在切换时,CPSR寄存器内容将保存到管理模式的SPSR中,同时程序跳转到SWI异常向量入口处。SWI用于系统功能调用。8、ARM汇编指令条件码如下表,分析下两段程序片断的功能,写出其等价的类C 语言功能描述:条件助记符标志含义EQ Z=1 相等NE Z=0 不相等CS/HS C=1 无符号数大于或等于CC/LO C=0 无符号数小于MI N=1 负数精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 6 页,共 15 页 - - - - - - - - - - 精品文档精品文档PL N=0 正数
23、或零VS V=1 溢出VC V=0 没有溢出HI C=1,Z=0 无符号数大于LS C=0,Z=1 无符号数小于或等于GE N=V 有符号数大于或等于LT N!=V 有符号数小于GT Z=0,N=V 有符号数大于LE Z=1,N!=V 有符号数小于或等于AL 任何无条件执行(指令默认条件) NV 任何从不执行 (不要使用 ) 程序片断 1:CMP R0, R1 ADDHI R0 , R0 , #1 ADDLS R1 , R1 , #1 程序片断 2:CMP R0 , #10 CMPNE R1 , #20 ADDNE R0 , R0 , R1 答: if(R0R1 )if(R0!=10) R0+
24、; if(R1!=20) else R1+; R0+=R1; 9、结合 ARM7TDMI结构中的流水线结构,解释IRQ中断返回指令:SUBS PC , R14_irq , #4 的原理答: ARMTTDMI采用三级流水线结构,PC 指向正在取值的指令,产生IRQ 时,保存在 R14-IRQ中的是 PC的值,在返回时为保证正确性应返回到PC-4即中断前“正在译码”的指令地址。所以返回指令为:subs pc ,R14-irq ,#4;四、 LPC2000系列 ARM硬件资源原理与使用1、LPC2000系列器件有几种常见的封装形式和其封装特点?答:常见的封装有64 脚封装, 144 脚封装特点:功耗
25、低,有多个32 位定时器,多达9 个外部中断, 16K 字节静态RAM ,1/128/256k 字节片 Flash 存储器, 128 为宽度接口加速器,4 路 10 位 ADC 或 8 路 10位 ADC (64 脚和 144 脚封装), 46 或 76112 个 GPIO(64 脚和 144 脚封装)。2、简要说明一下LPC2000系列器件片内存储器的特点?精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 7 页,共 15 页 - - - - - - - - - - 精品文档精品文档答:片内存储器分为片内
26、Flash 和片内静态RAM 。片内 Flash 通过 128 位宽度的总线与 ARM 内核相连,具有很高的速度,特有的存储器加速功能,可以将程序直接放在 Flash 上运行。 SRAM 支持 8 位、 16 位和 32 位的读写访问。3、在 LPC2000系列 ARM芯片中,内Flash有哪几种写入方式?答: (1)使用 JTAG仿真 /调试器,通过芯片的JTAG借口下载程序。(2)使用在系统编程技术,通过UART0接口下载程序。(3)使用在应用编程技术,在用户程序运行时对Flash进行擦出和 /或编程操作,实现数据的存储和固件的现场升级。4、ARM寄存器 PC、CPSR 、 SPSR分别有
27、什么用?答: PC是 CUP中的程序计数器,内容总是指向正在“取指”指令的地址。CPSR是当前程序状态寄存器,用来监视和控制内部操作的。SPSR是物理状态寄存,用于保存CPSR的当前值,从异常退出时则由它来恢复CPSR。5、什么是 ARM处理器的异常?ARM处理器是如何处理异常的?答:异常:在执行正常程序过程中,当发生某种异常事件或某种外部请求时,处理器就暂停执行当前的程序,进入异常模式。如何处理异常:1) 保存执行状态:将CPSR 复制到发生的异常模式下的SPSR中。2) 模式切换:将CPSR 模式位强制设置为与异常类型相对应的值,同时处理器进入到 ARM 执行模式,禁止所有IRQ 中断,当
28、进入FIQ 快速中断模式时禁止FIQ 中断。3) 保存返回地址:将下一条指令的地址(被打断程序)保存在LR(异常模式下LR_excep)中。4) 跳入异常向量表:强制设置PC 的值为相应异常向量地址,跳转到异常处理程序中。6、什么是 ARM体系结构中的异常向量表?在应用中有何作用?答:处理器规定了异常处理程序入口的地址区间,并规定了地址的存放顺序,一般称为异常向量表。在异常处理过程中,可以加快异常服务的响应速度。7、在 ARM体系结构中,异常向量表中存放的是什么内容?答:异常处理程序的程序入口地址。8、在 ARM体系结构中,异常向量表中0 x0014 (保留字)单元存放的是什么内容?有何用途?
29、答:保留的异常入口,早期的ARM 结构中会被用到,而在ARM7 中是保留的,以确保软件能与不同的ARM 结构兼容。而在有些处理器芯片中,这4 个字节已经有了非常特殊的用特。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 8 页,共 15 页 - - - - - - - - - - 精品文档精品文档9、什么是 ISP技术? IAP技术?在实际应用中有何实际意义?答:ISP:在系统可编程指电路板上的空白器件可以编程写入最终用户代码而不需要从电路板上取下器件已经编程的器件也可以用ISP 方式擦除或再编程。IAP
30、:是指在应用编程,即在程序运行中编程,就是片子提供一系列的机制(硬件 /软件上的 )当片子在运行程序的时候可以提供一种改变flash 数据的方法。10、LPC2000 系列器件中,许多芯片的引脚具有多种功能,应用中如何使用其特定的功能?答:设置寄存器PINSEL0 、 PINSEL1 、PINSEL2为特定功能的值。11、简述 LPC2000系列芯片的引脚设置寄存器PINSEL0 、PINSEL1 、PINSEL2的具体功能?答: PINSEL0 控制引脚 P0.0P0.15 的连接状态,每两位控制一个引脚。PINSEL1 控制引脚 P0.16P0.31 的连接状态,每两位控制一个引脚。PIN
31、SEL2 控制 P1 端口和 P2 端口。12、简述 LPC2000系列芯片内部GPIO的功能特点?答: (1)可以独立控制每个GPIO 口的方向;(2)可以独立设置每个GPIO 的输出状态;(3)所有 GPIO 口在复位后默认位输入状态。13、结合 GPIO 结构原理图,简述GPIO的工作方式设置内容。PINSELxIOxDIRIOxCLRIOxPINIOxSETinout10答:芯片某个管脚首先经过unix 功能选择,对应PINSELx 寄存器选择其功能,如果选择 GPIO功能,在经过MUX2中 IOxDIR寄存器对应位选择,控制管脚输入输出方向, GPIO管脚输入时通过IOxPIN寄存器
32、读入,输出时通过IOxSET或 IOxCLR 寄 存 器控制输出实现对应GPIO管脚的控制。14、设计编程: LPC2131的 P0.7引脚连接了一个蜂鸣器,编程发出等周期的滴滴声。答:#define Void DelayNS (int m) int i;for(;m0;m-) for(i = 0;i50000;i+) main() 芯片引脚精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 9 页,共 15 页 - - - - - - - - - - 精品文档精品文档PINSEL0 = 0 x0000000
33、0; IO0DIR = 1 7; while (1) IO0SET = 1 7; DelayNS(50); IO0CLR = 1 7; DelayNS(50); 15、设计编程: LPC2131的 P01:0 两引脚分别连接了2 个按键 K1 和 K4;P07:6 两引脚分别连接了2 个指示灯LED1和 LED2;请编制驱动程序,使 Kx 按键时, LEDx 灯亮。答:#define k1 10 #define k2 11 #define LED1 17 #define LED2 18 main() PINSEL0=0 x00000000; IO0DIR=IO0DIR & (k1); IO0D
34、IR=IO0DIR & (k2); IO0DIR=IO0DIR|LED1; IO0DIR=IO0DIR|LED2; IO0CLR=IO0CLR|LED1|LED2; While(1) If(IO0PIN & k1)=0) IO0SET=LED1; else IO0SET=LED1; If(IO0PIN & k2)=0) IO0SET=LED2; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 10 页,共 15 页 - - - - - - - - - - 精品文档精品文档else IO0SET=LED2;
35、 16、名词解释:中断、中断源、中断优先级、中断屏蔽、中断向量、中断响应、中断控制。答:中断: CPU 在执行一个程序时,对系统发生的某个事件(程序自身或外界的原因)作出的一种反应:CPU 暂停正在执行的程序,保留现场后自动转去处理相应的事件,处理完该事件后,到适当的时候返回断点,继续完成被打断的程序。中断源:把引起中断的原因,或者能够发出中断请求信号的来源统称为中断源。中断优先级:为使系统能及时响应并处理发生的所有中断,系统根据引起中断事件的重要性和紧迫程度,硬件将中断源分为若干个级别,称作中断优先级。中断屏蔽:中断向量:中断服务程序的入口地址。中断响应:中断响应是当中央处理机发现已有中断请
36、求时,中止,保存现行程序执行,并自动引出中断处理程序的过程。中断控制: CPU 能否暂停正在执行的中断服务程序,而转去执行为另一个中断源而编写的中断服务程序,如果另一个中断源的优先级高,CPU 就暂停正在执行中断服务程序而转去执行为另一个中断源而编写的中断服务程序,否则,另一个中断源就不能打断正在执行的中断服务程序。17、结合 ARM VIC 结构原理图,简述ARM体系结构中的中断控制原理。1)向量中断控制器(VIC)的功能特点?2)中断信号的来源?中断信号的标示?3)中断信号如何屏蔽?如何清除?4)ARM核从何处获得中断向量?5)如何将中断源指派为IRQ、FIQ?6)向量 IRQ的设置方法?
37、答: (1)最多 32 个中断请求输入;16 个向量 IRQ 中断; 16 个优先级,可动态分配优先级;可产生软件中断;当I=1 时,禁止IRQ 中断,反之使能之;当F=1 时,禁止 FIQ 中断,反之使能之。(2)精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 11 页,共 15 页 - - - - - - - - - - 精品文档精品文档向量 IRQ0 使能中断源向量 IRQ0 控制寄存器VICVectCntl0 向量地址0寄存器VICVectAddr0 默认向量地址寄存器VICDefVectAddr
38、 向量 IRQ15 使能中断源向量 IRQ15 控制寄存器VICVectCntl15 向量地址 15寄存器VICVectAddr15 DefIRQ IRQ0 IRQ15 VectAddrVectAddr1DefVectAd硬件优先级选择向量地址寄存器VICVectAddr IRQ0 IRQ15 DefIRQ IRQ 中断信号向量 IRQ0 向量 IRQ15 非向量 IRQ 高低优先级IRQ 中断状态寄存器VICIRQStatus 中断选择寄存器VICIntSelect 中断使能寄存器VICIntEnable 中断使能清零寄存器VICIntEnClr 中断源31:0 软件中断使能寄存器VICSo
39、ftInt 软件中断清零寄存器VICSoftIntClear FIQ 中断状态寄存器VICFIQStatus 中断状态寄存器VICRawIntr IRQ FIQ 答:18、ARM 芯片中定时器结构原理如下图,试设计一个周期为2 秒的方波发生器。 (假设该系统的外围设备时钟频率Fpclk = 10MHz )答: int mian PINSEL0=PINSEL0 & (1(310) | (210); T0CTCR=0 x00; T0TC=0; T0PR=99; T0MCR=0 x023; T0MR1=Fpclk/100; T0EMR | =0 xc2; T0TCR=0 x01; While(1);
40、 19、使用学过的知识设计设计一个汽车用“ 车速表 ” ,写出你的设计方案并编程实现。提示:可用霍尔元件将车轮的转动转换为脉冲。车轮每转动一圈会产生一个方波脉冲。精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 12 页,共 15 页 - - - - - - - - - - 精品文档精品文档答:转动脉冲:void _irq IRQ_Timer0 (void) if (IO0SET & BEEP) = 0) IO0SET = BEEP; /* 关闭 BEEP */ else IO0CLR = BEEP; T0
41、IR = 0 x01; /* 清除中断标志 */ VICVectAddr = 0 x00; /* 通知 VIC 中断处理结束*/ int main (void) int spped=1; PINSEL1 = 0 x00000000; /* 设置管脚连接GPIO */ IO0DIR = BEEP; /* 设置 BEEP 控制口输出 */ IRQEnable(); /* IRQ中断使能 */ /* 定时器 0初始化*/ T0TC = 0; /* 定时器设置为 0*/ T0PR = 0; /* 时钟不分频 */ T0MCR = 0 x03; /* 设置 T0MR0 匹配后复位T0TC,并产生中断标志
42、*/ T0MR0 = Fpclk / spped; /* 0.5 秒钟定时 */ T0TCR = 0 x01; /* 启动定时器 */ /* 设置定时器 0中断 IRQ */ VICIntSelect = 0 x00; /* 所有中断通道设置为IRQ 中断 */ VICVectCntl0 = 0 x20 | 0 x04; /* 设置定时器 0中断通道分配最高优先级*/ 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 13 页,共 15 页 - - - - - - - - - - 精品文档精品文档VICVe
43、ctAddr0 = (uint32)IRQ_Timer0; /* 设置中断服务程序地址*/ VICIntEnable = 1 0 x04; /* 使能定时器 0中断 */ while (1) if (IO0PIN & KEY1) = 0) spped=10; T0MR0 = Fpclk / spped; /* 0.5 秒钟定时 */ T0TC = 0; /* 定时器设置为0*/ else if (IO0PIN & KEY2) = 0) spped=20; T0MR0 = Fpclk / spped; /* 0.5 秒钟定时 */ T0TC = 0; /* 定时器设置为0*/ else if (
44、IO0PIN & KEY3) = 0) spped=30; T0MR0 = Fpclk / spped; /* 0.5 秒钟定时 */ T0TC = 0; /* 定时器设置为0*/ else if (IO0PIN & KEY4) = 0) spped=40; T0MR0 = Fpclk / spped; /* 0.5 秒钟定时 */ T0TC = 0; /* 定时器设置为0*/ ; return 0; 汽车车速:int main (void) int Vx; PINSEL0 = (PINSEL0&(320)|(220); PINSEL0 = PINSEL0&(024); T0CTCR &= 0
45、 xf0; T0TC = 0; T0PR = 99; T0MCR = 0 x03; T0MR0 = Fpclk/300; T1CTCR = (T1CTCR&(0 x0f)|0 xf1); T1TC =0; T1MCR = 0 x00; T1CCR &= 0 x07 ;精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 14 页,共 15 页 - - - - - - - - - - 精品文档精品文档T0TCR = 0 x01; T1TCR = 0 x01; while (1) if (T0IR&0 x01) = 1) T0IR = 0 x01; Vx = T1TC; T1TC = 0; VtotalLen += Vx; VthisLen += Vx; Vspeed = (Vx*L*3.6)/HrN; if (IO0PIN & KClr) = 0) VthisLen = 0; return 0; 精品资料 - - - 欢迎下载 - - - - - - - - - - - 欢迎下载 名师归纳 - - - - - - - - - -第 15 页,共 15 页 - - - - - - - - - -