ARM嵌入式系统习题册docx.docx
- 文档编号:6566584
- 上传时间:2023-01-08
- 格式:DOCX
- 页数:26
- 大小:113.14KB
ARM嵌入式系统习题册docx.docx
《ARM嵌入式系统习题册docx.docx》由会员分享,可在线阅读,更多相关《ARM嵌入式系统习题册docx.docx(26页珍藏版)》请在冰豆网上搜索。
ARM嵌入式系统习题册docx
ARM嵌入式系统习题册
一、按章节划分基础概念与简答练习题
章
节
题a
题目
1
0
第1章
1
1
ARM是什么样类型的技术公司?
1
2
Linux操作系统的内核、文件系统、编程接口等。
1
3
常见的4种嵌入式操作系统?
1
4
单片机与嵌入式系统的主要区别是什么?
列出嵌入式系统使用Os.的理由。
1
5
广泛使用的三种类型的操作系统?
1
6
简述嵌入式系统与非嵌入式系统(PC)的异同点,设计嵌入系统可采用有哪些种类的器件来实现,各类系统分别适合那些应用场合。
1
7
简要描述ARM内核版本包含哪几条“演进主统”或叫“演进路径”?
1
8
举例说明常见的嵌入式系统芯片型号,那些是RISC、哪些是CISC体系结构?
1
9
列出4种以上常见嵌入式操作系统?
哪些是开源的,哪些是实时商用的?
1
10
列出列出3种以上嵌入式系统新技术。
1
11
列出未来5~10年内,嵌入式系统3个以上的热点应用领域。
1
12
名称解释:
DRAM,IP-CORE,CISC,RISC、NANDFlash.NorFlash,Arduino,开源硬件
1
13
目前使用的嵌入式操作系统主要有哪些?
请举出六种较常用的。
1
14
嵌入式Linux操作系统的特点。
1
15
嵌入式计算机系统主要特点。
1
16
嵌入式系统的3个基本特点?
1
17
请从技术和系统两个角度,分别描述嵌入式系统基本概念。
嵌入式计算机系统与通用计算机系统显著区别的特点是什么?
1
18
什么是RISC?
什么是CISC?
1
19
什么是可编程片上系统?
1
20
什么是嵌入式处理器,嵌入式处理器可以分为几大类?
1
21
什么是嵌入式处理器除CPU内核外,嵌入式系统SOC芯片内部一般由哪几个典型部件组构成?
1
22
什么是嵌入式系统?
其特点有些什么?
1
23
在物联网时代的互联网大数据与早期互联网中的数据比较,有何特点。
2
0
第2章
1
ARM7TDMI处理器采用几级流水线处理,使用何种存储器编址方式?
2
2
ARM7TDMI处理器存储空间如何编址,采用什么样的体系结构,其可寻址地址空间多大?
2
3
ARM7TDMI内部寄存器特点?
2
4
ARM7TDMI有几种寻址方式?
2
5
ARM7TDMI支持哪几种指令集,各有什么特点?
2
6
ARM7处理器复位后处于何种工作模式?
处于何种工作状态?
处理器进入异常模式时,自动切换到何种工作状态?
2
7
ARM7的内部寄存器R13、R14、R15的主要功能和作用?
2
8
ARM处理器的工作模式有哪几种?
2
9
ARM处理器模式和ARM处理器状态有什么区别?
2
10
对下面ARM7的中断服务程序代码模板各行的功能进行注解
SUBLR,LR,#4
STMFDSP!
{R0-R3,LR}
LDMFDSP!
{R0-R3,PC}a
2
11
分类介绍ARM7TDMI处理器的工作模式,哪些是特权的,哪些是非特权模式?
2
12
分类列出ARM7TDMI用户模式或系统模式下内部寄存,哪些通用寄存器是分组的,在其他异常模式下还有哪些寄存器。
2
13
寄存器CPSR,SPSR的功能各是什么?
2
14
寄存器CPSR,SPSR的功能各是什么?
各有几个分组?
2
15
寄存器R13,R14,R15的专用功能各是什么?
2
16
简述ARM7处理器的2种工作状态功能和作用。
2
17
简述ARM处理器七种工作模式和两种工作状态。
2
18
列出有时要使用Thumb指令、有时又要使用ARM指令的原因。
2
19
名词解释:
ARM三级指令流水线、FPGA、JTAG、SWD调试接口、大端存储模式、冯诺依曼结构、哈佛结构、小端存储模式。
2
20
什么是数据的边界对齐?
2
21
什么是小端和大端存储器组织?
2
22
为什么有时要使用Thumb技术的原因?
3
0
第3章
3
1
ARMCortex-M3有何特点?
3
2
Contex-M3系列处理器内核采用了多少级流水线?
3
3
Contex-M3系列处理器内核采用了什么存储结构?
3
4
Context-M3处理器可以使用哪几个堆栈?
3
5
Cortex-M3的处理器有那两种工作模式和状态?
如何进行工作模式和状态的切换?
3
6
Cortex-M3的处理器有那两种状态?
与ARM7的工作状态比较,有何区别?
3
7
Cortex-M3的存储空间可以分为哪几个部分,每一部分的地址范围是怎样的?
3
8
Cortex-M3可以使用哪种存储格式或端模式?
3
9
Cortex-M3是高性能处理器还是低功耗处理器,在睡眠时功耗电流大致多少微安?
3
10
Cortex-M3体系架构中,有哪两个位带区,分别位于哪个存储区中?
3
11
Cortex-M系列支持哪些指令集?
3
12
Cortex-M系列支持哪些指令集?
指令集中包含哪几类不同宽度指令?
与ARM7中的32位ARM/16位Thumb指令集有何关系?
3
13
Cortex-M3处理器有几种工作模式?
各模式有何种特权?
分别使用使用哪个堆栈?
3
14
Cortex-M3异常事件源有哪几类?
各类异常事件产生的原因是什么?
3
15
当处理器在Thread模式下,代码一定是有何种特权?
3
16
分别列出M3通用寄存器和所有特殊功能寄存器的用途。
3
17
简述ARM7/CortexM3硬件开发环境组成,常用的软件集成开发环境、调试接口、协议转换器有哪几种?
3
18
举出2个ARM公司当前应用比较多的ARM处理器内核版本?
3
19
请画出Cortex-M3处理器各特权级别与工模式间的状态转换图,并对状态转换图中各转换路径进行简要说明。
3
20
在系统复位后,M3自动进入何种工作模式和工作状态,代码最初使用哪个堆栈,何种模式下的代码使用线程堆栈?
3
21
在系统复位后,代码最初使用哪个堆栈,何种模式下的代码使用线程栈?
3
22
最新的ARM核几种大系列,各自应用领域有何不同?
3
23
最新的ARM内核有几大系列?
各自目标应用市场在些领域?
4
0
第4章
4
1
初始值R1=23H,R2=0FH执行指令;BICRO,R1,R2,LSL#1;后,寄存器RO,R1的值分别是多少?
(4分*
4
2
一条ARM指令,完成操作r1=r2*3(4分)b
4
3
举例说明3种以上ARM指令寻址方式?
每种方式写一条指令,并说明其功能。
4
4
请编写一段状态切换汇编程序代码是ARM7处理器从32位ARM状态切换为16位Thumb状态。
4
5
请说明MOV指令与LDR加载指令的区别和用途?
4
6
指令ADR,ADRL、LDR、NOP是如何处理地址值读入到寄存器中的?
4
7
指令LDRR1,=0xFFF是如何将立即数Oxfff读入到R1的?
4
8
初始值R1=27H,R2=030H执行指令,BICRO,R1,R2,LSL#1;后,寄存器RO,R1的值分别是多少?
(4分卜
5
0
第5章
5
1
列举三种汇编语言中参数传递的基本方法
6
0
第6章
6
1
在C语言中定义了glob_var全局变量,请给出用汇编语言把数值0x0写入该变量的代码。
答:
//----c代码定义全局变量——;;
staticlongintglob_var;;
globa_var=0x8080;...;;
;〃一■汇编代码・・・-・;;
6
2
在汇编语言中定义了glob_var全局变量,请编写读出该变量的C语言代码。
//----汇编代码-----;;
exportglob_var;
glob_varDCD0x8080;;
Idrr1,#0x002;;
strr1,[rO];;
;//—-C语言代码;;
6
3
ARM系列芯片常用的开发工具?
6
4
C语言是基于栈的语言,请描述ARM-C语言启动代码的4项主要功能,说明C语言动态变量在哪里分配存储空间,静态全局变量又在哪里分配存储空间?
6
5
LPC2000系列芯片常用的开发工具?
6
6
搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?
在Windows主机上使用什么软件建立连接?
在Linux主机上使用什么软件建立连接?
6
7
构造嵌入式开发环境有哪几种形式?
6
8
汇编语言程序调用C语言程序?
6
9
简述ARMRealViewMDKKeil开发环境的特点。
6
10
简述ARM开发环境包括哪几部分?
用框图描述各部分的相互关系,简要说明建立及调试一个开发项目的基本步步骤。
6
11
嵌入式开发环境主要包括哪些组件?
6
13
请用if、else语句,将下列汇编代码转换为等效C语言代码。
6
14
请用switch/case语句,将下列汇编代转换成等效C语言代码。
答:
L1CMPR1,#10;;
BNEL10;;
MOVR0,#1;;_
BL_Exit;湘当于C语言break语句;;
L10CMPR1,#12;;
BNEL12;;
MOVR0,#12;;_
BL_Exit;;湘当于C语言break语句;;
L12CMPR1,#15;;...;;
CMPR1,#22;;
BNEL22;;
MOVRO,#22;;
BL_Exit;;
L22MOVRO,#0xF;相当于C语言default语句;;L_Exit...o
6
15
如何在c语言程序中内嵌汇编?
6
16
如何在汇编语言程序访问C语言char/short/int等的类型全局变量?
6
17
阅读如下模板程序段,解释说明在含子程序嵌套的子程序subFum中,如何保护子程序返回地址,如何返回到调用程序段中?
Main;顶层主程序
BLSubFunl
SubFunl;前级子程序
STMFDR13!
{R0-R12,LR};
»,,,
BLSubFun2
LDMFDR13!
{R0-R12,PC}
SubFun2;嵌套子程序
j,■,
6
18
在ATPCS规范中,子程序调用一般使用哪些寄存器传递参数,多于6个参数时又使用什么方法传递参数?
6
19
在ATPCS规范中,在C语言程序如何调用汇编语言程序?
6
20
在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:
intdo_something(intarg1,void*arg2,chararg3,int*arg4);
这四个参数通过什么方式从调用程序传入被调函数?
'
6
21
在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。
6
22
在嵌入式系统编程中,常需要使用C语言与汇编语言混合编程方法,请给出3条理由。
7
0
第7章
7
1
对下面3行C语言程序功能及语法实现进行详细解释,并写若干行代码说明其用途。
#defineinput32(port)*((unsignedlongint*)port);
#defineoutput32(port,data)*((unsignedlongint*)port)=data;
#defineMREG*((unsignedlongint*)0xffff8004)
7
2
对下C语言程序定义了一个内存映射的IO端口寄存器,请详细解释其功能及语法实现,并写若干行代码对该端口进行读写操作。
7
3
对下面C语言程序定义内存映射的端口I/O操作函数,详细解释其的语法实现,并写若干行代码举例说明其用途。
#defineinput32(port)*((unsignedlongint*)port);
#defineoutput32(port,data)*((unsignedlongint*)port)=data
7
4
CM3处理器包含几个位带区,已知存储单元0x2000_0000第3位的位带区位地址映射为0x2200_000c,fflC或汇编写出位带区的单个bit位的读宜操作方法,并写出使用普通存储器字地址对应炒作方法。
8
0
第8章
8
1
简述Cortex-M3系统滴答定时器的功能和作用。
8
2
名称解释:
异常、中断、中断向量、中断优先级
8
3
向量中断控制器主要功能包括哪些?
8
4
简述CM3嵌套向量中断控制器(NVIC)的主要特性。
8
5
解释说明下列ARM7中断服务程序模板中的入口和出口代码功能。
;ARM7的中断服务程序,从堆栈直接中断返回范例代码;;IRQ_Handle
STMFDR13!
{R0-R12,LR);
LDMFDR13!
{R0-R12,PC}A;
9
0
第9章
9
1
简要描述STM32F10X系列芯片内部GPIO的功能特点?
9
2
什么是嵌入式处理器的最小系统?
9
3
嵌入式处理器的最小系统包含那些基本电路?
10
0
第10-13章
10
1
单片机时代大多在裸机上开发,用户编程直接操作硬件,而在SOC时代,硬件驱动编程需要基于库函数编程,列出3条以上必须转变编程方式的理由。
10
1
嵌入式系统的BooTLoader的功能是什么?
10
2
嵌入式系统开发的基本流程?
10
3
嵌入式系统中BootLoader主要起什么作用?
完成哪些主要的工作?
10
4
什么是引导程序?
什么是启动程序?
两者有什么区别?
10
5
简述不同复用功能的重映射。
10
6
简述STM32的GPIO的一些主要特点(至少5个卜
10
7
简述嵌套向量中断控制器(NVIC)的主要特性。
10
8
Cortex-M3的处理器有那两种工作模式和状态?
如何进行工作模式和状态的切换?
10
9
什么是位绑定区、位绑定别名区?
它们有怎样的关系?
10
10
STM32的GPIO的配置模式有那几种?
如何进行配置模式的配置?
10
11
简述STM32最小硬件开发系统的组成及其各部分的作用。
二、综合应用设计与编程题
1.用Cortex-M3的Thumb2指令或ARM7指令写一汇编程序:
循环累加队列myarray中的所有元素,直到碰上零值元素结束循环,结果放在r4中。
程序框架如下,补充代码完成上述功能。
AREAtotal,CODEREADONLY
ENTRY
start
MOVr4,#0
;在此补充代码
loop
;在此补充代码
ADDr4,r4,rl
CMPrl,#0
BNEloop
myarray
DCD1,2,3,4,8,9,9,0
2,把列代码翻译成高效32位ARM汇编代码
C语言代码
等价汇编代码
if(a>b){a=0;}
else{a=10;}
switch(a)
(
case1:
...,
break;
case2:
...,
break;
case10:
...,
break;
default:
break;
}
3.把main函数内部的C语言程序翻译转换成功能相同的汇编代码。
(6分)
c语言代码
等价汇编代码
staticintx,y;
staticint*px;
staticint*py;
voidmain(void)
{
x=0xl2345678;
y=x;
px=&x;
py=&y;
*px=0x55667788;
*py二*px;
}
4.有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少?
num
EQU
2
程序流程图
start
MOV
rO,#0
MOV
rl,#5
MOV
r2,#2
BL
func
stop
func
B
CMP
stop
rO,#num
MOVHSpc,Ir
ADR
r3,JumpTable
LDRpc,[r3,r0,LSL#2]
JumpTableDCDDoA
DCDDoS
DoAADDrO,rl,r2
MOVpc,Ir
DoSSUBrO,rl,r2
MOVpc,Ir
END
运行结果:
5.把列代码翻译成高效32位ARM汇编代码。
(6分)
c语言代码
逐价汇编代码
if(a>b)(a=0;}
else(a=10;}
switch(a)
{
case1:
.•♦,
break;
case2:
..♦,
break;
case10:
...,
break;
default:
break;
}
6,已知一个外设有64个32bits寄存器,连续占用ARM处理器地址范围为0x83000000^0x830000ff的主存储器空间,共256字节。
写一段C或汇编程序,对64个外设寄存器进初始化,初始化数据在程序代码中自行定义。
7,已知一个外设基于M3内核的SOC芯片有16个32bits寄存器,连续占用ARM处理器地址范围为0x90000080^0x90000040的主存储器空间,共64字节。
写一段C或汇编程序,对16个外设寄存器进初始化,初始化数据在全局静态数据中。
8.已知一个ARM芯片的片内外设含有个数据交换缓冲区,该缓冲区直接映射到主存储器空间地址范围为0xA000C000~0xA000C3FF,共计1024字节(256个32字)。
请写一段C语言或汇编语言程序,向该缓冲区循环顺序填入字符'A'至『V26个大写字母的ASIIC码。
9.如图已知有U1,U3芯片,ARM芯片U1包含扩展外部SRAM的总线接口,数据总线宽度为16bit,U3是双向三态门74LS245芯片。
其中U1的信号/nCs是片选输出,低电平有效,地址总线的A31-A16参与了译码,A15-A0有引脚输
出,/nCs有效地址范围为0xff040000〜0xff04ffff,该地址范围没有其他设备;U3的DIR选择数据传输万向,高电平A3B,低电平B9A。
/E用于选通输入,低电平有效。
用存储器单元影射方式在ARM处理器芯片外SRAM总线上扩展一个8BitGPIO个输入端口(可用32位,只设计低8位有效,高24位空闲保留),添加必要与、或、非等基本门电路和联线(尽量用网络标号)。
请完成GPIO扩展设计,写出从端读入一个8bit数据的接口驱动示例C语言或汇编语言代码,并对设计做必要说明。
(8分)
D7:
0
A31:
0地址nCS2
—"译码
nRD
nWR
2
AOB0
AlB1
A2B2
A3B3
A4B4
A5B5
A6B6
A7B7
E74HC245
DIR
3
4
5
6
7
8
9
19
1
U2
11D07
18DOO
17DOI
16D02
15D03
14D04
13D05
12D06
10.LCD显示屏与ARMSOC间接口电路和LCD时序如下图所示,用LPC21xx的GPIOP0口控制LCD接口,连线定义:
RS=P0.8,RW=P0.9,E=P0.10D0-D7=P0.0-P0.7。
已知基于STM32的11条并行数据接口与
PAO
DBO
PAI
DB1
PA2
DB2
PA3
DB3
PA4
DB4
PA5
DB5
PA6
DB6
PA7
DB7
PA8
RS
PA9
RW
PAID
E
STM32
F103
SOC
LCD
模块
LCD屏关键驱动信号描述和时序如下表和图。
序号
寄存器名称
RS
R/W
E
操作
1
只写命令
寄存器
1
0
T
写命令寄存
2
只读数据
寄存器
0
1
T
读数据寄存
3
只写数据寄器
0
0
T
写数据寄存器
LCD模块寄存器和信号功能描述
RS
_r
R/W
E—
_\_i\\\_,
DBo5~~X
ZZ)
<>C^>CZX_
it
IB(
III)(I®it®
信息时序图
假设已定义好了STM32F10xGPIO_PO口32条引脚的硬件抽象层操作代码、延时函数,其函数原型和用法
如下实例所示:
〃示例代码
〃说明
voiddelay_us(int)
GPIO_PO(8)=1;
〃延时电参数us确定,单位为微秒
〃P0口的第8脚输出高电平,括号中参数范围可以从。
到31;
GPIOP0(9)二0;
//P0口的第9脚输出低电平;
GPIO_PODATA=Ox99;“回P0.0-P0.7并行输出8bits数据0x99
请用上述电路和已定义好GPIO函数库,编写LCD接口基本驱动函数,包括向LCD输出8位数据函数和向LCD输出8位指令函数。
(8分)
11.已知一个外设有64个32bits寄存器,连续占用ARM处理器地址范围为OxffffOOOO-OxffffOOff的主存储器空间,共256字节。
写一段C或汇编程序,对64个外设寄存器进初始化,初始化数据在程序代码中自行定义。
(6分)
12.在MyGPIO.h文件中,己用位带操作定义好了STM32通用I/OP0口的16条引脚的硬件抽象层操作代码,延时函数,其用法如下面范例代码所示:
#includeMyGPIO.h
voiddelay_us(intus);
〃延时由参数US确定,单位为微秒
GPIO_P0(8)=l;
J/P0旦的第8脚输出高电平,括号中参数范围可以从0到31;
GPIO_P0(9)二0;
J/P0旦的第9脚输出低电平;
GPIO_PO_DATABUS=Ox99;
〃向P0.0-P0.7并行输出8bits数据0x99
下图是一片基于IIC接口的AT24C01E2PROM,与STM32芯片的电路连接如图所示。
电路描述:
其中P0.1控制写保护端,P0.1作为IIC时钟驱动信号,P0.2为双向数据输入输出端口。
基本时序描述:
向SDA输出1比特数据,延时5us以上,发1个完整时钟脉
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ARM 嵌入式 系统 习题 docx