简答题
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5、当异常产生,处理器进入一个异常程序、退出异常 时需进行哪些操作?
答:进入异常 (1)把断点处的下一条指令的地址保存到相应的R14寄存 器中。 (2)把状态寄存器CPSR的值复制到相应的SPSR寄存器中,以保 存断点处的状态。 (3)根据异常模式,把CPSR寄存器的模式位M[4:0] 设置成对应的值。 (4)自动使PC指向相关的异常向量,从该向量地址 处取一条指令进行执行。 退出异常 (1)将保存在R14寄存器的值再回送到PC中。 (2)再将 SPSR寄存器的值送回到CPSR寄存器中。 (3)对中断禁止位标志进行清 除 补充Q3.5.1 请你说明系统从异常处理程序中返回需要执行哪些操作? P40 (1) 恢复原来被保护的用户寄存器 (2) 将SPSR_mode寄存器值复 制到CPSR中,使得CPSR从相应的SPSR中恢复,以恢复被中断的程序工作 状态。 (3) 根据异常类型将PC值恢复成断点地址,以执行用户原来运 行着的程序。 (4) 清除CPSR中的中断禁止标志I和F,开放外部中断和 快速中断。
2、简述ARM9体系中工作在ARM状态时的寄存器组织结 构。
参考答案: ARM9处理器内部共有37个32位寄存器,可分成通用寄存器和 状态寄存器两大类。根据处理器的工作状态及工作模式的不同而被 分成不同的组。R0~R15称为通用寄存器,其中,R0~R7是不分组的 寄存器,在所有的工作模式下,它们物理上是同一个寄存器; R8~R14是根据工作模式进行分组的寄存器,它们中的每一个寄存 器根据当前工作模式的不同,所访问的寄存器实际可能不是同一个 物理寄存器;R15是程序计数器,也是不分组的。R13寄存器的作 用通常是堆栈指针,又称为SP。R14寄存器可用作子程序链接寄存 器,又称为LR。 寄存器R14的两种特殊用途 存放当前子程序的返回地址;当发生异常中断的时候,该模式下 的特定物理R14被设置成该异常模式将要返回的地址。
3.4、简述ARM处理器对异常中断的响应过程(08级A)
参考答案: ARM处理器对异常中断的响应过程如下: (1)保存处理器当前状态、中断屏蔽位以及各条件标志位; (2)设置当前程序状态寄存器CPSR中的相应位; (3)将R13_mode/LR_mode寄存器设置成返回地址; (4)将程序计数器值PC设置成该异常中断的中断向量地址,跳转到 相应异常中断处执行。
7.3、简述Boot loader的作用
系统初始化、加载和运行内核程序 Boot Loader 就是在操作系统内 核运行之前运行的一段小程序。通过这段小程序,我们可以初始化 硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到 一个合适的状态,以便为最终调用操作系统内核准备好正确的环 境。 大多数 Boot Loader 都包含两种不同的操作模式:“启动加载” 模式和“下载”模式 : 启动加载(Boot loading)模式: Boot Loader 从目标机上的某个固态存储设备上将操作系统加载 到 RAM 中运行,整个过程并没有用户的介入。 下载(Downloading) 模式:Boot Loader 将通过串口连接或网络连接等通信手段从主机 (Host)下载文件,比如:下载内核映像和根文件系统映像等。 BOOT的一般步骤为: 设置中断向量表 初始化存储设备 初始化堆栈 初始化 用户执行环境 呼叫主应用程序
3.3、 ARM的异常有哪几种,各进入何种工作模式?他们 退出各采用什么指令
答:1)复位(Reset)异常(管理模式); 2)未定义指令(undefined instruction)异常(未定义模式); 3)软件中断(SWI)异常(管理模式); 4)指令预取中止(Prefech Abort)异常(中止模式); 5)数据访问中止(Data Abort)(中止模式); 6)快速中断请求(FIQ)(FIQ模式); 7)外部中断请求(IRQ)(IRQ模式)。 异常返回指令:1)SWI,未定义的返回:MOVS PC,R14;2)IRQ,FIQ,预 取中止的返回:SUBS PC,R14,#4;3)数据中止返回并重新存取:SUBS PC,R14,#8 异常中断的优先级:复位(最高优先级)--> 数据异常中止--->FIQ -> IRQ--->预取指异常中止--->SWI---->未定义指令(包括缺协处理器)。
3.1、中断(interrupt,如键盘中断)与异常 (exception,如除0异常)有什么区别?
答案:所谓的中断应该是指外部硬件产生的一个电信号,从cpu的 中断引脚进入,打断cpu当前的运行。 所谓异常,是指软件运行中发生了一些必须作出处理的事件,cpu 自动产生一个陷入来打断当前运行,转入异常处理流程。
7.1、ARM系统中Boot-loader的主要作用是什么?
Boot-loader的作用与PC 的BIOS 类似,通过Boot-loader可以完成对 ARM主要部件如CPU、SDRAM、Flash、串行口的初始化,同时下载 文件到硬件板,对Flash 进行擦除与编程。 .Boot-loader的stage1和stage2的作用分别是什么? stage1主要完成:硬件设备初始化;为stage2准备RAM空间;拷贝 stage2到RAM空间中;设置好堆栈;跳转到stage2的入口。 stage2主要完成:初始化硬件设备;检测系统内存映射;将kernel 映像和根文件系统映像从Flash上读到RAM;为内核设置启动参数; 调用内核。
3.当系统运行时,异常可能会随时发生。为保证在ARM处理器发 生异常时不至于处于未知状态,在应用程序的设计中,首先要进 行异常处理。请简述ARM9体系中处理异常的流程。
参考答案: (1)在异常向量表中的特定位置放置一条跳转指令以支持跳转到 异常处理程序; (2)发生异常时, LR寄存器保存相关指令地址,CPSR复制到相应 的SPSR中,CPSR模式位M[4:0]的值设置成对应的异常模式值,程 序计数器PC会被强制设置为对应的异常向量,从而跳转到异常处理 程序; (3)异常处理完成后,修正LR中的值回送给PC,SPSR复制回CPSR 中,清除中断禁止位标志,返回到主程序继续执行。
一、
1、
简答题
ARM7、ARM9、80C51的主要区别是什么?
参考答案:ARM (Advanced RISC Machines),既可以认为是一个公司的名 字,也可以认为是对一类微处理器的通称,还可以认为是一种技术的名字。 1991年ARM公司成立于英国剑桥,主要出售芯片设计技术的授权。目前, 采用ARM技术知识产权(IP)核的微处理器,即通常所说的ARM微处理器,已 广泛应用于工业控制、消费类电子产品、通信系统、网络系统、无线系统 等各个领域。 ARM7内核是三级流水线和冯· 诺伊曼结构; ARM9内核是5级流水线 和哈佛结构;80C51是8位的单片机,不能支持32位操作系统,但能支持 UCOS等8位兼容的操作系统。 (说明:简答题回答字数不要写得太多但也不能太少,建议字数在150字 ~300字为宜)
7.2、什么是初始化程序?bootloader的作用。
答:初始化程序是系统加电后运行的第一段软件代码。在嵌入式系 统中,通常整个系统的加载启动任务就完全由BootLoader来完成。 简单地说,BootLoader就是在操作系统内核运行之前运行的一段小 程序。通过这段小程序,可以初始化硬件设备、建立内存空间的映 射图,从而将系统的软、硬件环境带到一个合适的状态,以便为调 用应用程序或者操作系统内核准备好正确的环境。 或答: BootLoader是系统加电后、操作系统内核或用户应用程序运 行之前,首先必须运行的一段程序代码。通过这段程序,为最终调 用操作系统内核、运行用户应用程序准备好正确的环境。(对于嵌 入式系统来说,有的使用操作系统,也有的不使用操作系统,但在 系统启动时都必须运行BootLoader,为系统运行准备好软硬件环 境。)
3.2、当一个异常出现以后,ARM微处理器会执行哪几步 操作?
当一个异常出现以后,ARM微处理器会执行以下几步操作。 (1)将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异 常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,则 LR寄存器中保存的是下一条指令的地址(当前PC+4或PC+8,与异常的 类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC 的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。 例如:在软件中断异常SWI,指令 MOV PC,R14_svc总是返回到下一条 指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。 (2)将CPSR复制到相应的SPSR中。 (3)根据异常类型,强制设置CPSR的运行模式位。 (4)强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相 应的异常处理程序处。
6.什么是嵌入式处理器的最小系统?
最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式 处理器共同构成的系统。 最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系 统(可选)、调试测试系统(可选)。 基本电路包括:末级电源电路、前级电源电路、时钟电路、复位电 路、程序存储器(可选)、调试接口电路(可选)。
8、.简单描述ARM内核的四个功能模块,各自具备什么 功能特点?
ARM内核有四个功能模块T、D、M、I,可供生产厂商根据不同用 户的要求来配置生产ARM芯片。 其中T功能模块表示16位Thumb,可以在兼顾性能的同时减少代码 尺寸。M功能模块表示8位乘法器。D功能模块表示Debug,该内核 中放置了用于调试的结构,通常它为一个边界扫描链JTAG,可使 CPU进入调试模式,从而可方便地进行断点设置、单步调试。 I功 能模块表示EmbeddedICE Logic,用于实现断点观测及变量观测的逻 辑电路部分,其中的TAP控制器可接入到边界扫描链。
7、什么是引导程序?什么是启动程序?两者有什么区别?
引导程序是ARM微处理器在上电或复位后首先运行Boot Block中的 一段代码;启动程序是在运行引导程序后,正式运行用户main函数 之前,还需要运行一段代码 引导程序由芯片厂商固化在芯片中,功能包括:判断运行哪个存储 器上的程序、检查用户代码是否有效、判断芯片是否被加密、芯片 的在应用编程(IAP)以及在系统编程功能(ISP)。启动程序由用户添加, 功能包括:向量表定义、堆栈初始化、系统变量初始化、中断系统 初始化、I/O初始化、外围初始化,地址重映射等操作。
5.FIQ、IRQ有什么不同?向量IRQ和非向量IRQ有什么不 同?
FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式; IRQ是普通中断,优先级低于FIQ,中断处理转入IRQ模式。 向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断 源设置服务程序地址;非向量IRQ支持一个非向量IRQ中断,所有中 断都共用一个相同的服务程序入口地址。
4.请说明MOV指令与LDR加载指令的区别和用途? LDR的操作数既可以来源于寄存器也可以来源于存储器,MOBiblioteka Baidu的操 作数能来源于寄存器。。 LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的 访问、查表、程序的跳转、外围部件的控制操作等;MOV指令将8 位立即数或寄存器传送到目标寄存器(Rd),可用于移位运算等 操作。
2.2、 、简述ARM9处理器的内部寄存器结构,并分别说 明R13、R14、R15寄存器的作用
答:ARM9处理器的内部总共有37个32位的寄存器,其中31个用作 通用寄存器,6个用作状态寄存器,每个状态寄存器只使用了其中 的12位。这37个寄存器根据处理器的状态及其工作模式的不同而被 安排成不同的组。程序代码运行时涉及的工作寄存器组是由RAM9 微处理器的工作模式确定的。 R13寄存器的作用通常是栈指 针; R14用作子程序链接寄存器,用于保存子程序的返回地 址; R15的功能是程序计数器,从R15读取的值是处理器正要取指 的地址。