《ARM嵌入式系统结构与编程》第二章课后答案

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第2章ARM技术与ARM体系结构

1.简述ARM处理器内核调试结构原理

答:ARM处理器一般都带有嵌入式追踪宏单元ETM(Embedded Trace Macro),它是ARM 公司自己推出的调试工具。ARM处理器都支持基于JTAG(Joint Test Action Group 联合测试行动小组)的调试方法。它利用芯片内部的Embedded ICE来控制ARM内核操作,可完成单步调试和断点调试等操作。当CPU处理单步执行完毕或到达断点处时,就可以在宿主机端查看处理器现场数据,但是它不能在CPU运行过程中对实时数据进行仿真。

ETM解决了上述问题,能够在CPU运行过程中实时扫描处理器的现场信息,并数据送往TAP(Test Access Port)控制器。上图中分为三条扫描链(图中的粗实线),分别用来监视ARM 核,ETM,嵌入式ICE的状态。

1.分析ARM7TDMI-S各字母所代表的含义。

答:ARM7 T D M I – S 中

ARM是Advanced RISC Machines的缩写

7是系列号;

T:支持高密度16位的Thumb指令集;

D:支持JTAG片上调试;

M:支持用于长乘法操作(64位结果)ARM指令,包含快速乘法器;;

I:带有嵌入式追踪宏单元ETM,用来设置断点和观察点的调试硬件;

S:可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以编译成一种易于EDA工具使用的形式。

2.ARM处理器的工作模式有哪几种,其中哪些为特权模式,哪些为异常模式,并指出处

理器在什么情况下进入相应的模式。

答:ARM技术的设计者将ARM处理器在应用中可能产生的状态进行了分类,并针对同一类型的异常状态设定了一个固定的入口点,当异常产生时,程序会自动跳转到对应异常入口处进行异常服务。

⏹1.用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下

执行。在用户模式下,如果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器不会自动切换工作模式

⏹2.FIQ模式:也称为快速中断模式,支持高速数据传输和通道处理,当一个高优先

级(fast)中断产生时将会进入这种模式。

⏹3.IRQ模式:也称为普通中断模式,:当一个低优先级(normal)中断产生时将会进入

这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ模式下进行。

⏹4.SVC模式:称之为管理模式,它是一种操作系统保护模式。当复位或软中断指令

执行时处理器将进入这种模式。

⏹5.中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存

储或存储保护。

⏹6.未定义指令异常模式:当执行未定义指令时会进入这种模式,主要是用来处理未

定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。

⏹7.系统模式:使用和User模式相同寄存器组的特权模式,用来运行特权级的操作

系统任务。

⏹在这7种工作模式中,除了用户模式以外,其他6种处理器模式可以称为特权模式,

在这些模式下,程序可以访问所有的系统资源,也可以任意地进行处理器模式的切换。

⏹在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式,每种

异常都对应有自己的异常处理入口点。

3.分析程序状态寄存器(PSR)各位的功能描述,并说明C,Z,N,V在什么情况下进行置位

和清零。

答:

⏹条件位:

⏹N = 1-结果为负, 0-结果为正或0

⏹Z = 1-结果为0, 0-结果不为0

⏹ C =1-进位,0-借位

⏹V =1-结果溢出,0结果没溢出

⏹Q 位:

⏹仅ARM 5TE/J架构支持

⏹指示增强型DSP指令是否溢出

⏹中断禁止位:

⏹I = 1: 禁止IRQ.

⏹ F = 1: 禁止FIQ.

⏹T Bit

⏹仅ARM xT架构支持

⏹T = 0: 处理器处于ARM 状态

⏹T = 1: 处理器处于Thumb 状态

⏹Mode位(处理器模式位):

⏹0b10000User

⏹0b10001FIQ

⏹0b10010IRQ

⏹0b10011Supervisor

⏹0b10111Abort

⏹0b11011Undefined

⏹0b11111System

4.简述ARM处理器异常处理和程序返回的过程。

答:只要正常的程序流被暂时中止,处理器就进入异常模式。例如响应一个来自外设的中断。在处理异常之前,ARM7TDMI内核保存当前的处理器状态,这样当处理程序结束时可以恢复执行原来的程序。如果同时发生两个或更多异常,那么将按照固定的顺序来处理异常。

在异常发生后,ARM7TDMI内核会作以下工作:

1.在适当的LR中保存下一条指令的地址

2.将CPSR复制到适当的SPSR中;

3. 将CPSR模式位强制设置为与异常类型相对应的值;

4.强制PC从相关的异常向量处取指。

ARM7TDMI内核在中断异常时置位中断禁止标志,这样可以防止不受控制的异常嵌套。注:异常总是在ARM状态中进行处理。当处理器处于Thumb状态时发生了异常,在异常向量地址装入PC时,会自动切换到ARM状态。

当异常结束时,异常处理程序必须:

1.将LR中的值减去偏移量后存入PC,偏移量根据异常的类型而有所不同;

2.将SPSR的值复制回CPSR;

相关文档
最新文档