第一章 嵌入式系统概述
嵌入式系统简介
嵌入式系统定义
嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,可满足应用系统对功能、可靠性、成本、体积和功耗有严格要求的专用计算机系统。
嵌入式系统三要素
嵌入性、专用性、计算机系统
嵌入式系统的一般组成
嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用软件
嵌入式微处理器
嵌入式微处理器分类
嵌入式微处理器(EMPU)
嵌入式微控制器(MCU)
嵌入式数字信号处理器(DSP)
嵌入式片上系统(SoC)
嵌入式微处理器体系
ARM微处理器:
ARM:Advanced RISC Machines 的英文缩写,即高级精简指令系统计算机机器,一个公司的名称,
一类微处理器的统称,一种技术的名字。
MIPS系列嵌入式微处理器:
MIPS:Microprocessor without interlocked piped stages,无内部互锁流水级的微处理器。
嵌入式操作系统
嵌入式操作系统简介
嵌入式操作系统是一种支持嵌入式系统应用的操作系统软件,通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形用户界面以及标准化浏览器等。
###嵌入式操作系统的特点
系统实时高效性、硬件的相关依赖性、软件固化、以及应用的专用性等。
常见的嵌入式操作系统
Linux、Windows CE、μC/OS-II
课后习题(大题)
1.什么是嵌入式系统?由哪几部分组成?试列举一个你身边的嵌入式系统的例子。
答:嵌入式系统是以应用为中心,以计算机技术为基础,软、硬件可裁剪,可满足应用系统对功能、
可靠性、成本、体积和功耗有严格要求的专用计算机系统。(或者嵌入式系统是指嵌入各种设备及应用产
品内部的专用计算机系统,而非PC系统。)
嵌入式系统组成:嵌入式微处理器、外围硬件设备、嵌入式操作系统、用户应用软件。
2.ARM的英文原意是什么?ARM嵌入式微处理器有何特点?
答:Advanced RISC Machines的缩写,即高级精简指令系统计算机机器。
ARM嵌入式微处理器的特点:
(1)体积小,低功耗,低成本,高性能。
(2)支持Thumb/ARM双指令集,兼容8位/16位器件。
(3)使用单周期指令,指令简洁、规整。
(4)大量寄存器、指令的执行效率高。
(5)寻址方式简单灵活,执行效率高。
(6)固定长度的指令格式。
3.嵌入式微处理器通常分为哪几种类型?
答:从应用角度划分,可分为嵌入式微处理器、嵌入式微控制器、嵌入式数字信号处理器、嵌入式片
上系统。
5.什么是哈佛体系结构?什么是RISC?
答:哈佛体系结构的主要的特点是将程序和数据存储在不同的存储空间里,即程序存储器和数据存储
器是两个相互独立的存储器,每个存储器独立编址,独立访问。
RISC——精简指令集计算机,通过简化指令系统,使用2/8原则使计算机的结构更加简单合理,提
高运算效率。
选择题
1.下面哪个系统属于嵌入式系统()
A.“天河一号“计算机系统 B. Thinkpad T440超级木
C.苹果电脑 D. NOKIA Lumia 800手机
2.下面关于哈佛结构描述正确的是()
A程序存储空间与数据存储空间分离 B.存储空间与IO空间分离
C.程序存储空间与数据存储空间合并 D.存储空间与IO空间合并
3.以下描述中不属于RISC 体系结构特征的是()
A流水线每周期前进步
B.更多的通用寄存器
C. 指令长度不固定需要更多的执行周期
D.独立的Load和Store指令完成数据在寄存器和存储器之间传输
4.下列哪个不是嵌入式系统独具的特点()
A系统内核小 B.专用性强
C.可执行多任务 D.系统精简
5.ARM芯片采用什么样的体系结构?()
A. RISC B. CISC
C. x86 D. MIPS
6.ARM采用()位的体系结构
A.64 B.32
C.16 D.8
7.根据ARM命名规则,ARM7TDMI的T代表什么意思?()
A. Debug B. 支持Thumb指令
C.多媒体处 D.支持Jazelle加速
8.Intel生产的ARM芯片是()
A. POwerPC B. MIPS
C. Firec0ld D. Xscale
9.可编程片上系统是指()
A. S0C B. SOPC
C. PDA D. OMAP
10.复杂指令系统是指()
A. MIPS B. RISC
C. CISC D. CPLA
11.采用冯.诺伊曼存储结构的ARM处理器()
A.ARM7 B. ARM9
C. ARM10 D. ARM11
12.下面哪项为一股嵌入式系统开发中不具备的环节()
A. 系统总体开发 B.数据库设计
C.嵌入式硬件设计 D.嵌入式软件设计
13.()不是嵌入式系统的三要素
A.嵌入 B.存储器
C.专用 D.计算机
14.处理机主要由处理器、存储器和总线组成,总线包括()
A.数据总线、串行总线、逻辑总线、物理总线
B.并行总线、地址总线、逻辑总线、物理总线
C.数据总线、地址总线、控制总线
D并行总线、串行总线、全双工总线
15.每种嵌入式操作系统都有自身的特点以吸引相关用户,下列说法错误的是()
A.嵌入式Linux提供了完善的网络技术支持
B. uCLinux是专门为没有MMU的ARM芯片开发的
C. uC/OS-I操作系统是一种实时操作系统(RTOS)
D. WinCE提供完全开放的源代码
16.如果某-一嵌入式系统主要解决人脸识别的问题,不宜选择()作为设计方案中的核心器件
A. ARM9器件 B. DSP
C. ARM10器件 D.8031单片机
17.下列不属于嵌入设计处理器本身带有的基本接口是()
A.串口 B.并口
C. PCIE D. AD/DA
18.下面哪种操作系统最方便移植到嵌入式设备中()
A. DOS B. Unix
C. WindOws XP D. Linux
19.下面哪一类嵌入式处理器最适合用于工业控制()
A.嵌入式微处理器 B.微控制器
C.通用处理器 D.以上都不合适
20.通常所说的32位微处理器是指()
A.地址总线的宽度为32位 B.处理的数据长度只能为32位
C.CPU字长为32位 D.通用寄存器数目为32个
第二章 ARM处理器体系结构
##ARM9嵌入式微处理器
###ARM处理器简介
ARM(Advanced RISC Machines)处理器是一种RISC(精简指令集)结构的高性价比,低功耗处理器,广泛用于各种嵌入式系统设计中。
嵌入式微处理器按指令集分类
RISC(精简指令集系统)和 CISC(复杂指令集系统)
RISC的一些特点:
·单周期的执行
·采用高效的流水线操作
·无微代码的硬连线控制
·指令格式的规格化和简单化
·采用面向寄存器组的指令
·采用Load/Store(装载/存储)的指令结构
·注重编译的优化,力求有效地支持高级编程语言
ARM微处理器结构特点
ARM嵌入式微处理器的特点:
(1)体积小,低功耗,低成本,高性能。
(2)支持Thumb/ARM双指令集,兼容8位/16位器件。
(3)使用单周期指令,指令简洁、规整。
(4)大量寄存器、指令的执行效率高。
(5)寻址方式简单灵活,执行效率高。
(6)固定长度的指令格式。
ARM9TDMI处理器内核的符号含义说明
ARM9 采用哈佛结构,ARMv4T指令集,五级流水线处理以及分离的cache。
T 支持16位宽度的Thumb压缩指令集
D 支持片上Debug,允许处理器响应调试请求暂停
M 支持增强型乘法器,可生成全64位的结果
I 嵌入式ICE部件,提供片上断点和调试点的支持
ARM9体系结构的5级流水线
取指 ——> 译码 ——> 执行 ——> 访存 ——>回写
取指:从存储器中取出指令,并将其放入指令流水线
译码:对指令进行译码
执行:执行运算
访存:如果需要,则访问数据存储器
回写:将指令产生的结果回写到寄存器,包括任何从存储器中读取的数据
ARM9工作模式
用户模式 (usr) ARM处理器正常执行程序时的处理。
快速中断模式(fiq) 用于高速数据传输或通道处理。
外部中断模式 (irq) 用于通用的中断处理。
管理模式(svc) 操作系统使用的保护模式。
指令/数据访问终止模式(abt) 当数据或指令欲取终止时进入该模式,可用于虚拟存储及存储保护。
系统模式(sys) 运行具有特权的操作系统任务时的模式。
未定义指令中止模式(und) 当未定义指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。
用户模式:usr
特权模式(非用户模式):快速中断模式、外部中断模式、管理模式、系统模式、指令/数据访问终止模式、未定义指令中止模式
异常模式:快速中断模式、外部中断模式、管理模式、指令/数据访问终止模式、未定义指令中止模式
ARM9的两种工作状态:
ARM状态和Thumb状态
ARM9存储器组织结构
大端存储和小端存储
大端存储模式:在32位字数据的最高字节存储在低字节地址中,而其最低字节则存储在高字节地址中。
小端存储模式:在32位字数据的最高字节存储在高字节地址中,而其最低字节则存储在低字节地址中。
ARM9默认采用小端存储模式
内部寄存器
概括:ARM9处理器内部共有37个32位寄存器,可以分成31个通用寄存器和6个状态寄存器两类,状态寄存器只使用了其中的12位。
通用寄存器
(1)未分组寄存器:R0 ~ R7
(2)分组寄存器:R8 ~ R14
R8 ~ R12: 当使用fiq模式时,访问寄存器R8_fiq ~ R12_fiq;当使用fiq模式以外的其他模式时,访问
寄存器R8_usr ~ R12_usr。
R13、R14:每个寄存器对应6个不同的物理寄存器,其中系统模式和用户模式共用一种寄存器,
其它5种寄存器分别对应5种工作模式。
R13:常用作堆栈指针,又称SP。
R14:子程序链接寄存器。
R15: 程序计数器。
程序状态寄存器
(1)概念:由一个当前程序状态寄存器(CPSR)和5个备份的程序状态寄存器SPSR组成。
(2)条件码标志:
N:负数 Z:结果为0 C:进位或借位 V:溢出
(3)控制位:
I:是否禁止IRQ中断 F:是否禁止FIQ中断 T:程序是否运行于Thumb状态
工作模式位(M[4:0]):
10000:用户模式(usr)
10001:FIQ模式(fiq)
10010:IRQ模式(irq)
10011:管理模式(svc)
10111:中止模式(abt)
11011:未定义模式(und)
11111:系统模式(sys)
ARM异常
异常定义:所谓的异常就是指处理器由于内部或外部的原因,停止执行当前的程序,转而处理特定的事件,处理完毕后返回原来的程序继续执行。
异常名称 | 对应模式 | 正常向量 | 高地址向量 |
---|---|---|---|
复位 | 管理(svc) | 0x00000000 | 0xFFFF0000 |
未定义指令 | 未定义(und) | 0x00000004 | 0xFFFF0004 |
软件中断(SWI) | 管理(svc) | 0x00000008 | 0xFFFF0008 |
指令预取中止 | 中止(abt) | 0x0000000C | 0xFFFF000C |
数据中止 | 中止(abt) | 0x00000010 | 0xFFFF0010 |
IRQ(中断) | IRQ(irq) | 0x00000018 | 0xFFFF0018 |
FIQ(快速中断) | FIQ(fiq) | 0x0000001C | 0xFFFF001C |
优先级 | 异常 |
---|---|
1(最高) | 复位 |
2 | 数据中止 |
3 | FIQ |
4 | IRQ |
5 | 预取中止 |
6(最低) | 未定义指令、SWI |
课后习题
2.简述ARM9处理器有哪些寄存器?它们中哪个用作PC?哪个用作LR?
答:ARM9有37个寄存器,其中包括31个通用寄存器,6个状态寄存器。
R15用作PC,R13用作LR。
3.什么是异常?ARM9支持哪些异常?说明各异常的向量地址。
答:所谓异常就是指处理器由于内部或外部的原因而停止执行当前程序,转向处理特定的事件,待执
行完毕之后,再返回原来的程序继续执行。
复位:0x00000000
未定义指令:0x00000004
软件中断:0x00000008
指令预取中止:0x0000000C
数据中止:0x00000010
中断:0x00000018
快速中断:0x0000001C
4.简述大端存储模式和小端存储模式的含义
答:
大端存储模式:在32位字数据的最高字节存储在低字节地址中,而其最低字节则存储在高字节地
址中。
小端存储模式:在32位字数据的最高字节存储在高字节地址中,而其最低字节则存储在低字节地
址中。
5.说明CPSR寄存器及各位的作用。
答:
CPSR:当前程序状态寄存器,保留了程序的当前运行状态,如条件码标志,控制允许和禁止中
断,设备处理器的工作模式以及其它状态和控制信息等。
CPSR寄存器的高四位是N、Z、C、V——条件码标志位,其内容可以被算数或者逻辑运算的结果
所改变,并且可以决定某条指令是否执行。
CPSR低8位是I、F、T和M[4:0],称为控制位,当发生异常时,这些位可以被改变,当处理器运行
在特权模式的时候,这些位也可以由程序修改。
CPSR其余位则是保留位,当改变CPSR中的条件码标志位或控制位时,保留位不需要被改变,其
主要用于ARM版本的扩展。
6.ARM9支持哪些工作模式?不同工作模式下的CPSR寄存器地的模式位如何确定?
ARM9共支持7种工作模式,分别是用户模式、FIQ模式、IRQ模式、管理模式、中止模式、未定义模
式、系统模式。
不同工作模式下的CPSR寄存器地的模式位M[4:0]如下:
用户模式(usr):10000
FIQ模式(fiq):10001
IRQ模式(irq):10010
管理模式(svc):10011
中止模式(abt):10111
未定义模式(und):11011
系统模式(sys):11111
7.为什么说FIQ异常是快速中断?ARM9处理器主要是从哪些方面确保FIQ异常响应的快速性。
答:FIQ异常下有足够多的私有寄存器,且支持数据的传送和通道的处理,减少异常中的花销,提高了
中断的速度,因此被称为快速中断。
ARM9通过FIQ配置了多个寄存器,并将其异常向量放在所有异常的最后提高其响应速度等方式确保其
快速性。
8.什么是专用寄存器?简述S3C2410芯片专用寄存器的作用。
答;专用寄存器是指功能被专门规定的寄存器。S3C2410芯片的专用寄存器主要是对存储器、USB、
中断、DMA、时钟电源等进行控制。
选择题
1.在嵌入式ARM处理器中,下面哪种中断方式优先级最高()
A. reset B.数据中止
C. FIQ D. IRQ
2.ARM默认的存储模式是()
A.大、小端混合模式 B.大端模式
C.小端模式 D.既不是大端模式,也不是小端模式
3.处理器上电默认进入哪种状态? ()
A. ARM B. thumb
C. Jazelle D.由芯片的硬件连线决定
4.Thumb指令集的长度是多少? ()
A.16 B.32
C.64 D.72
5.R13,R14,R15通常分别做为()使用
A.堆栈指针,程序计数器,保存断点的寄存器
B.堆栈指针,保存断点的寄存器,程序计数器
C.程序计数器,保存断点的寄存器,堆栈指针
D.以上都是
6.()模式具有自己独立的R8~R14寄存器
A SVC B. FIQ
C. ABT D. UND
7.ARM使用那个寄存器存放程序的返回地址?
A.SPSR B. CPSR
C. R12 D. R14
8.ARM处理模式中,除以下哪一种其他模式均为特权模式?()
A.用户模式 B. 管理模式
C. IRQ模式 D.数据异常模式
9.下列不是RISC指令系统特点的是()
A. 大量使用寄存器 B.采用固定长度指令格式
C.使用单周期指令 D.寻址方式少
10.ARM共有几种处理器模式?
A.7 B.8
C.9 D.10
11.ARM体系结构中共有多少个物理寄存器?()
A.37 B.10
C.12 D.72
12.关于处理器的异常的描述不正确的是()
A.复位属于异常 B.除数为零会引起异常
C.所有异常都要返回 D.外部中断会引起异常
13.中断向量是指()
A.中断断点的地址 B.中断向量表起始地址
C.中断处理程序入口地址 D.中断返回地址
14.ARM上电后进入哪种模式?
A. FIQ模式 B.管理模式
C. IRQ模式 D.数据异常模式
15.存储一个32位数0x2168465到2000H~2003H四个字节的单元中,若以大端模式存储,则2000H存储单元的内容为()
A.0x21 B.0x68
C.0x65 D.0x02
16.用户模式下的可见通用寄存器个数为多少个?()
A.37 B.16
C.38 D.39
17.Thumb状态下SP映射到ARM状态()
A. R15 B. R14
C. R13 D. R7
18.下面哪一种工作模式不属于ARM特权模式()
A.用户模式 B. 系统模式
C.软中断模式 D. FIQ模式
19.如何禁止IRQ中断? ()
A.将CPSR寄存器的I位置1
B.将CPSR寄存器的F位置1
C.将CPSR 寄存器的T位置1
D.将CPSR 寄存器的C位置1
20.在所有工作模式下,()都指向同一个物理寄存器,即各模式共享
A. R0-R12 B. R0-R7
C. R8-R12 D. R13、 R14
第三章 ARM指令系统
ARM嵌入式指令是基于精简指令集计算机(RISC)原理而设计的,指令集和相关译码机制较为简单。ARM9具有32位ARM指令和16位Thumb指令。
ARM指令格式
31~28 | 27~25 | 24~21 | 20 | 19~16 | 15~12 | 118(移植位)、70(数值位) |
---|---|---|---|---|---|---|
cond | 00 x | Opcode | S | Rn | Rd | Operand 2 |
ARM数据处理指令基本格式:
<Opcode> {<cond>} {s} <Rd>, <Rn>,<Operand2> {<;注释>}
<>内的是必须的,{}内部是可选的
cond:指令的执行条件
Opcode:指令助记符/操作码
S:表示指令是否影响CPSR
Rn:第一个操作数的寄存器
Rd:目标寄存器
Operand2:第二个操作数
ARM寻址方式
1.寄存器寻址
ADD R0,R1,R2 ;R0 <-- R1 + R2
MOV R1,R2 ;R1 <-- R2
SUB R0,R1,R2 ;R0 <-- R1 - R2
2.立即寻址
MOV R0,#10 ;R0 <-- 10
ADD R3,R3,#10 ;R3 <-- R3 + 10
有效立即数的表示:
<immediate> = Immed_8 循环右移 2 * rot 位
例如:
有效立即数:0xFF,0x104,0xFF0,0xFF00
无效立即数:0x101,0x102,0xFF1
MOV R0,#0xF200 ;E3A00CF2,0xF200 = 0xF2循环右移(2*C)
MOV R1,#0x110000 ;E3A01811,0x110000 = 0x11循环右移(2*8)
MOV R4,#0x12800 ;E3A04B4A,0x12800= 0x4A循环右移(2*8)
3.寄存器移位寻址
ADD R3,R2,R1,LSL #3 ;R0 <-- R2 + R1 * 8
MOV R0,R1,R0R,R2 ;R0 <-- R1循环右移R2位
ASR:算术右移
LSL:逻辑左移
LSR:逻辑右移
ROR:循环右移
RRX:扩展循环右移
4.寄存器简介寻址
LDR R0,[R1] ;R0 <-- [R1] 将R1指向的存储单元的数据保存在R1中
SWP R1,R1,[R2] ;将寄存器R1的值和R2指定的单元的内容交换
5.变址寻址
1.前变址方式
LDR R0,[R1,#4] ;R0 <-- [R1 + 4]
2.自动变址方式
LDR R0,[R1,#4]! ;R0 <-- [R1 + 4], R1 <-- R1 + 4 !表示回写或更新基址寄存器
3.后变址方式
STR R0,[R1],#12 ;[R1] <-- R0 , R1 <-- R1 + 12
6.多寄存器寻址
LDMIA R1,{R0,R2,R5} ; R0 <-- [R1] , R2 <-- [R1+4] , R5 <-- [R0 + 8]
7.堆栈寻址
两种堆栈:
1.向上生长,又称递增堆栈,即地址向高地址方向生长。
2.向下生长,又称递减堆栈,即地址向低地址方向生长。
若SP指向最后压入的堆栈的有效数据单元,称为满堆栈;若SP指向下一个数据项放入的空单元,称为空堆栈。
ARM处理器支持的4种类型的堆栈工作方式:
1.满递增堆栈:FA
2.满递减堆栈:FD
3.空递增堆栈:EA
4.空递减堆栈:ED
STMFD sp!,{r4 - r7,lr} ;将r4~r7、lr入栈,满递减堆栈
LDMFD sp!,{r4 - r7,pc} ;数据出栈,放入r4~r7,pc寄存器
8.块复制寻址
几种块复制指令及其寻址操作说明:
LDMIA/STMIA 先传送,后地址加4
LDMIB/STMIB 先地址加4,后传送
LDMDA/STMDA 先传送,后地址减4
LDMDB/STMDB 先地址减4,后传送
STMIA r10,{r0,r1,r4} ;[r10]<--r0,[r10+4]<--r1,[r10+8]<--r4
STMIB r10,{r0,r1,r4} ;[r10+4]<--r0,[r10+8]<--r1,[r10+12]<--r4
STMDA r10,{r0,r1,r4} ;[r10]<--r0,[r10-4]<--r1,[r10-8]<--r4
STMDB r10,{r0,r1,r4} ;[r10-4]<--r0,[r10-8]<--r1,[r10-12]<--r4
9.相对寻址
子程序调用指令BL即是相对寻址指令
BL ROUTE_4
BEQ LOOP
...
LOOP MOV R2,#2
...
ROUTE_4 ...
ARM指令分类
1.程序状态寄存器处理指令
MRS R0,CPSR
ORR R0,R0,#C0
MSR CPSR
2.加载/存储指令
LDR指令:LDR{条件} 目的寄存器, <存储器地址>
STR指令:STR{条件} 源寄存器, <存储器地址>
3.跳转指令
B{条件} 目标地址
4.数据处理指令
MOV指令:MOV{条件}{S}目的寄存器, 源操作数
ADD指令:ADD{条件}{S}目的寄存器, 操作数1,操作数2
SUB指令:SUB{条件}{S}目的寄存器, 操作数1,操作数2
MUL指令:MUL{条件}{S}目的寄存器, 操作数1,操作数2
AND指令:AND{条件}{S}目的寄存器, 操作数1,操作数2
ORR指令:ORR{条件}{S}目的寄存器, 操作数1,操作数2
BIC指令:BIC{条件}{S}目的寄存器, 操作数1,操作数2
CMP指令:CMP{条件} 操作数1,操作数2
汇编语言程序设计
1.符号定义伪操作
GBLA、GBLL、GBLS
LCLA、LCLL、LCLS
SETA、SRTL、SETS
RLIST :RegList RLIST {R0-R5,R8}
2.程序格式
AREA Example,CODE,READONLY
ENTRY
CODE32
START ... ;ARM指令
END
3.子程序调用
BL SUM1
...
SUM1
...
MOV PC,LR
课后习题
1.ARM指令的寻址方式有哪几种?(重要)
ARM常见的9种寻址方式:
1.寄存器寻址: ADD R0,R1,R2
2.立即数寻址: ADD R3,R3,#10
3.寄存器移位寻址: ADD R3,R2,R1, LSL #3
4.寄存器间接寻址: LDR R0,[R1]
5.变址寻址: LDR R0,[R1,#4]
6.多寄存器寻址: LDMIA R1,[R0,R2,R5]
7.堆栈寻址: STMFD sp!, {r4-r7,lr}
8.块复制寻址: STMIA r10,{r0,r1,r4}
9.相对寻址:
BL ROUTE_4
BEQ LOOP
…
LOOP MOV R2,#2
…
ROUTE_4 …
2.ARM指令的条件码有多少个?默认条件码是说明?
答:条件编码共有16个,其中ARM指令的条件码共有15种,默认条件码是AL,表示无条件执行。
3.ARM指令中的第二操作数有哪几种形式?
答:
ARM指令中的第二操作数共有3种形式:立即数,寄存器,寄存器移位。
立即数:ADD R1,R2,#10
寄存器:ADD R1,R2,R3
寄存器移位:ADD,R0,R1,R2,LSL #3
4.在ARM汇编程序如何实现子程序的调用及返回?试举例说明。
答:ARM汇编语言中,子程序的调用可使用B,BL,BX指令,返回通常使用MOV或BX指令。例如:
SUB1 STMFD R13!{R0-R2,R14}
BL SUB2
…
LDMFD R13!{R0-R2,PC}
5.汇编程序设计中常用的伪操作有哪几类?各有什么作用?
答:汇编程序设计中常用的伪操作指令有3类:符号定义伪操作,数据定义伪操作,汇编控制伪操作。
符号定义伪操作可以用于声明变量;数据定义伪操作用于初始化内存单元和声明缓冲池;汇编控制伪操作作用于控制汇编程序和执行过程。
6.试编写实现2+4+6+8+…+100的汇编程序,并在ADS1.2或者MDK环境下调试运行。
AREA Example,CODE,READONLY
ENTRY
CODE32
START MOV R0,#0
MOV R1,#0
LOOP ADD R1,R1,#2
ADD R0,R0,R1
CMP R1,#100
BNE LOOP
END
选择题
1.LDM(或STM)指令允许一条指令最多传送()个寄存器
A.4 B.8
C.16 D.24
2.ATPCS规定数据栈是()类型
A.满递减 B.满递增
C.空递减 D.空递增
3.假设R1=0x31, R2=0x02,执行完ADD R0,R1,R2,LSL #1后R0=()
A 0x31 B. 0x39
C.0x33 D. 0x35
4.下列指令中会对内存单元进行写操作的是()
A. ADD R0,R1,R2,LSL #1
B. STR R0,[R1]
C. BIC R0,R0,#3
D.MOV R0,R1
5.LDR R2,[R3,#8]的得址方式是()
A.寄存器寻址 B.寄存器移位寻址
C.变址寻址 D寄存器间接寻址
6.下列指令中,寻址方式为为(基址)变址寻址的是()
A. ldr r0,[r1,#0x0f]
B. mov r0,r1
C.ldr r0,[r1]
D add r0,r1,r2,lsl #1
7.GET伪指令的含义是()
A.包含一个外部文件
B.定义程序的入口
C.定义一个宏
D.声明一个变量
8.LDMEA指令,其中EA指的是()
A.满递减堆栈
B.满递增堆栈
C.空递减堆栈
D.空递增堆栈
9.C语言程序可以嵌套加入汇编程序模块
A.正确 B.错误
10.S3C2410的处理器对内存的访问只能通过Load/Store指令来实现
A.正确 B.错误
11.关于子程序和子程序互相调用描述正确的是()
A.系统初始化之后,处理器只能工作在一种状态不存在互相调用
B.只要遵循一定调用的规则,Thumb子程序和ARM子程序就可以互相调用
C.只要遵循一定调用的规则,仅能Thumb子程序调用ARM子程序
D.只要遵循一定调用的规则,仅能ARM子程序调用Thumb子程序
12.指令”LDM R0!, {R3, R4, R5, R6}”的寻址方式为()
A.立即寻址 B.寄存器间接寻址
C.多寄存器寻址 D.堆栈寻址
13.在指令系统的各种寻址方式中,若操作数的地址包含在指令中,则属于()
A.立即寻址方式
B.直接寻址方式
C.间接寻址方式
D.寄存器寻址方式
14.下列32位数中,在ARM指令系统立即数寻址方式不可作为立即数的是()
A.0x092300000
B.0x04800000
C.0x00000012
D.0x8000007
15条件指令助记符EQ代表什么?()
A.不相等 B.相等
C.大于 D.等于
16.ARM系统处理16-bit数据时,对应的数据类型是()
A.byte B. halfword
C. Word D.三者都不是
17.下面关于嵌入式C语言描述正确的是()
A.要调用的函数必须在main()中定义
B. 总在第一个定义函数执行
C.总是从main()处开始执行main ()
D.必须放在程序开始处
18.LDR R2, [R3,#128]的寻址方式是()
A.寄存器寻址
B.寄存器移位寻址
C.变址寻址
D.间接寻址
19.RTOS的含义是()
A.片上系统
B. 先进精简指令集机器
C.存储器管理单元
D. 实时操作系统
20.能实现把立即数0X3FF5000保存在R0中的指令是()
A. LDR R0,0X3FF5000
B.LDR R0, =0X3FF5000
C. MOV R0, 0X3FF5000
D MOV R0 =0X3FF5000
第四章
选择题
1.以下属于DMA特点的有()
A.占用CPU B.占用总线
C.不使用存储器 D.不占用总线
2.普通中断模式的表示是()
A. FIQ B. SYS
C. IRQ D. ABT
3.要使CPU能够正常工作,下列哪个条件不是处理器必须满足的()
A.处理器的编译器能够产生可重入代码
B.在程序中可以找开成者关闭中断
C.处理器支持中断并且能产生定时中断
D有大量的存储空间
4.嵌入式系统最常用的数据传输方式()
A.中断 B.查询
C. DMA D.IO处理机
5.以下哪项关于SRAM和DRAM的区别是不对()
A. SRAM比DRAM慢
B.SRAM比DRAM耗电多
C. DRAM存储密度比SRAM高得多
D. DRM需要周期性刷新
6.S3C2410有()个USB接口
A.1 B.2
C.3 D.4
7.指令的三级流水线中,预取阶段完成的任务是?
A. 从存储器装载一条指令
B. 识别将被执行的指令
C. ALU处理指令
D.把结果写会寄存器
8.下面关于ARM处理器的体系结构描述哪一个是错误的()
A.三地址指令格式
B.所有的指令都是多周期执行
C.指令长度固定
D. Load-Store结构
9.下列中断优先级最低的是: ()
A. FIQ B. IRQ
C.中止 D. SWI
10.FIQ中断的入口地址()
A.0x00000000
B. 0x00000004
C.0x0000001C
D.0x0000000C
11.FIQ和IRQ分别为允许和禁止时,CPSR中F和1的设置是: ()
A.10 B.01
C.00 D.11
12.ARM上的外设中断通常产生哪种异常?
A.FIQ B. IRQ
C. Data Abort D. SWI
13.中断向量表中(假设中断向量表起始地址在0x0),软中断的中断向量是多少?
A.0x00 B.0x04
C.0x08 D.0x0C
14.0x07&0x11的运算结果是
A.0x01 B.0x11
C.0x17 D.0x07
15.中断向量是指()
A.中断断点的地址 B中断向量表起始地址
C.中断处理程序入口地址 D.中断返回地址
16.S3C2410采用的是()核心
A. ARMZTDMI B. ARM9TDMI
C. ARM926EJ-S D.ARM920T
17.ARM嵌入式系统中,PC指向的是正在()的指令地址
A.执行 B.译码
C.取指 D.都不是
18.下列关于S3C2410中断描述不正确的是()
A.包括两类中断: IRQ和FIQ
B. IRQ和FIQ都属于ARM的异常模式
C.中断产生的处理步骤 保存现场、模式切换、 获取中断源、中断处理、中断返回
D.如果CPSR的F位置1,则CPU响应来自中断控制器的FIO中断
19.快速中断模式的表示是()
A. FIQ B.IRQ
C.SYS D.ABT
20.处理机主要由处理器、存储器和总线组成,总线包括()
A数据总线、串行总线、逻辑总线、物理总线
B.并行总线、地址总线、湿辑总线、物理总线
C.并行总线、单行总线、全双工总线
D. 数据总线、地址总线、控制总线