嵌入式系统复习题答案.docx
《嵌入式系统复习题答案.docx》由会员分享,可在线阅读,更多相关《嵌入式系统复习题答案.docx(13页珍藏版)》请在冰豆网上搜索。
嵌入式系统复习题答案
第一章
思考与练习
(③)不是常规意义上的嵌入式系统。
P6
①手机②MP3③PC机④数码相机
可用作嵌入式操作系统的有(①)
①Linux(Vxworks,uc/os-II)②windows2000③windowsXP④DOS
什么叫嵌入式系统p7
第二章
嵌入式系统项目开发生命周期的阶段没有(④)p4、5
1识别需求②提出方案③执行项目④系统规划
第三章
ARM7TDMI中的T、D、M、I的含义是什么?
p22
不属于ARM7三级流水线的是(③)p24
1取指②译码③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
欲使处理器禁止快中断,则应该使(①)
1CPSR的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
①MOVPC,R14②MOVPC,R14_und③SUBSPC,R14_fig,#4④SUBSPC,R14_irg,#4
中断服务程序的最后一条指令必须是(④)P3
①MOVPC,R14②MOVPC,R14_und③SUBSPC,R14_fig,#4④SUBSPC,R14_irg,#4
快中断服务程序的最后一条指令必须是(③)
①MOVPC,R14②MOVPC,R14_und③SUBSPC,R14_fig,#4④SUBSPC,R14_irg,#4P3
ARM7处理器响应中断时,处理器硬件修改PC为(③)p22
①0x00000000②0x00000000③0x00000018④0x0000001C
ARM7处理器响应快中断时,处理器硬件修改PC为(④)
①0x00000000②0x00000000③0x00000018④0x0000001C
外部设备向处理器发出中断请求,处理器进入(②)异常。
①快中断②中断③未定义指令④预取中止
ARM7处理器收到快中断请求,则进入(①)异常。
①快中断②中断③未定义指令④预取中止
第四章
ARM7的寻址方式有(④)种。
P6
16②7③8④9
条件码复习p35~p36
使用指令条件码可实现高效的逻辑操作,提高代码效率。
指令条件码表如表4.1所列。
指令条件码表
操作码
条件码助记符
标志
含义
0000
EQ
Z=1
相等
0001
NE
Z=0
不相等
1000
HI
C=1,Z=0
无符号数大于
1001
LS
C=0,Z=1
无符号数小于或等于
ARM指令的条件码的作用是满足了(条件)则执行指令。
P39~p41
处理器从存储器读数据的指令(加载指令)的助记符是(①)
①LDR②STR③SWP④SWPB
处理器往存储器写数据的指令(存储指令)的助记符是(①)
①LDR②STR③SWP④SWPB
将R0+0x12地址处的数据读出,保存到R1中
LDRR1,[R0,#0x12]
将R1中数据保存到R0+0x12地址处
STRR1,[R0,#0x12]
将R0-0x12地址处的数据读出,保存到R1中
LDRR1,[R0,-#0x12]
将R1中的数据保存到R0-0x12地址处
STRR1,[R0,-#0x12]
将R0+R2地址处的数据读出,保存到R1中
LDRR1,[R1,R2]
将R1中数据保存到R0+R2地址处
STRR1,[R1,R2]
将R0-R2地址处的数据读出,保存到R1中
LDRR1,[R0,-R2]
将R1中的数据保存到R0-R2地址处
STRR1,[R0,-R2]
P60~p62
数据传送指令的助记符是(①)。
1MOV②SBC③ADD④SUB
代进位加法指令的助记符是(①)
①ADC②SBC③ADD④SUB
代借位减法指令的助记符是(②)
①ADC②SBC③ADD④SUB
求R1+R2,和放在R1中
ADDR1,R1,R2
求R1-R2,差放在R1中
SUBR1,R1,R2
求R4R3-R2R1,差放在R6R5中
SUBSR5,R3,R1
SBCR6,R4,R2
求R4R3+R2R1,和放在R6R5中
ADDSR5,R3,R1
ADCR6,R4,R2
求R4R3-1,差放在R6R5中
SUBSR5,R3,#1
SBCR6,R4,#0
求R4R3+1,和放在R6R5中
ADDSR5,R3,#1
ADCR6,R4,#0
P69
将R0最第4位数据保留,并影响标志位
ANDSR0,R0,#0x0F
将R0的1,3,5位置1
ORRR0,R0,#0x2A
将R0的1,3,5位置0
BICR0,R0,0x2A
P75,p76
R1与99比较,设置相关标志位
CMPR1,#99
R1与R2比较,设置相关标志位
CMPR1,R2
P96
跳转到标号waiter处
Bwaiter
前次运算结果为正,转到标号play处
BHIplay
前次运算结果为非正,转到标号play处
BLSplay
调用子程序whiet
BLwhiet
前次运算结果为0,调用子程序ply
BLEQply
前次运算结果为非0,调用子程序ply
BLNEply
调用子程序是用(BL)指令?
子程序返回指令是(MOVPC,R14)
编程题:
写一个程序,判断R1的值是否大于0x30,是则将R1减去0x30。
CMPR1,0x30
SUBHIR1,R1,0x30
编写实现两个寄存器R0,R1相加的子程序。
ADD_SUB
ADDSR0,R0,R1;R0=R0+R1
MOVPC,LR;子程序返回
END;文件结束
P119~p122
将CPSR状态寄存器读取,保存到R1中
MRSR1,CPSR
将SPSR状态寄存器读出,保存到R2中
MRSR2,SPSR
程序清单4.3使能IRQ中断
ENABLE-IRQ
MRSR0,CPSR
BICR0,R0,#0X80
MSRCPSR_C,R0
MOVPC,LR
程序清单4.4禁能IRQ中断
DISABLE_IRQ
MRSR0CPSR
ORRR0,R0,#0X80
MSRCPSR_C,R0
MOVPC,LR;LR即R14
编一个简单的软件延时程序
DELAYI
NOP
NOP
NOP
SUBSR1,R1,#1
BNEDELAYI
……
第五章
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
Bootlock映射到片内存储器(顶部),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~p138p137有错
异常向量表保存在0x00000000起始处,则MAP〔1:
0〕的值应该为(②)。
①00②01③10④11
异常向量表保存在BootBlock中,则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
………
(注:
可编辑下载,若有不当之处,请指正,谢谢!
)