首页 > 技术文章 > 【嵌入式】嵌入式系统开发与应用第二版课后答案第二章(田泽)

LPworld 2020-06-25 11:28 原文

复习用,自整理、%%犇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数量

  ...

推荐阅读