(2)试列举ARM处理器各寄存器功能,在不同的模式下可以访问哪些寄存器? 答:
1个寄存器用作PC(Program Counter),即程序寄存器,指向程序执行位置。 1个寄存器用作CPSR(Current Program Status Register),即当前状态寄存器,保存当前CPU状态。
5个寄存器用作SPSR(Saved Program Status Registers),备份不同模式下CPSR的值。 30个寄存器作为通用寄存器,存储数据使用。
(3)试说明CPSR寄存器各位功能。 答:
标志位 含 义
N N=1表示运算的结果为负数;N=0表示运算的结果为正数或零 Z Z=1 表示运算的结果为零;Z=0表示运算的结果为非零 C C=1表示有进位,C=0表示没有进位
V V=1表示符号位溢出,V=0表示结果没有溢出 Q 在ARM vTE/J架构支持,指示DSP指令是否溢出
J 仅ARM 5TE/J架构支持,J = 1表示处理器处于Jazelle状态 I I=1表示禁止IRQ F F=1表示禁止FIQ
T 仅ARM xT架构支持,T = 0表示处理器处于 ARM 状态,T=1表示处理器处于 Thumb 状态
(4)试列出ARM处理器常见中断方式,并说明ARM处理器在响应这些中断时要经历哪些主要步骤? 答:
异常类型 具体含义
FIQ 当处理器的快速中断请求引脚有效,且CPSR中的F位为0时,产生FIQ异常 IRQ 当处理器的外部中断请求引脚有效,且CPSR中的I位为0时,产生IRQ异常 异常中断 当外部的ABORT输入产生时,发生异常断
软件中断 该异常由执行SWI指令产生,可用于用户模式下的程序调用特权操作指令,可使用该异常机制实现系统功能调用
复位 当处理器的复位电平有效时,产生复位异常,程序跳转到复位异常处理程序处执行 未定义指令 当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。可使用该异常机制进行软件仿真
ARM处理异常时,将立即通过备份寄存器保存当前CPU的状态。PC和CPSR寄存器中的内容被分别拷贝到R14和SPSR中,PC 和CPSR中的模式位M[0:4]根据异常类型被强制改变。在异常中断处理中,如果要禁止其它难以管理异常的嵌套,可以置位中断标志位禁止再次中断请求。在需要重复进入中断处理程序的情况下,R14和SPSR应该在中断被使能之前保存到主存储的堆栈中;当传送SPSR寄存器到堆栈或者从堆栈传送时,需要注意的是必须传送整个字(32位)。当多个异常同时产生时,优先级决定异常响应的顺序。
异常处理完毕之后,ARM微处理器将连接寄存器LR的值减去相应的偏移量后送到PC中,同时将SPSR复制回CPSR中,若在进入异常处理时设置了中断禁止位,要在此清除。
(5)为什么说ARM处理器是32位处理器,主要体现在哪些方面,其汇编采用怎样的指令
编码格式?
答:数据线32位,寄存器32位,编码32位。
(6)试列出16类指令条件域所对应的CPSR寄存器相应位状态。 答:
条件码 助记符后缀 标 志 含 义 0000 EQ Z置位 相等 0001 NE Z清零 不相等
0010 CS C置位 无符号数大于或等于 0011 CC C清零 无符号数小于 0100 MI N置位 负数 0101 PL N清零 正数或零 0110 VS V置位 溢出 0111 VC V清零 未溢出
1000 HI C置位Z清零 无符号数大于
1001 LS C清零Z置位 无符号数小于或等于 1010 GE N等于V 带符号数大于或等于 1011 LT N不等于V 带符号数小于
1100 GT Z清零且(N等于V) 带符号数大于
1101 LE Z置位或(N不等于V) 带符号数小于或等于 1110 AL 忽略 无条件执行
(7)ARM处理器主要有哪些类型的寻址方式,各有什么特点? 答: 立即寻址 寄存器寻址 基地址变址寻址 寄存器偏移寻址 寄存器间接寻址 多寄存器寻址
(8)ARM指令和伪指令主要功能是什么?在ARM处理器中,有哪些类型的ARM指令,试举例说明相应指令编码格式,在ARM汇编程序设计时,有哪些主要类型的伪指令,试举例说明各类伪指令功能。 答:
ARM指令:指示处理器如何工作。 伪指令:协助编译器。 指令略。
(9)试用汇编程序实现求两个数中最大数。 答:
(10)试用汇编程序实现1~100的加法运算。 答:
(11)试用汇编程序实现10的阶乘运算。 答:
(12)完成本章中所有源代码编写及调试。 答:
第4章
(1)试列举在进行嵌入式软件开发时,ARM汇编语言多用来开发哪些类型的程序。 答:
Bootloader程序中多采用汇编程序和C语言汇合编程。操作系统中有少部分是汇编程序,绝大部分采用C语言编写,例如Linux内核。
(2)在使用ADS平台进行嵌入式应用程序开发时,armasm、armcc、armcpp、armlink主要功能是什么,如果要编译Thumb指令集程序,需要使用哪些命令。 答:
armasm:此命令用来编译汇编程序。 armcc:用来编译C程序。 armcpp:用来编译C++程序。
armlink:此命令用来链接目标文件。
(3)试编写一段汇编程序,实现64位加法运算,并使用(2)中所列工具进行编译链接,生成可执行二进制代码。 答:
(4)在ARM应用程序中,在存储时可执行文件主要分为哪几个部分,在运行时又分成哪几个主要部分,各部分主要存储形式和存储内容是什么? 答: ?
图4-3 存储态和运行态代码分布
(5)使用ADS1.2平台创建工程项目文件过程是什么,试安装ADS1.2平台创建一个工程项目,然后添加相应源代码,使用AXD调试,写出详细操作步骤。 答:
(6)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现输入的任意两个数的整数除法运算,在C文件中实现测试。 答:
(7)试编写一段C语言与汇编程序的混合程序,在此汇编程序中,实现两个64位数的乘
法运算,在C文件中调用该函数实现测试,要求明确函数参数传递及返回。 答:
(8)为什么要尽可能的遵循APCS标准,有什么好处,在APCS中,函数调用及返回遵循哪些规则。 答:
第5章
(1)从硬件和软件两个方面分析一个嵌入式系统主要具备哪些显著特点? 答:
(2)试列出一个嵌入式设备在硬件常见的外围接口及主要功能? 答:
(3)试列出一个嵌入式设备在所具备的层次结构以及各层主要功能? 答:
(4)试指出嵌入式软件开发和传统的X86平台软件开发的差异,常见的嵌入式开发工具和开发平台有哪些? 答:
(5)什么是嵌入式交叉编译环境,这种开发模式有哪些主要特点? 答:
第六章
(1)ARM处理器有哪几种主要的中断异常,如果进入这些中断异常,如何从这些中断异常服务程序中恢复。 答:
(2)为什么要设置中断优先级,其主要功能是什么? 答:
(3)什么是中断向量表地址值,主要在什么时候需要使用它们? 答:
(4)有哪几种加载中断服务子程序地址的方式?使用直接跳转方式有哪些限制? 答:
(5)使用C语言程序获得中断处理程序地址有哪两种方式,请写出步骤? 答:
(6)试分析SWI中断处理原理及过程。 答:
第七章
(1)试列举S3C2410处理器的常用外围接口及主要功能; 答:
(2)根据通信方向和时间可以将通信分为哪几类,各有什么特点? 答:
(3)试说出串行通信协议的基本原理及数据帧格式? 答:
(4)试列出RS232C串行接口标准的基本特点? 答:
(5)试分析S3C2410芯片的UART单元各部分主要功能以及主要寄存器功能? 答:
(6)在进行外围接口电路设计时,驱动芯片的主要功能是什么,为什么要设计驱动电路? 答:
(7)试分析说明ZLG7290芯片的工作原理? 答:
(8)试说明IIC通信协议的基本原理? 答:
(9)试说明触摸屏的工作原理以及ADS7843的驱动原理? 答:
(10)试说明SPI通信协议的基本原理? 答:
(11)试列出常见的AD转换器类型及工作原理? 答:
(12)试说明LCD的工作原理及常见类型? 答:
第8章
(1)试分析实时操作系统的基本特点? 答:
(2)试说明实时操作系统在嵌入式系统中的地位? 答:
(3)什么是程序、任务、进程、调度、调度算法、优先级,它们之间有什么区别和联系? 答: (4)μC/OS-II提供了哪些任务管理功能?各任务之间是通过什么调度算法来实现任务调度的,μC/OS-II是抢占式还是非抢占式操作系统? 答:
(5)μC/OS-II提供了哪几类任务间通信方式,各应用在哪些方面? 答:
(6)为什么说μC/OS-II具有很好的可移植性? 答:
(7)μC/OS-II有哪两种上下文切换方式的,各自切换过程是什么,有什么区别? 答:
(8)μC/OS-II在ARM处理器中是怎样实现FIQ和IRQ的,试分析处理过程? 答: