【嵌入式】嵌入式系统开发与应用第二版课后答案第二章(田泽)
复习用,自整理、%%犇orz——海底淤泥
1尝试比较CISC体系结构 和RISC体系结构的特点。ARM为何采用RISC体系结构?
CISC:增加指令集的复杂度,以芯片面积为代价
RISC:只执行最常用的指令,大部分复杂指令由简单指令合成
因为:
组织结构:
1RISC的硬连线的指令编码逻辑
2便于流水线执行
3大多数RISC指令为单周期执行
处理器:
1处理器管芯面积小
2开发时间缩短,开发成本减低
3容易实现高性能,低成本的处理器
2简述ARM体系结构的特点
1.Load/Store 体系结构
2.固定的32为指令
3.3地址指令格式
3什么是Thumb技术,其优点是什么?与ARM指令集相比,Thumb指令集有哪些局限?
Thumb是ARM体系结构的扩展
优点:提高了代码密度
局限:
1.完成相同操作时,Thumb需要更多的指令
2.Thumb指令集没有包含进行异常处理时需要的一些指令
4什么是Thumb-2内核技术?它有哪些特点?
Thumb-2内核技术是ARM体系的新指令集
特点:更高性能,更低功耗,更简短的代码长度
5目前ARM处理器核有哪几种?简述ARM7TDMI内核的重要特性
处理器内核:
ARM7TDMI
ARM9TDMI
ARM10TDMI
ARM11
SecurCore
Cortex
重要特性:
1.能实现ARM体系结构版本4T
2.支持Thumb指令集
3.32*8 DSP乘法器
4.32位寻址空间,4GB线性地址空间
5.包含ICE模块
6分别以ARM7TDMI和ARM9TDMI为例,介绍3级流水线和5级流水线的执行过程,并进行相应的比较
三级流水:取指--->译码--->执行
五级流水:取指--->译码--->执行--->缓冲/数据--->回写
比较:
1三级流水译码不包含reg读,五级流水译码包含reg读
2三级流水执行包含reg读,移位/ALU,reg写,五级流水执行只包含位移/ALU
3五级流水增加了存储器数据访问过程,并将reg写单独分离为一个过程
7ARM Cortex处理器包括哪几个系列?各有什么特点?
ARM Cortex-A系列:微处理器核,能运行通用操作系统
ARM Cortex-R系列:微处理器核,运行实时操作系统
ARM Cortex-M系列:微控制核,功耗低,性能高
8ARM微处理器支持哪几种工作模式?各个工作模式有什么特点?
7种: 特点:
1.用户 程序正常执行
2.FIQ 快速中断模式,处理快速中断
3.IRQ 外部中断模式,处理普通中断
4.SVC 特权模式,处理软中断
5.ABT 中止模式,处理存储器故障
6.UNQ 未定义模式 ,处理未定义指令陷阱
7.系统 运行特权操作系统任务
9ARM处理器共有多少个寄存器?这些寄存器在用户编程的功能中是如何划分的?ARM状态下的通用寄存器可分为哪几类?
31个通用寄存器,6个状态寄存器
用户编程:
R0~R14,R15(PC),CPSR
ARM状态:
1.未分组寄存器R0~R7
2.分组寄存器R8~R14
3.程序计数器R15
10简述ARM状态下分组寄存器R13 R14 R15 的功能以及R15使用的注意事项
R13 用作堆栈指针SP
R14 子程序连接寄存器LR
R15 程序计数器PC
R15注意事项:由于ARM多级流水技术,R15的程序地址并不是当前指令的地址,指令“BX Rm”利用Rm的bit[0]来判断跳转到ARM还是thumb状态
11简述ARM程序状态寄存器各位的功能
1条件码标志位
最高4位——N,Z,C,V
N:补码状态下,N=0是非负数,N=1是负数
Z:Z=1表示结果为0,Z=0表示结果为非0
C:1.加法,c=1有进位 2.减法,c=0有借位 3.位移,c存储最后被移出的值
V:运算溢出V=1否则V=0
2.控制位
最低8位——I,F,T,M[4:0]
I:I=1,禁止IRQ中断
F:F=1,禁止FRQ中断
T:T=0,ARM执行,T=1,Thumb执行
M[4:0]:记录当前模式
3.保留位
其他位保留作以后的扩展
12试分析Thumb状态与ARM寄存器的关系
Thumb状态的R0~R7与ARM状态的R0~R7是一致的
Thumb状态的CPSR和SPSR与ARM状态的CPSR和SPSR是一致的
Thumb状态的SP映射到ARM状态的R13
Thumb状态的LR映射到ARM状态的R14
Thumb状态的PC映射到ARM状态的R15
13ARM体系结构支持哪几种类型的异常?他们之间的优先级关系如何?各种异常与处理模式有何关系?
7种类型: 优先级: 处理模式:
复位 1 SVC
未定义的指令 6 UNQ
软件中断 6 SVC
指令预取中止 5 ABT
数据访问中止 2 ABT
外部中断请求 4 IRQ
快速中断请求 3 FIQ
14简述ARM处理对异常中断响应过程
1.将CPSR的内容保存到要执行的异常中断SPSR中,以实现对处理器当前状态中断屏蔽位以及各个标志位的保存
2.设置当前状态寄存器的CPSR的相应位
3.将寄存器LR_<mode>设置为异常返回的地址,使异常处理程序执行完后能正确返回原程序
4给程序计数器PC强制赋值,使程序从相应的向量地址开始执行中断程序
15ARM如何从异常中断处理程序返回?需要注意哪些问题
1.所有修改过的用户寄存器必须从处理程序的保护堆栈中恢复
2.将SPSR_<mode>寄存器内容复制到CPSR中,使得CPSR从相应的SPSR中恢复,即恢复被中断程序的处理器工作状态
3.根据异常类型将PC变回到用户指令流中的相应指令处
4.最后清除CPSR中的中断禁止标志位I/F
16什么是ARM异常中断向量表?它有何作用?存储在什么地方?
异常中断向量表中指定了各异常中断与处理程序的对应关系
作用:每个异常中断对应异常中断向量表中4个字节,存放一个跳转指令或者一个向PC寄存器中赋值的数据访问指令LDR。通过指令,程序将跳转到相应的异常中断处理程序处执行
通常以存储器低端的0x0为起始位置的32字节空间中
17如果FIQ、IRQ和第三个异常(不是复位)同时发生,ARM应该如何处理?
由于FIQ比IRQ优先级高,会将IRQ屏蔽,直到FIQ明确将IRQ使能或返回用户代码为止
若第三个异常是数据中止异常,则进入数据中止异常程序后立刻进入FIQ处理程序,当FIQ返回时再处理数据中止异常程序
若第三个异常不是数据中止异常,则会立即进入FIQ,直到FIQ、IRQ返回时才返回到产生第三个异常的指令处进行处理
18ARM支持中断嵌套吗?如何实现ARM处理器的中断嵌套?
支持,利用中断控制器来实现
19ARM处理器支持哪些数据类型
6种:
8位有符号/无符号字节
16位有符号/无符号半字
32位有符号/无符号字
20大端存储与小端存储有何不同?他们对存储数据有什么要求和影响?
小端储存:较高有效字节放在较高的存储器地址,较低有效字节放在较低的存储器地址,
大端储存:较高有效字节放在较低的存储器地址,较低有效字节放在较高的存储器地址,
串行通信上采用大端排序性能较好
本地主机上采用小端排序性能较好
21简述ARM的存储层次
1寄存器组
2片上RAM
3片上Cache
4主存储器
5硬盘
22简述存储器管理单元MMU的作用。MMU和MPU有什么不同?
作用:
1虚拟存储空间到物理存储空间的映射
2存储器访问权限的控制
3设置虚拟存储空间的缓冲特性
不同:
MMU比MPU更先进
MMU能覆盖MPU的所有功能
MMU能实现缓存控制,总线仲裁,Bank切换,而MPU不能
MPU比MMU更简单,使用开销也更少
23统一的Cache与分开的Cache有什么区别?他们各自的优点是什么?
统一的Cache指令预存和数据存取时使用的Cache是同一个Cache,优点:能够自动调整指令在Cache存储器的比例,比固定划分有更好的性能
分开的Cache指令预存和数据存取时使用的Cache是相互独立的Cache,优点:使Load/Stroe指令能够单周期执行
24简述ARM协处理器的作用
ARM通过增加硬件协处理器来支持对其指令集的通用扩展。
25AMBA规范定义了几种总线?各自有什么特点?
3种:
1.AHB:用于连接高性能模块
2.ASB:用于连接系统模块
3.APB:是一个简单接口支持低性能的外围接口
26简述基于JTAG仿真器的ARM系统调试结构
1.嵌入式调试
2.调试处理器核
3.ARM调试硬件
4.EmbeddedICE
27简述基于EmbeddedICE的ARM调试结构
1.是基于JTAG测试端口的扩展,引入了附加的断点和观测点寄存器
2.EmbeddedICE模块包括两个观察点寄存器以及控制存储器和状态寄存器
3.基于ARM的包括EmbeddedICE模块的系统性片通过JTAG端口和协议转换器与主机连接
28试分析ARM实时调试的完整解决方案
EmbeddedICE单元支持断点和观察点的功能并提供主机和目标软件的通信通道
ETM单元压缩处理器接口信息并通过跟踪端口送到片外
用户可控制断点的和观察点的设置,并可以配置各种各种跟踪功能。
29从应用的角度分析,ARM芯片选择的原则是什么?
1.MMU:如果希望使用WindowsCE或Linux,需要选择带有MMU的芯片
2.处理器速度:如果系统需要进行图像处理这种对速度要求较高的应用,则需要选择高版本ARM内核芯片
3.内置存储器容量:如果系统不需要大量容量的存储器,可以考虑带有内置存储器的芯片
4.USB接口:根据产品具体应用来选择
5.GPIO数量:在说明书中往往声明最大可能的GPIO数量,但有许多引脚是复用的,需要自己计算实际可用GPIO数量
...