当前位置:文档之家› 周立功ARM嵌入式系统基础教程课后习题答案

周立功ARM嵌入式系统基础教程课后习题答案

周立功ARM嵌入式系统基础教程课后习题答案
周立功ARM嵌入式系统基础教程课后习题答案

第一章

思考与练习

1、举出3个书本中未提到的嵌入式系统的例子。

答:红绿灯控制,数字空调,机顶盒

2、什么叫嵌入式系统

嵌入式系统:以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应应用系

统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

3、什么叫嵌入式处理器?嵌入式处理器分为哪几类?

嵌入式处理器是为完成特殊的应用而设计的特殊目的的处理器。

嵌入式微处理器(Embedded Microprocessor Unit, EMPU)

嵌入式微控制器(Microcontroller Unit, MCU)

嵌入式DSP 处理器(Embedded Digital Signal Processor, EDSP)

嵌入式片上系统(System On Chip)

4、什么是嵌入式操作系统?为何要使用嵌入式操作系统?

是一段在嵌入式系统启动后首先执行的背景程序,首先,嵌入式实时操作系统提高了系统的可靠性。

其次,提高了开发效率,缩短了开发周期。再次,嵌入式实时操作系统充分发挥了32 位CPU 的多任务潜力。

第二章

1、嵌入式系统项目开发的生命周期分哪几个阶段?各自的具体任务是什么?

项目的生命周期一般分为识别需求、提出解决方案、执行项目和结束项目4 个阶段。

识别需求阶段的主要任务是确认需求,分析投资收益比,研究项目的可行性,分析厂商所应具备的条件。

提出解决方案阶段由各厂商向客户提交标书、介绍解决方案。

执行项目阶段细化目标,制定工作计划,协调人力和其他资源;定期监控进展,

分析项目偏差,采取必要措施以实现目标。

结束项目阶段主要包括移交工作成果,帮助客户实现商务目标;系统交接给维护人员;结清各种款项。

2、为何要进行风险分析?嵌入式项目主要有哪些方面的风险?

在一个项目中,有许多的因素会影响到项目进行,因此在项目进行的初期,在客户和开发团队都还未投入大量资源之前,风险的评估可以用来预估项目进行可能会遭遇的难题。

需求风险;时间风险;资金风险;项目管理风险

3、何谓系统规范?制定系统规范的目的是什么?

规格制定阶段的目的在于将客户的需求,由模糊的描述,转换成有意义的量化数据。

4、何谓系统规划?为何要做系统规划

系统规划就是拟定一个开发进程,使项目在合理的进程范围中逐渐建构完成。其目地是让客户可以进一步地掌握系统开发的进程,并确定检查点,以让双方确定项目是否如预期中的进度完成。

5、为什么在项目结束前需要进行项目讨论?

项目的讨论一个项目进行的反馈机制。通过这一个程序,项目团队的经验才可以被记录

下来,也就是说,这是一个撰写项目历史的过程。

第三章

1、ARM7TDMI中的T、D、M、I的含义是什么?

64 位乘法指令(带M 后缀的)、支持片上调试(带D 后缀的)、高密度16 位的Thumb

指令机扩展(带T 后缀的)和EmbededICE 观察点硬件(带I 后缀的)

2、ARM7TDMI采用几级流水线?使用何种存储器编址方式?

三级流水线(取指译码执行);使用了冯·诺依曼(Von Neumann )结构,指令和数据共用一条

32 位总线。

3、ARM处理器模式和ARM处理器状态有何区别?

处理器模式指的是处理器在执行程序时在不同时刻所处的不同状态,处理器状态指的是处理器当前所执行的指令集。

4、分别列举ARM的处理器模式和状态。

状态:

ARM 状态32 位,这种状态下执行的是字方式的ARM 指令

Thumb 状态16 位,这种状态下执行半字方式的Thumb 指令

模式:

用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式。

5、PC和LR分别使用哪个寄存器?

PC使用R15寄存器,LR使用R14寄存器

6、R13寄存器的通用功能是什么?

堆栈

第四章

1、基础知识

(1)ARM7TDMI(-S)有几种寻址方式?LOR R1,[R0,#0x08]属于哪种寻址方式?

1. 寄存器寻址;

2. 立即寻址;

3. 寄存器移位寻址;

4. 寄存器间接寻址;

5. 基址寻址;

6. 多寄存器寻

址;7. 堆栈寻址;8. 块拷贝寻址;9. 相对寻址;LOR R1,[R0,#0x08]属于基址寻址。

(2)ARM指令的条件码有多少个?默认条件码是什么?

16条,默认条件码是AL。

(3)ARM指令中第二个操作数有哪几种形式?举例5个8位图立即数。

(1) 立即数;(2) 寄存器;(3) 寄存器及移位常数;

0x3FC(0xFF<<2)、0、0xF0000000(0xF0<<24)、200(0xC8)、0xF0000001(0x1F<<28)。

(4)LDR/STR指令的偏移形式有哪4种?LDRB和LDRSB有何区别?

(1) 零偏移;(2) 前索引偏移;(3) 程序相对偏移;(4) 后索引偏移。LDRB就是读出指定地址的数

据并存入指定寄存器,LDRSB读出指定地址的数据,并高24位用符号位扩展,再存入指定寄存器。(5)请指出MOV指令与LDR加载指令的区别及用途。

MOV 将8 位图(pattern)立即数或寄存器(operand2)传送到目标寄存器(Rd),可用于移位运算等操作。

读取指定地址上的存储器单元内容,执行条件AL.

(6)CMP指令的操作是什么?写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。

CMP 指令将寄存器Rn 的值减去operand2 的值,根据操作的结果更新CPSR 中的相应条件标志位,以便后面的指令根据相应的条件标志来判断是否执行。

CMP R1,0x30

SUBHI R1,R1,0x30

(7)调用子程序是用B还是用BL指令?请写出返回子程序的指令?

BL 指令用于子程序调用。

MOV PC,R14

(8)请指出LDR伪指令的用法。指令格式与LDR加载指令的区别是什么?

LDR 伪指令用于加载32 位的立即数或一个地址值到指定寄存器。第二个数为地址表达式。

(9)ARM状态与Thumb状态的切换指令是什么?请举例说明。

BX指令,

(10)Thumb状态与ARM状态的寄存器有区别吗?Thumb指令对哪些寄存器的访问受到一定限制?

Thumb状态下不能更新CPSR 中的ALU 状态标志。,Thumb指令对R8~R15寄存器访问受限。(11)Thumb指令集的堆栈入栈、出栈指令是哪两条?

PUSH POP

(12)Thumb指令集的BL指令转换范围为何能达到±4MB?其指令编码是怎样的?

Thumb 采用两条16 位指令组合成22 位半字偏移(符号扩展为32 位),使指令转移范围为±4MB。

2 有符号和无符号加法

下面给出A 和B 的值,您可先手动计算A+B,并预测N、Z、V 和C 标志位的值。然后修改程序清单4.1 中R0、R1 的值,将这两个值装载到这两个寄存器中(使用LDR 伪指令,

如LDR R0,=0x FFFF0000),使其执行两个寄存器的加法操作。调试程序,每执行一次加法操作就将标志位的状态记录下来,并将所得结果与您预先计算得出的结果相比较。如果两个操作数看作是有符号数,如何解释所得标志位的状态?同样,如果这两个操作数看作是无符数,所得标志位又当如何理解?

0xFFFF000F 0x7FFFFFFF 67654321 (A)

+ 0x0000FFF1 + 0x02345678 + 23110000 (B)

结果:( ) ( ) ( )

3 数据访问

把下面的C 代码转换成汇编代码。数组a 和b 分别存放在以0x4000 和0x5000 为起始地址的存储区内,类型为long(即32 位)。把编写的汇编语言进行编译连接,并进行调试。

for (i=0; i<8; i++)

{ a[i] = b[7-i];

}

第五章

1、基础知识:

(1)LPC2114可使用的外部晶振频率范围是多少(使用/不使用PLL功能时)?

晶振频率范围:1~30 MHz,若使用PLL 或ISP 功能为:10~25MHz。

(2)描述一下LPC2210的PO.14、P1.20、P1.26、BOOT1和BOOT0引脚在芯片复位时分别有什么作用?并简单说明LPC2000系列ARM7微控制器的复位处理流程。

P0.14 的低电平强制片内引导装载程序复位后控制器件的操作,即进入ISP 状态。

P1.20 的低电平使P1.25~P1.16 复位后用作跟踪端口。

P1.26 的低电平使P1.31~P1.26 复位后用作一个调试端口。

当RESET 为低时,BOOT0 与BOOT1 一同控制引导和内部操作。引脚的内部上拉确保了引脚未连接时呈现高电平。

外部复位输入:当该引脚为低电平时,器件复位,I/O口和外围功能进入默认状态,处理器从地址0 开始执行程序。复位信号是具有迟滞作用的TTL 电平。

(3)LPC2000系列ARM7微控制器对向量表有何要求(向量表中的保留字)?

向量表所有数据32 位累加和为零(0x00000000~0x0000001C 的8 个字的机器码累加),才能脱机运行用户程序,这是LPC2114/2124/2212/2214 的特性。

(4)如何启动LPC2000系列ARM7微控制器的ISP功能?相关电路应该如何设计?

(5)LPC2000系列ARM7微控制器片内Flash是多位宽度的接口?它是通过哪个功能模块来提高Flash的访问速度?

128位, 通过存储器加速模块(MAM)来提高Flash的访问速度

(6)若LPC2210的BANK0存储块使用32位总线,访问BANK0时,地址线A1、A0是否有效?EMC模块中的BLSO~BLS4具有什么功能?

无效,( 如果存储器组配置成16 位宽,则不需要A0;8 位宽的存储器组需要使用A0 。);字节定位选择信号。

(7)LPC2000系列ARM7微控制器具有引脚功能复用特性,那么如何设置某个引脚为指定功能?

通过引脚功能选择寄存器的设定来设置某个引脚为指定功能

(8)设置引脚为GPIO功能时,如何控制某个引脚单独输入/输出?当前要知道某个引脚当前的输出状态时,是读取IOPIN寄存器还是读取IOSET寄存器?

GPIO方向寄存器,IOPIN。

(9)P0.2和P0.3口是I2C接口,当设置它们为GPIO时,是否需要外接上拉电阻才能输出高电平?

(10)使用SPI主模式时,SSEL引脚是否可以作为GPIO?若不能,SSEL引脚应如何处理?

不能用作GPIO,SSEL应设这高电平,处于末激活状态。

(11)LPC2114具有几个UART是符合什么标准?哪一个UART可用作ISP通信?哪一个UART具有MODEM接口?

UART0,UART1;UART0用于ISP通信,UART1具有MODEM接口。

(12)LPC2114具有几个32位定时器?PWM定时器是否可以作通用定时器使用?

两个32位定时器,PWM定时器不能用作通用定时器使用

(13)LPC2000系列ARM7微控制器具有哪两种低耗模式?如何降低系统的功耗?

2 个低功耗模式:空闲和掉电;

2、计算PLL设置值:

假设有一个基于LPC2114的系统,所使用的晶振为11.0592MHZ石英晶振。请计算出最大的系统时钟(ccls)频率为多少MHZ?此时PLL的M值和P值各为多少?请列出计算公式,并编写设置PLL的程序段。

3、存储器重影射:

(1)LPC2210具有( 4 )种存影射模式。

①3 ②5 ③1 ④4

(2)当程序已固化到片内Flash,向量表保存在0x00000000起始处,则MAP〔1:0〕的值应该为( 2 )。

①00 ②01 ③10 ④11

(3)LPC2000系列APM7微控制器ccq重影射的目标起始地址为(),共有()个字。

①0x00000000,8 ②0x40000000,8

③0x00000000,16 ④0x7FFFE000,8

4、外部中断唤醒掉电设计:

以下代码是初始化外部中断0,用它来唤醒掉电的LPC2114,请填空。

PINSEL0=0x00000000;

PINSELI = (PINSEL1&0XFFFFFFFC)|0X01;//设置I/O连接,PO.16设置为EINTO

EXTMODE =0X00;//设置EINT0为电平触发模式

EXTPOLAR=0X00;//设置EINT0为低电平触发

EXTWAKE =0X01;//允许外部中断0唤醒掉电的CPU

EXTINT=0x0F;//清除外部中断标识

第四章

程序清单4.1寄存器相加

;文件名:TESTI.S

;功能:实现两个寄存器相加

;说明:使用ARMulate软件仿真调试

AREA Examplel,CODE,READONLY ;声明代码段Examplel

ENTRY ;标识程序入口

CODE32 ;声明32位ARM指令

START MOV R0,#0 ;设置参数

MOV R1,#10

LOOP BL ADD_SUB ;调用子程序ADD_SUB

B LOOP ;跳转到LOOP

ADD_SUB

ADDS R0,R0,R1 ;R0=R0+R1

MOV PC,LR ;子程序返回

END ;文件结束

程序清单4.2 读取SMI立即数

T_bit EQU 0X20

SWI_Handler

STMFD SP!,{R0_R3,R12,LR} ;现场保护

MRS R0,SPSR ;读取SPSR

STMED SP!,{R0} ;保存SPSR

TST R0,#T_bit ;测试T标志位

LDRNEH R0,[LR,#_2] ;若是Thumb指令,读取指令码(16位)

BICNE R0,R0,,#0xFF00 ;取得Thumb指令的8位立即数

LDREQ R0,[LR,#_4] ;若是ARM指令,读取指令码(32位)

BICEQ R0,R0,#0Xff000000 ;取得ARM指令的24位立即数

……

LDMFD SP!,{R0_R3,R12,PC};SWI异常中断返回

程序清单4.3使用IRQ中断

ENABLE_IRQ

MRS R0,CPSR

BIC R0,R0,#0x80

MSR CPSR_C,R0

MOV PC,LR

程序清单4.4禁能IRQ中断

DISABLE_IRQ

MRS R0 CPSR

ORR R0,R0,#0x80

MSR CPSR_C,R0

MOV PC,LR

程序清单4.5堆栈指令初始化

INTSTACK

WOV R0,LR ;保存返回地址

;设置管理模式堆栈

MSR CPSR_C,#0xD3

LDR SP,stacksvc

;设置中断模式堆栈

MSR CPSR_C,#0xD2

LDR SP,Stacklrq

……

程序清单4.6小范围地址的加载

……

ADR R0,DISP_TAB ;加载转换表地址

LDRB R1,[R0,R2] ;使用R2作为参数,进行查表

……

DISP_TAB

DCB 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90 程序清单4.7中等范围地址的加载

……

ADR LR,RETURNI

ADRL R1,Thumb_sub+1

BX R1

RETURNI

……

CODE 16

Thumb_sub

MOV R1,#10

……

程序清单4.8加载32位立即数

……

LDR R0,=IOPIN ;加载GPIO的寄存器IOPIN的地址

LDR R1,[R0] ;读取IOPIN寄存器的值

……

LDR R0,=IOSET

LDR R1,=0x00500500

STR R1,[R0] ;IOSET=0x00500500

……

程序清单4.9软件延时

……

DELAYI

NOP

NOP

NOP

SUBS R1,R1,#1

BNE DELAYI

……

程序清单4.10 ARM到Thumb的状态切换

;文件名:TEST8.S

;功能:使用BX指令切换处理器状态

;说明:使用ARMulate软件仿真调试

AREA Example8,CODE,READONLY

ENTRY

CODE32

ARM_CODE ADR R0,THUMB_CODE+1

BX R0 ;跳转并切换处理器状态

CODE16

THUMB_CODE

MOV R0,#10 ;R0=10

MOV R1,#20 ;R1=20

ADD R0,R1 ;R0=R0+R1

B

END

第一章

思考与练习

(③)不是常规意义上的嵌入式系统。P6

①手机②MP3 ③PC机④数码相机

可用作嵌入式操作系统的有(①)

①Linux(Vxworks,uc/os-II)②windows2000 ③windowsXP ④DOS

什么叫嵌入式系统p7

第二章

嵌入式系统项目开发生命周期的阶段没有(④)p4、5

①识别需求②提出方案③执行项目④系统规划

第三章

ARM7TDMI中的T、D、M、I的含义是什么?p22

不属于ARM7三级流水线的是(③)p24

①取指②译码③PC值递增④执行

对于ARM7三级流水线,当一条指令被译码时,上一条指令正被(④)p24

①取指②译码③PC值递增④执行

对于ARM7三级流水线,当一条指令被译码时,下一条指令正被(①)p24 ①取指②译码③PC值递增④执行

ARM7TDMI采用三级流水线?采用冯.诺依曼体系结构。

ARM7有(两种)处理器状态,分别是(ARM)状态和(Thumb)状态。P30

ARM7有(7种)处理器模式,分别是(用户)、(快中断)、(中断)、(管理)、(中止)、(未定义)、(系统模式),其中5种异常模式是(快中断)、(中断)、(管理)、(中止)、(未定义)模式。P42~p44

(用户模式)是正常程序工作模式,特点是不能(直接)切换到其它模式。

(管理模式)是“操作系统保护代码”,复位和软中断响应时进入此模式。

系统模式用于支持操作系统的(特权)任务等,与用户模式类似,但可以(直接)切换到其它模式。

在ARM7 (37)个用户可见寄存器中,有(6)个状态寄存器,(31)个通用寄存器。程序计数器PC是(R15),程序状态寄存器是(CPSR),链接寄存器LR是(R14),堆栈指针SP 是(R13)。P47~p49

CPSR有若干控制位和若干条件代码标志构成:T为0 表示处理器工作在(ARM状态).

p80~p87

CPSR有若干控制位和若干条件代码标志构成:N为1表示前次运算结果(为负)。

CPSR有若干控制位和若干条件代码标志构成:Z为1表示前次运算结果(为零)。

CPSR有若干控制位和若干条件代码标志构成:C为1表示前次运算产生了(进位/借位)。CPSR有若干控制位和若干条件代码标志构成:V为1表示前次运算(溢出)。

若前次运算结果为负数,则CPSR的(①)为1

①N ②Z ③C ④V

若前次运算结果为零,则CPSR的(②)为1

①N ②Z ③C ④V

若前次运算产生了进位/借位,则CPSR的(③)为1

①N ②Z ③C ④V

若前次运算溢出,则CPSR的(④)为1

①N ②Z ③C ④V

欲使处理器禁止快中断,则应该使(①)

①CPSR的F位为1 ②CPSR的F位为0 ③CPSR的I位为1 ④CPSR的I位为0

欲使处理器禁止中断,则应该使(③)

CPSR的F位为1 ②CPSR的F位为0 ③CPSR的I位为1 ④CPSR的I位为0

异常复习p3~p12

子程序的最后一条指令必须是(①)P3

①MOV PC,R14 ②MOV PC,R14_und ③SUBS PC,R14_fig,#4 ④SUBS PC,R14_irg,#4

中断服务程序的最后一条指令必须是(④)P3

①MOV PC,R14 ②MOV PC,R14_und ③SUBS PC,R14_fig,#4 ④SUBS PC,R14_irg,#4

快中断服务程序的最后一条指令必须是(③)

①MOV PC,R14 ②MOV PC,R14_und ③SUBS PC,R14_fig,#4 ④SUBS PC,R14_irg,#4 P3 ARM7处理器响应中断时,处理器硬件修改PC为(③)p22

①0x00000000 ②0x00000000 ③0x00000018 ④0x0000001C

ARM7处理器响应快中断时,处理器硬件修改PC为(④)

①0x00000000 ②0x00000000 ③0x00000018 ④0x0000001C

外部设备向处理器发出中断请求,处理器进入(②)异常。

①快中断②中断③未定义指令④预取中止

ARM7处理器收到快中断请求,则进入(①)异常。

①快中断②中断③未定义指令④预取中止

第四章

ARM7的寻址方式有(④)种。P6

① 6 ②7 ③8 ④9

条件码复习p35~p36

使用指令条件码可实现高效的逻辑操作,提高代码效率。指令条件码表如表4.1所列。

P39~p41

处理器从存储器读数据的指令(加载指令)的助记符是(①)

①LDR ②STR ③SWP ④SWPB

处理器往存储器写数据的指令(存储指令)的助记符是(①)

①LDR ②STR ③SWP ④SWPB

将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]

将R1中的数据保存到R0-R2地址处

STR R1,[R0,-R2]

P60~p62

数据传送指令的助记符是(①)。

①MOV ②SBC ③ADD ④SUB

代进位加法指令的助记符是(①)

①ADC ②SBC ③ADD ④SUB

代借位减法指令的助记符是(②)

①ADC ②SBC ③ADD ④SUB

求R1+R2,和放在R1中

ADD R1,R1,R2

求R1-R2,差放在R1中

SUB R1,R1,R2

求R4R3-R2R1,差放在R6R5中

SUBS R5,R3,R1

SBC R6,R4,R2

求R4R3+R2R1,和放在R6R5中

ADDS R5,R3,R1

ADC R6,R4,R2

求R4R3-1,差放在R6R5中

SUBS R5,R3,#1

SBC R6,R4,#0

求R4R3+1,和放在R6R5中

ADDS R5,R3,#1

ADC R6,R4,#0

P69

将R0最第4位数据保留,并影响标志位ANDS R0,R0,#0x0F

将R0的1,3,5位置1

ORR R0,R0,#0x2A

将R0的1,3,5位置0

BIC R0,R0,0x2A

P75,p76

R1与99比较,设置相关标志位

CMP R1,#99

R1与R2比较,设置相关标志位

CMP R1,R2

P96

跳转到标号waiter处

B waiter

前次运算结果为正,转到标号play处BHI play

前次运算结果为非正,转到标号play处BLS play

调用子程序whiet

BL whiet

前次运算结果为0,调用子程序ply

BLEQ ply

前次运算结果为非0,调用子程序ply

BLNE ply

调用子程序是用(BL)指令?子程序返回指令是(MOV PC,R14)

编程题:

写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。

CMP R1,0x30

SUBHI R1,R1,0x30

编写实现两个寄存器R0,R1相加的子程序。

ADD_SUB

ADDS R0,R0,R1 ;R0=R0+R1

MOV PC,LR ;子程序返回

END ;文件结束P119~p122

将CPSR状态寄存器读取,保存到R1中

MRS R1,CPSR

将SPSR状态寄存器读出,保存到R2中

MRS R2,SPSR

程序清单4.3 使能IRQ中断

ENABLE-IRQ

MRS R0,CPSR

BIC R0,R0,#0X80

MSR CPSR_C,R0

MOV PC,LR

程序清单4.4 禁能IRQ中断

DISABLE_IRQ

MRS R0 CPSR

ORR R0,R0,#0X80

MSR CPSR_C,R0

MOV PC,LR ;LR即R14

编一个简单的软件延时程序

DELAYI

NOP

NOP

NOP

SUBS R1,R1,#1

BNE DELAYI

……

第五章

p6

LPC2000系列单片机包含四大部分:ARM7内核、ARM7局部总线及相关部件、AHB及相关部件、VPB总线及相关部件。

LPC2000系列芯片内部单元有SRAM和FLASH、系统功能之系统时钟和复位、向量中断控制器VIC、外部存储器控制器EMC、异步收/发器UART、外部中断等。

P14

由设置寄存器(②)来选择P1口的引脚功能。

①SINSEL0 ②SINSEL1 ③SINSEL2 ④SINSELx

p21~p23

片内Flash编程方法不包括(④)

①通过内置JTAG接口②通过在线系统编程(ISP),通过UART0通信

③通过在线应用编程(IAP)④运行Loader程序

片内SRAM控制器包含一个(回写缓冲区),它总是保存着发生到内部SRAM的(最后)一个字数据。

P26

片内存储器可能的最大地址是(①)

①0x7FFFFFFF ②0xDFFFFFFF ③0xEFFFFFFF ④0xFFFFFFFF

片外存储器可能的最大地址是(②)

①0x7FFFFFFF ②0xDFFFFFFF ③0xEFFFFFFF ④0xFFFFFFFF

VHB外设可能的最小地址是(③)

①0x00000000 ②0xE0000000 ③0xE0000000 ④0xF0000000

AHB外设可能的最大地址是(④)

①0x7FFFFFFF ②0xDFFFFFFF ③0xEFFFFFFF ④0xFFFFFFFF

p31

Boot lock映射到片内存储器(顶部),Flash映射到片内存储器(底部)

P57~58

时钟产生单元能产生供(内核)使用的时钟和供(外设)使用的时钟

晶振输出的时钟频率最大为(①)MHz

①25 ②20 ③35 ④40

锁相环输出的最大频率为(60 )MHz

①20 ②40 ③60 ④80

p70~p746

与锁相环有关的寄存器有(PLLCON)、(PLLCFG)、(PLLSTA)、(PLLFEED)

锁相环计算流程是:1、选择内核工作频率。2、选择振荡器频率。3、计算M值,配置MSEL 位。4、计算P值,配置PSEL位。

与VPB分频器有关的寄存器有(VPBDIV)

为了正确使用时钟技术,必须设置好(PLLCON)、(PLLCFG)、(PLLFEED)、(VPBDIV)等寄存器。

复位后程序计数器PC的值为(①)

①0x00000000 ②0x00000004 ③0x00000008 ④0x0000001C

p113

为了使用好中断技术,要设置好(6)个寄存器。

EXTPOLAR2位被设置为1,则(②)

①引脚EINT1输入信号高电平或上升沿有效②引脚EINT2输入信号高电平或上升沿有效③引脚EINT3输入信号高电平或上升沿有效④引脚EINT0输入信号高电平或上升沿有效EXTMODE2位设置为1,则(②)

①引脚EINT1输入信号为边沿触发有效②引脚EINT2输入信号为边沿触发有效

③引脚EINT3输入信号为边沿触发有效④引脚EINT0输入信号为边沿触发有效

要求外部中断2能将处理器从掉电模式唤醒,(③)应该设置成1

①EXTWAKE0位②EXTWAKE1位③EXTWAKE2位④EXTWAKE3位

若引脚EINT1输入中断请求,会使(②)

①中断标志寄存器EXTINT的第1位清0 ②中断标志寄存器EXTINT的第1位置1

③中断标志寄存器EXTINT的第0位清0 ④中断标志寄存器EXTINT的第0位置1

p126,p127

用C语言设置EINT0为低电平触发中断

……

PINSEL1=(PINSEL1&0XFFFFFFFC)|0X01;

EXTMODE=0X00;

EXTPOLAR=0X00;

……..

用C语言设置EINT0为下降沿触发中断

……

PINSEL1=(PINSEL1&0XFFFFFFFC)|0X01;

EXTMODE=0X01;

EXTPOLAR=0X00;

……..

用C语言设置EINT1为高电平触发中断

……

PINSEL1=(PINSEL1&0XFFFFFFFC)|0X01;

EXTMODE=0X00;

EXTPOLAR=0X02;

……..

用C语言设置EINT1为上升沿触发中断

……

PINSEL1=(PINSEL1&0XFFFFFFFC)|0X01;

EXTMODE=0X02;

EXTPOLAR=0X02;

……..

p130~p138 p137有错

异常向量表保存在0x00000000起始处,则MAP〔1:0〕的值应该为(②)。

①00 ②01 ③10 ④11

异常向量表保存在Boot Block中,则MAP〔1:0〕的值应该为(①)。

①00 ②01 ③10 ④11

异常向量表保存在片内SRAM中,则MAP〔1:0〕的值应该为(③)。

①00 ②01 ③10 ④11

异常向量表保存在外部存储器中,则MAP〔1:0〕的值应该为(④)。

①00 ②01 ③10 ④11

p150

空闲模式特点:内核停止执行指令,系统时钟一直有效,外设功能保持

设置PCON的IDL位为1,进入空闲模式;中断请求使处理器退出空闲模式。

掉电模式特点:关闭时钟,仅相关数据保持、处理器和引脚状态保持。

设置PCON的PD位为1,进入掉电模式;复位和无需时钟的中断使处理器退出中断。

欲进入空闲模式,则应该使(①)。

①IDL为1 ②IDL为0 ③PD为1 ④PD为0

欲进入掉电模式,则应该使(③)。

①IDL为1 ②IDL为0 ③PD为1 ④PD为0

p15

外部存储器控制器输出地址线(24)位,4位存储器组选择线是(CS[3:0])。

P18

外部存储器分为(4)组,每组有(自己的)配置寄存器BCFGx,通过它分别可以设置每个寄存器组读写访问之间插入的等待周期(个数)、每个存储器组的总线(宽度)等。

P20~33

配置寄存器BCFG0的WST1为(②),外部寄存器组BANK0的读操作周期为5个CCLK 周期

①1 ②2 ③3 ④4

配置寄存器BCFG0的WST2为(②),外部寄存器组BANK0的写操作周期为5个CCLK 周期

①1 ②2 ③3 ④4

配置寄存器BCFG1的MW为(③),外部寄存器组BANK1数据总线宽度为32位

①00 ②01 ③10 ④11

当将PINSEL0[3:0]设置成(①)时,P0.0和P0.1为GPIO脚。

①0000 ②0101 ③1010 ④1111

当将PINSEL0[3:0]设置成(②)时,P0.0和P0.1分别为TxD0和RxD0脚。

①0000 ②0101 ③1010 ④1111

当将PINSEL0[3:0]设置成(③)时,P0.0和P0.1分别为PWM1、PWM3脚。

①0000 ②0101 ③1010 ④1111

当将PINSEL0[3:0]设置成(④)时,P0.1脚为EINT0脚。

①0000 ②0101 ③1010 ④1111

用C编程,将P0.0和P0.1分别设置为TxD0和RxD0脚

……..

PINSEL0=PINSEL0&0xFFFFFFF0

PINSEL0=PINSEL0|0x00000005

……….

P53、p56

ARM7内核具有(2)个中断输入,但经过向量中断控制器VIC最多可以接收(32)个中断输入请求。

外部中断请求EINT0是向量中断控制器VIC的(①)

①中断请求输入14 ②中断请求输入15 ③中断请求输入16 ④中断请求输入17

p58、p59

允许EINT0产生中断,应该使中断使能寄存器VICIntEnable的(①)为1。

①14 ②15 ③16 ④17

设置EINT0为快中断FIQ,应该使中断选择寄存器VICIntSelect的(①)为1。

①14 ②15 ③16 ④17

设置EINT0为中断IRQ,应该使中断选择寄存器VICIntSelect的(①)为0。

①14 ②15 ③16 ④17

用C语言编程开放外部中断EINT1,设置其为快中断FIQ。

…….

VICIntEnable=VICIntEnable|0x80

VICIntselect=VICIntselect|0x80

……

p9

P0为GPIO,欲使它的低8位为输出脚,而其他位为输入脚,则应该设置IO0DIR为(①)①0xFF ②0xFF00 ③0xFF0000 ④0xFF000000

P0为GPIO,欲使它的8~15位为输出脚,而其他位为输入脚,则应该设置IO0DIR为(②)①0xFF ②0xFF00 ③0xFF0000 ④0xFF000000

P0为GPIO,欲使它的16~23位为输出脚,而其他位为输入脚,则应该设置IO0DIR为(③)①0xFF ②0xFF00 ③0xFF0000 ④0xFF000000

①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④①②③④

p11

P0的低8位为输出脚。欲使其低4位输出高电平,则应该(③),

①设置IO0SET为0xF0,设置IO0CLR为0x0F

②设置IO0SET为0xF0,设置IO0CLR为0xF0

③设置IO0SET为0x0F,设置IO0CLR为0xF0

④设置IO0SET为0x0F,设置IO0CLR为0x0F

设已经将P0口设置成GPIO,用C语言编程,使P0的低8位输出脚,低4位输出高电平。

……

IO0DIR=0xFF

IO0SET=0x0F

IO0CLR=0xF0

………

相关主题
文本预览
相关文档 最新文档