
嵌入式答案.docx
4页第一章知识点:考:嵌入式系统的组成: :通常由嵌入式处理器、外围设备、嵌入式操作系统和应用软件等几大部分组成交叉开发环境:是指实现编译、链接和调试应用程序代码的环境与运行应用程序的环 境不同,它分散在有通信连接的宿主机与目标机环境之中宿主机(Host):是一台通用计算机,一般是PC 机它通过串口或网络连接与目标机通信目标机(Target) :可以是嵌入式应用软件的实际运行环境,也可以是能替代实际环境的仿真系统考:BSP(板级支持包):由于嵌入式系统中采用微处理器的多样性,嵌入式操作系统的可移植性显得更加重要所以有些嵌入式操作系统的内核明确分成两层,上层一般称为 “内核”,而低层则称为 “硬件抽象层”,即BSP(Board Support Package)板级支持包是操作系统与目标应用硬件环境的中间接口, 它是软件包中具有平台依赖性的那一部分1.(C)不是常规意义上的嵌入式系统A. B.MP3 C.PC 机 D.数码相机2.下面哪个系统不属于嵌入式系统(D) A、MP3 播放器 B、GPS 接收机C、“银河玉衡”核心路由器 D、“天河一号” 计算机系统 3.(A)完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。
A. 硬件抽象层 B. 驱动映射层 C.硬件交互层 D. 中间层1. 交叉开发环境:是指实现编译、链接和调试应用程序代码的环境与运行应用程序的环 境不同,它分散在有通信连接的宿主机与目标机环境之中2. 宿主机:是一台通用计算机,一般是PC 机它通过串口或网络连接与目标机通信3. 目标机:可以是嵌入式应用软件的实际运行环境,也可以是能替代实际环境的仿真系统第二章 ARM 处理器ARM 处理器的工作状态:ARM 状态,此时处理器执行 32 位的字对齐的 ARM 指令;(被 4 整除)Thumb 状态,此时处理器执行 16 位,半字对齐的 Thumb 指令 (被 2 整除)ARM 微处理器的七种运行模式:用户模式、快速中断模式、外部中断模式、管理模式、数据访问终止模式、系统模式、未定义指令中止模式特权模式:除用户模式外,其它模式均为特权模式异常模式:除用户模式和系统模式,其他5 种模式外当特定的异常出现时,处理器进入相应的模式CPSR 寄存器中哪些位用来定义处理器状态:P34M[4:0](bit[4:0])P33 ARM 的寄存器组织:内含 37 个寄存器, 31 个通用寄存器,6 个状态寄存器ARM 寄存器组织的特点:1) 、未分组寄存器 R0-R7:都指向同 一个物理寄存器,未被系统用作特殊的用途。
在中断或异常处理进行运行模式转换时应注意2) 、分组寄存器 R8-R14:每一次访问的物理寄存器与处理器当前的运行模式 有关对R8-R12 来说,每个寄存器对应两个不同的物理寄存器;对R13、R14 来说, 每个寄存器对于 6 个不同的物理寄存器3) 、程序计数器 PC(R15):寄存器R15用作程序计数器,虽然可以用作通用寄存器,但是有一些指令在使用 R15 是有一些特殊限制,如不注意,执行的结果哦将是不可预料的4) 、寄存器 R16:用作 CPSR(当前程 序状态寄存器),它在任何运行模式下被访问每一种运行模式下又有一个专业的物理状态寄存器( SPSR),当发生异常时, SPSR 用于保存 CPSR 的当前值,从异常退出时则可由 SPSR 来恢复 CPSR.大(小)端地址模式:占多字节的数据在存储时,如果高位字节存在低地址(首地址),称大端地址模式;如果低位字节存在低地址(首地址),称小端地址模式判断题:1. 嵌入式系统是看不见的计算机系统,其开发环境和运行环境一致 错 )2. ARM 处理器是典型的 CISC 体系 错 )1. 一般而言,嵌入式系统的构架可以分为 4 个部分:处理器、(存储系统)、输入/输出和软件,一般软件亦分为(操作系统)和应用软件两个主要部分。
2. (处理器)是嵌入式系统的核心部件, 是控制、辅助系统运行的硬件单元 3.ARM 处理器共有 37 个寄存器,其中包括(31)个通用寄存器和(6)个状态寄存器4.ARM 处理其每种模式下都有一组寄存器可用,其中(用户)模式和(系统)模式具有完全一样的寄存器组5. 寄存器(R13)在 ARM 指令中常用作堆栈指针R14)也称作子程序连接寄存器或连接寄存器 LR,当发生中断或异常时,对应的分组寄存器用来保存 R15 的返回值6.ARM 微处理器的在较新的体系结构中支持两种指令集:(ARM)指令集(指令长度为32 位)和(THUMB)指令集(指令长度为16 位)7. 寄存器 R15 用作程序计数器(PC)该寄存器在ARM 状态下,位{[1:0]}为0,位[31:2]用于保存 PC;在 Thumb 状态下,位{[0]} 为 0,位[31:1]用于保存 PC8. CPSR 可在(所有)运行模式下被访问每一种运行模式下又都有一个专用的物理 状态寄存器,称为(SPSR)1.下面哪一种工作模式不属于 ARM 特权模式(A )A、用户模式 B、管理模式 C、软中断模式D、FIQ 模式2. 存 储 一 个 32 位 数 0x2168465 到2000H-2003H 四个字节单元中,若以大端模式存储,则 2000H 存储单元内容为(D) A、 0x21 B、 0x68 C、0x65 D、0x023. 寄存器 R13 除了可以做通用寄存器外,还可以做(C)A、程序计数器 B、 链接寄存器C、栈指针寄存器 D、基址寄存器4. 寄存器 R15 除可做通用寄存器外,还可以做(A)A、程序计数器 B、链接寄存器C、栈指针寄存器 D、基址寄存器5. 下列CPSR 寄存器标志位的作用说法错误的是(D)A、N:负数 B、Z:零C、C:进位 D、V:借位(溢出) 6.关于 ARM 处理器的异常的描述不正确的是( C )。
P38A、复位属于异常 B、除数为零会引起异常C、所有异常都要返回 D、外部中断会引起异常7.以下哪个不是 RISC 架构的 ARM 微处理器的一般特点:( C)A 体积小、低功耗 B、大量使用寄存器C、采用可变长度的指令格式,灵活高效 D、寻址方式灵活简简述题: (可能选择题)简述 ARM9 处理器的内部寄存器结构,并分别说明 R13、R14、R15 寄存器的作用第三章 ARM 指令 ARM 指令集和 Thumb 指令集分别是(D)位的A、8 位,16 位 B、16 位,32 位 C、16 位,16 位 D、32 位,16 位指令“LDMIA R0!, {R1, R2, R3, R4的}”寻址方式为( C )A、立即寻址 B、寄存器间接寻址 C、多寄存器寻址 D、堆栈寻址对寄存器 R1 的内容乘以 4 的正确指令是( C )A、LSR R1,#2 B、LSL R1,#2 C,MOV R1,R1, LSL #2 D MOV R1,R1, LSR #2下面指令执行后,改变R1 寄存器内容的指令是( D )A TST R1 ,#2 比 较 指 令B、ORR R1,R1,R1 或C 、 CMP R1 , #2 测 试 指 令D、EOR R1,R1,R1 异或ADD R0,R0,#1 属于(A)A、立即寻址 B、寄存器间接寻址 C、寄存器寻址 D、基址变址寻址处理器从存储器读数据的指令(加载指令) 的助记符是(A)A、LDR B、STR C、SWP D、SWPB处理器往存储器写数据的指令(存储指令) 的助记符是(B)A、LDR B、STR C、SWP D、SWPB数据传送指令的助记符是(A)。
A、MOV B、SBC C、ADD D、SUB带进位加法指令的助记符是(A)A、ADC B、SBC C、ADD D、SUB代借位减法指令的助记符是( B)A、ADC B、SUBC C、ADD D、SUB若前次运算结果为零,则 CPSR 的(B ) 为 1A、N B、Z C、C D、V若前次运算产生了进位/借位,则 CPSR 的( C)为 1A、N B、Z C、C D、V若前次运算溢出,则 CPSR 的(D )为 1 A、N B、Z C、C D、V欲使处理器禁止快中断,则应该使( A) A、CPSR 的 F 位为 1 B、CPSR的 F 位为 0C、CPSR 的 I 位为 1 D、CPSR的 I 位为 0欲使处理器禁止中断,则应该使(C )A、CPSR 的 F 位为 1 B、CPSR的 F 位为 0C、CPSR 的 I 位为 1 D、CPSR的 I 位为 0汇编程序中子程序的最后一条指令必须是(A )A、MOV PC,R14 B、MOVPC,R14_und 异常C、SUBS PC,R14_fig,#4 D 、SUBSPC,R14_irg,#4 寻址方式 是根据指令中的信息来寻找真实操作数地址的方式。
实现程序跳转的指令有_直接修改 和 跳转 两种方法C 语言调用汇编程序,一般使用 指令是则将 R1 减去 0x30CMP 指令将寄存器 Rn 的值减去 operand2 的值,根据操作的结果更新 CPSR 中的相应条 件标志位,以便后面的指令根据相应的条件标志来判断是否执行CMP R1,0x30SUBHI R1,R1,0x30调用子程序是用 B 什么指令?请写出返回子程序的指令?BL 指令用于子程序调用MOV PC, R14给下列指令配注解LDR Rd,<地址> ;将指定地址上的字数据读入 RdSTR Rd,<地址> ;将 Rd 中的字数据存入指定地址MOVS R3,R1,LSL #2 ;R3=R1<<2,并影响标志位ADDS R1,R1,#1 ;R1=R1+1 , 并影响标志位BIC R1,R1,#0x0F ;将R1 的低 4 位清零,其它位不变 BL DELAY; 调用子程序 DELAY用 ARM 指令完成下面的操作:将 R0+0x12 地址处的数据读出,保存到R1中LDR R1,[R0,#0x12]将 R1 中数据保存到 R0+0x12 地址处STR R1,[R0,#0x12]将 R0-0x12 地址处的数据读出,保存到 R1中LDR R1,[R0,#-0x12]将 R1 中的数据保存到 R0-0x12 地址处STR R1,[R0,-#0x12]将 R0+R2 地址处的数据读出,保存到 R1中LDR R1,[R1,R2]将 R1 中数据保存到 R0+R2 地址处STR R1,[R1,R2]将 R0-R2 地址处的数据读出,保存到 R1中LDR R1,[R0,-R2]声明外部函数,即可调用汇编子程序。
在汇编程序中用_伪指令 申明本子程序,以使其他程序可以调用此子程序汇编程序调用 C 程序,在汇编中用 声明将要调用的 C 程序函数,即可在汇编程序中调用 C 程序写一个程序,判断 R1 的值是否大于 0x30,将 R1 中的数据保存到 R0-R2 地址处STR R1,[R0,-R2]求 R1+R2,和放在 R1 中ADD R1,R1,R2求 R1-R2,差放在 R1 中SUB R1,R1,R2将 R0 最第 4 位数据保留,并影响标志位ANDS R0,R0,#。












