嵌入式练习题.docx
- 文档编号:30588258
- 上传时间:2023-08-18
- 格式:DOCX
- 页数:20
- 大小:207.53KB
嵌入式练习题.docx
《嵌入式练习题.docx》由会员分享,可在线阅读,更多相关《嵌入式练习题.docx(20页珍藏版)》请在冰豆网上搜索。
嵌入式练习题
1.什么是嵌入式系统?
其特点有些什么?
答:
嵌入式系统是以应用为中心,以计算机技术为基础,并且软硬件可裁剪,适用于应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。
特点:
(1)通常是面向特定应用,低功耗、体积小、集成度高;
(2)是技术密集、资金密集、高度分散、不断创新的知识集成系统;
(3)软硬件必须高效率地设计,根据应用需求量体裁衣,去除冗余;
(4)与具体应用有机结合,具有较长的生命周期;
(5)为提高执行速度和系统可靠性,软件一般固化在存储器芯片或单片机本身中;
(6)本身不具备自举开发能力,必须有一套开发工具和环境才能进行开发。
2.嵌入式系统的BooTLoader的功能是什么?
答:
BooTLoader是系统加电后,操作系统内核或用户应用程序运行之前,首先必须运行的一段程序,即引导加载程序。
通过这段程序,为最终调用操作系统内核、运行用户应用程序准备好正确的环境。
3.什么是嵌入式操作系统?
为何要使用嵌入式操作系统?
答:
嵌入到对象体系中的专用计算机应用系统。
4.目前嵌入式操作系统有哪些?
答:
(1)WindowsCE
(2)VxWorks(3)pSOS(4)QNX(5)PalmOS(6)嵌入式Linux
5.构造嵌入式开发环境有哪几种形式?
答:
(1)交叉开发环境
(2)软件模拟环境(3)评估电路板
6.嵌入式系统开发的基本流程?
答:
(1)系统定义与需求分析
(2)规格说明
(3)系统结构设计
(4)构件设计
(5)系统集成
7.什么是可编程片上系统?
答:
用可编程逻辑技术把整个系统放到一块硅片上,称作可编程片上系统PSOC它是一种特
殊的嵌入式系统,首先它是SOC即由单个芯片实现整个系统的主要逻辑功能,具有一般SOC基本属性;其次,它又具备软硬件在系统可编程的功能,是可编程系统,具有可裁剪、可扩充、可升级等灵活的设计方式。
8.有时要使用Thumbs术的原因?
答:
16位Thumb旨令集是32位ARM旨令集的子集,用16位代码密度的指令获得32位处理器的性能既节省存储空间及成本,又不降低处理性能,低功耗,小体积,低成本。
9.ARM处理器的工作模式有哪几种?
答:
用户模式,系统模式,管理模式,中止模式,未定义模式,IRQ模式,FIQ模式
10.寄存器R13,R14,R15的专用功能各是什么?
答:
R13寄存器的作用通常是堆栈指针,SP;
R14用作子程序链接寄存器,LR;
R15的功能是程序计数器,PC。
11.寄存器CPSRSPSR勺功能各是什么?
答:
(1)CPSR寄存器称为当前程序状态寄存器,又称R16,在所有处理器模式下CPSR
都是同一个物理寄存器,保存了程序运行的当前状态。
包括各种条件标志、中断禁止/
允许位、处理器模式位以及其它状态和控制信息。
(2)在每种异常模式下都有一个对应的物理寄存器一一程序状态保存寄存器SPSR当
异常出现时,SPSR用于保存CPSR的状态,以便异常返回后恢复异常发生时的工作状态。
12.PC和LF分别使用哪个寄存器?
答:
PC使用R15,LR使用R14
13.ARM的异常有哪几种,各进入何种工作模式?
他们退出各采用什么指令?
答:
(1)复位异常,(管理模式);
(2)未定义指令异常,(未定义模式);
(3)软件中断(SW)异常,(管理模式);
(4)指令预取中止异常,(中止模式);
(5)数据访问中止(DataAbort)(中止模式);
(6)外部中断请求(IRQ)(IRQ模式);
(7)快速中断请求(FIQ)(FIQ模式)。
异常返回指令:
(1)SWI,未定义的返回:
MOVSPC,R14
(2)数据中止返回并重新存取:
SUBSPC,R14,#8
(3)IRQ,FIQ,预取中止的返回:
SUBSPC,R14,#4
14.什么是小端和大端存储器组织?
答:
(1)小端存储系统中,字的地址对应该字最低有效字节所对应的地址;半字的地址对应该半字最低有效字节所对应的地址
(2)大端存储系统中,字的地址对应该字最高有效字节所对应的地址;半字的地址对应
该半字最高有效字节所对应的地址
15.什么是数据的边界对齐?
答:
默认情况下,ADS编译器使用的是数据类型的自然边界对其方式。
数据的自然对其方式是指:
如果该数据类型是n个字节的,那么该数据类型就按n字节对齐。
16.ARM核现在有哪几种?
答:
ARM7ARM9ARM9E、ARM10E、SecurCore、StrongARM、Xscale
17.ARM的寻址方式有哪些?
各写一条说明。
答:
(1)立即寻址:
ADDR6寄存器寻址:
ADDR2R3,
LDRR2
变址寻址:
LDRR2,[R3,#128];R2=[R3+128]
,[R3,#4]!
;R2=[R3+4],R3=R3+4
LDRR2,[R3],#4;R2=[R3],R3=R3+4
⑹
(7)堆栈寻址:
STMFDSP!
{R1-R7,LR}
多寄存器寻址:
LDMIAR2,{R3,R5,R7};R3=[R2],R5=[R2+4],R7=[R2+8]
LDMFDSP!
{R1-R7,LR}
(8)块拷贝寻址:
LDMIAR0!
{R2-R9}
STMIAR1,{R2-R9}
(9)相对寻址
18.在AR的立即寻址方式下其立即数如何在指令编码中表示?
答:
在ARM数据处理指令中,当参与操作的第二操作数为立即数型时,每个立即数都是采用
一个8位的常数循环右移偶数位而间接得到。
其中循环右移的位数由一个4位二进制的
两倍表示,如果立即数记作
因此有效
立即数immediate可以表示成:
19.指令ADRADRLLDRNO是如何处理地址值读入到寄存器中的?
答:
ADR是将基于PC或者寄存器的地址值读入到寄存器的,ADR伪指令通常被替换成一条ADD
指令或SUB指令来实现该ADR指令的功能;而ADRL伪指令与ADR指令的最大不同之处是,它可以读取更大范围内的地址,而且被编译器替换成2条数据处理指令;LDR将一
个32位的立即数或者一个地址值读取到寄存器中,大范围的地址读取;NOP在汇编时
将被替换成ARM中的空操作。
20.指令LDRR1,=0xFFF是如何将立即数Oxfff读入到R1的?
答:
由于需要读取的寄存器的数据超过了MOV及MVN指令可操作的范围,编译器将该常数放
在数据缓冲区中,同时用一条基于PC的LDR指令读取该常数。
LDRR1,[PC,offset_to_LPOOL]
LTORG;声明数据缓冲池
LPOOLDCDOxFFF;OxFFF放在数据缓冲池中。
21.如何在c语言程序中内嵌汇编?
答:
内嵌的汇编指令包括大部分的ARM!
令和Thumb旨令,但是不能直接引用C勺变量定义,
数据交换必须通过ATPC进行。
嵌入式汇编在形式上表现为独立定义的函数体
22.如何在汇编语言程序访问C语言的全局变量?
答:
汇编程序可以通过地址间接访问在C语言程序中声明的全局变量。
通过使用IMPORT关
键词引人全局变量,并利用LDR和STR指令根据全局变量的地址可以访问它们。
对于不同类型的变量,需要采用不同选项的LDR和STR指令,如下所示:
(1)
unsigned
char-
——LDRB/STRB
(2)
unsigned
short
——LDRH/STRH
(3)
unsigned
int—
—LDR/STR
(4)
char-
——LDRSB/STRSB
(5)
Short
-LDRSH/STRSH
23.在C语言程序如何调用汇编语言程序?
答:
为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS在汇编程序中需
要使用EXPORTS操作来声明,使得本程序可以被其它程序调用。
同时,在C程序调用
该汇编程序之前需要在C语言程序中使用extern关键词来声明该汇编程序。
24.汇编语言程序调用C语言程序?
答:
为了保证程序调用时参数的正确传递,汇编程序的设计要遵守ATPCS在C程序中不需
要使用任何关键字来声明将被汇编语言调用的C程序,但是在汇编程序调用该C程序之
前需要在汇编语言程序中使用IMPORT伪操作来声明该C程序。
在汇编程序中通过BL
指令来调用子程序。
25.在嵌入式C语言程序设计中为提高程序效率的相关设计技巧。
答:
变量定义;参数传递;循环条件;以空间换时间;数学方法解决问题;使用位操作;
嵌入汇编。
24.Linux操作系统的内核、文件系统、编程接口等。
P192P201
25.嵌入式Linux操作系统的特点。
答:
广泛的硬件支持、内核高效稳定、开放源码,软件丰富、优秀的开发工具、完善的网络通信和文件管理机制。
26.WindowsCE操作系统及其特点。
答:
WindowsCE是一个32位、多任务、多线程的操作系统,其开放式的设计结构适用于各种各样的设备,其主要特点:
CE是一种压缩并可升级的软件系统,即使在小内存条件下,也能提供较高的性能;
CE具有便于携带的优点,可以运行于多种微处理器上;
CE拥有很好的电源管理系统,能延长移动设备的电池寿命;
CE支持标准的通讯系统,可以非常方便地访问Internet,发送和接受电子邮件,浏览
万维网。
27.程序解释
⑴
AREACOPYBS,CODE,READONL定义一个代码段
ENTRY;程序入口
LDRRO,=SRC;取得原数据表的表头
LDRR1,=DST;取得目标数据表的表头
MOVR2,#20;R4作为循环控制
BCOPYMOVSR3,R2,LSR,#3;R3=R2<<3逻辑右移3位
BEQCWORD若Z=1,跳转到CWORD
OCOPYLDMIAR0!
{R4-R11};加载RC指向的地址上的多字数据,保存到R4~R1仲,R0值更新
STMIAR1!
{R4-R11};将R4-R11的数据存储到R1指向的地址上,R1值更新
SUBSR3,R3,#1;R3=R3-1
BNEOCOPY若Z=0,跳转至UOCOPY
CWORDANDR2,R2,#7;R2=R2&7
BEQSTOP;若Z=1,跳转至USTOP
WCOPYLDRR3,{R0},#4;将只3中的字数据读入以R0为地址的存储器中,并将新地址R0+4写
入R1
STRR3,{R1},#4;将只3中的字数据写入以R1为地址的存储器中,并将新地址R1+4写入R1
SUBSR2,R2,#1;R2=R2-1
BNEWCOPY若Z=0,跳转到WCOPY
STOP……
⑵
在程序中常常需要根据一定的参数选择执行不同的子程序。
跳转表中存放的是各子函数的地
址,选择不同的子程序的参数是该子程序在跳转表中的偏移量。
在本例中R3寄存器中存放的
是跳转表的基地址(首选地址,其中存放的是第一个子程序的地址)。
R0寄存器的值用于选
择不同的子程序;当R0为0时,选择的是子程序DoAdd;当R0为1时,选择的是子程序DoSubb在ADS编译环境程序如下:
AREAJumpCODEREADONLY设置本程序的名称及属性
NUMEQU2;跳转表中的子程序个数
ENTRY;程序执行的入口点
StartMOVR0,#0;设置3个参数,RC选择调用哪个子程序
MOVR1,#3;R伪子程序要用的参数
MOVR2,#2;R2为子程序要用的参数
BLFunc;调用子程序Func,进行算术运算
StopMOVRO,#0x18;本条与下条指令的作用是参数传递
LDRR1,=&20026
SWI0x123456;将CPU勺控制权交给调试器
FuncCMPR0,#NUM;判断R0是否在有效范围之内
MOVHSPCLR;如果超出范围则程序返回
ADRR3JTable;读取跳转表的基地址
LDRPC【R3,R0,LSL#2】;根据参数R0的值跳转到相应的子程序
JTableDCDDoAdd;当参数R0为0时上面的代码将选择DoAdd
DCDDoSub;当参数R0为1时上面的代码将选择DoSub
DoAddADDRQR1,R2;子程序DoAdc执行加法操作
MOVPCLR;子程序返回
DoSubSUBR0,R1,R2;子程序DoSub执行减法操作
MOVPCLR;子程序返回
END;结束汇编、
简答题
1、什么是嵌入式处理器,嵌入式处理器可以分为几大类?
答:
嵌入式处理器是为了完成特殊的应用而设计的特殊目的的处理器;
分为嵌入式微处理器、嵌入式微控制器、嵌入式DSP处理器、嵌入式片上系统(SOC。
2、广泛使用的三种类型的操作系统?
答:
多道批处理操作系统、分时操作系统以及实时操作系统。
3、ARM!
什么样的公司?
答:
它是一家微处理器行业的知名企业,该企业设计了大量高性能、廉价、耗能低的RISC
处理器。
特点是只设计芯片,而不生产。
它将技术授权给世界上许多著名的半导体、软件和
OEMT商,并提供服务。
4、什么是RISC?
什么是CISC?
答:
RISC是精简指令集计算机的缩写,CISC是复杂指令集计算机的缩写
5、ARM处理器采用什么样的体系结构,其可寻址地址空间多大?
答:
ARM处理器采用冯.诺依曼体系结构,寻址空间为4GB勺8位字节寻址空间(1GB勺32位字寻址空间)
6、ARM处理器采用几级流水线处理,使用何种存储器编址方式?
答:
ARM处理器采用RISC五级整数流水线结构
7、ARMi理器模式和ARMt理器状态有什么区别?
答:
ARM理器模式指用户模式、快中断模式、中断模式、管理模式、中止模式、未定义模式和系统模式;
ARM处理器状态指ARM状态和Thumb犬态
8、ARM内部寄存器特点?
答:
ARM处理器内部共有37个32位的寄存器,其中31个用作通用寄存器,6个用作状态寄存器,每个状态寄存器只使用了其中的12位。
9、请说明M0指令与LDF加载指令的区别和用途?
答:
LDR的操作数既可以来源于寄存器也可以来源于存储器,MOV的操作数能来源于寄存器;
LDR指令从内存中读取数据放入寄存器,用于对内存变量和数据的访问、查表、程序的跳转、
外围部件的控制操作等;MOV指令将8位立即数或寄存器传送到目标寄存器(Rd),可用于
移位运算等操作。
10、ARM9微控制器内FLASH是多少位宽度的接口?
它是通过哪个功能模块来提高FLASH勺访问速度?
11、FIQ、IRQ有什么不同?
向量IRQ和非向量IRQ有什么不同?
答:
FIQ是快速中断,具有最高优先级,中断处理转入FIQ模式;IRQ是普通中断,优先级
低于FIQ,中断处理转入IRQ模式。
向量IRQ支持16个向量IRQ中断,16个优先级,能为每个中断源设置服务程序地址;非向量IRQ支持一个非向量IRQ中断,所有中断都共用一个相同的服务程序入口地址。
12、什么是嵌入式处理器的最小系统?
答:
最小系统是指提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成的系统。
13、嵌入式处理器的最小系统包含那些基本电路?
答:
最小系统包含时钟系统、供电系统、复位及其配置系统、存储器系统(可选)、调试测
试系统(可选)。
基本电路包括:
末级电源电路、前级电源电路、时钟电路、复位电路、程序存储器(可
选)、调试接口电路(可选)。
二、问答题
1、ARM支持哪几种指令集,各有什么特点?
答:
支持ARM旨令集和Thumb指令集两种。
ARM指令集:
指令32位,效率高,代码密度低,所有ARM指令都是可以有条件执行的。
Thumb旨令集:
指令16位,代码密度较高,Thumb旨令仅有一条指令具备条件执行功能。
保持ARM的大多数性能上的优势,是ARMt令集的子集。
2、ARMT几种处理器模式,简单介绍该几种模式的工作特点?
答:
用户模式:
正常程序运行的工作模式,不能直接从用户模式切换到其它模式
系统模式:
用于支持操作系统的特权任务等,可以直接切换到其它模式
管理模式:
供操作系统使用的一种保护模式,只有在系统复位和软件中断响应时,才进
入此模式。
中止模式:
用于虚拟内存和/或存储器保护。
未定义模式:
支持软件仿真的硬件协处理器,只有在未定义指令异常响应时,才进入此模式。
快中断模式:
用于快速中断处理,支持高速数据传输及通道处理,只有在FIQ异常响应
时,才进入此模式。
中断模式:
用于通用中断处理,只有在IRQ异常响应时,才进入此模式。
3、什么是引导程序?
什么是启动程序?
两者有什么区别?
答:
引导程序是ARM微处理器在上电或复位后首先运行BootBlock中的一段代码;启动程
序是在运行引导程序后,正式运行用户main函数之前,还需要运行一段代码
引导程序由芯片厂商固化在芯片中,功能包括:
判断运行哪个存储器上的程序、检查用
户代码是否有效、判断芯片是否被加密、芯片的在应用编程(IAP)以及在系统编程功能(ISP)。
启动程序由用户添加,功能包括:
向量表定义、堆栈初始化、系统变量初始化、中断系统初始化、I/O初始化、外围初始化,地址重映射等操作。
4、试比较说明JATG工具和ISP工具的异同点?
答:
两者都可以将程序下载到开发板上,
JATG通过计算机的并口和开发板的JATG口下载程序;ISP通过计算机的串口和开发
板的UART0下载程序。
5、下图是ARM处理器的当前程序状态寄存器,请简单说明各位的功能。
3130292827876543210
N
Z
C
V
■———
I
F
T
M4
M3
M2
M1
M0
ARM当前程序状态寄存器
N:
负标志位,运算结果的第31位值,记录标志设置的结果。
Z:
零标志位,如果标志设置操作的结果为0,则置位。
C:
进位标志位,记录无符号加法溢出,减法无错位,循环移位。
V:
溢出标志位,记录标志设置操作的有符号溢出。
I:
中断禁止标志位,置位时禁止IRQ中断,否则允许IRQ中断使能。
F:
中断禁止标志位,置位时禁止FIQ中断,否则允许FIQ中断使能。
T:
控制位,置位时处理器运行在Thumb状态下,清零时处理器运行在ARM犬态下。
M0~M4模式控制位,定义处理器的7中模式。
其余位为保留位,留作将来使用。
6、下图是ARM系统内部的存储器加速模块(MAM连接结构示意图,试针对该示意图说明MAM如何实现存储器加速功能。
答:
存储器加速模块中Flash存储器可以存放4个32位ARM旨令或8个16位Thumb指令,它们被分成两组,轮番工作,及时的为CPU提供需要的指令和数据,以防止CPU取指暂停。
程序顺序执行时,一个Flash组包含当前正在取指的指令和包含该指令的整个Flash
行,而另一个Flash组则包含或正在预取指下一个连续的代码行。
程序出现分支时,在预取指缓存区中保存着将要执行的指令,在分支跟踪缓存区中保存着程序跳转后可执行到的指令。
程序获取数据时,如果数据不在MAM勺数据缓冲区,那么MAM会执行一次Flash读操
作,把一个128位的数据行存入数据缓冲区,这样就加快了按顺序访问数据的速度。
7、下图是ARM系统存储器映射图,试对该映射图进行简单的描述说明。
4.0GB
3.75GB
3.5GB
3.0GB
2.0GB
1.0GB
0.0GB
2MBAHB外设
_保留「
2MBVPB外设
-保留给片外存储器-
16MBBank3
16MBBank2
16MBBank1
16MBBankO
8KBBootBlock(片
内ROM存储器重映射)
保留给片内RAM存储器
16KB片内静态RAM
保留给片内FLASH存储器
256KB片内非失忆性存储器(LPC2124/2214)
128KB片内非失忆性存储器(LPC2114/2212)
ARM系统存储器映射
0xFFFFFFFF
0xF0000000
0xE0000000
0xC0000000
0x84000000
0x83000000
0x82000000
0x81000000
0x80000000
0x7FFFE000
0x40004000
0x40000000
0x00040000
0x00020000
0x00000000
8、下图是ARM系统中断向量控制器(VIC)内部结构示意图,试说明VIC的功能特点。
IRQ中断状态寄存器
VICIRQStatus
向量IRQ0控制寄存器
VICVectCntIO
向量IRQO
向量IRQO使能
中断源
向量地址0寄存器
中断状态寄存器
VICRawIntr
IRQO
VectAddrO
向量IRQ15
非向量IRQ
向量IRQ15控制寄存器
VICVectCntl15
向量IRQ15使能
中断源
VICVectAddrO
向量地址15寄存器
VICVectAddr15
IRQ15
VectAddr15
默认向量地址寄存器
VICDefVectAddr
DefIRQ
DefVectAddr
硬件优先级选择
IRQO
IRQ15
DefIRQ
―
向量地址选择
■IRQ中断信号
向量地址寄存器
VICVectAddr
9、下图是ARM系统母个I/O端口的内部寄存器控制结构示意图,看图填写下表的寄存器功能说明内容。
序号
通用名称
功能说明
1
IOPIN
从该寄存器中可以读出引脚的当前状态,和方向模式无关
2
ioset
该寄存器控制引脚输出高电平,为1时高电平,为0无效
3
iodir
该寄存器单独控制每个10口的方向,为1时输出,为0时输入
4
ioclr
该寄存器控制引脚输出低电平,为1时低电平为0无效
1O、下图是ARM系统内部的定时器结构示意图,试说明内部定时器的功能特点。
*中断标志寄存器(IR)
匹配功能
捕获功能
匹配寄存器0(MRO)匹配寄存器1(MR1)匹配寄存器2(MR2)匹配寄存器3(MR3)
定时器计数值比较器
匹配控制寄存器(MCR)
外部匹配寄存器(EMR)«
MAT[3:
0]
捕获控制寄存器(CCR)
”捕获寄存器■捕获寄存器+捕获寄存器.捕获寄存器
0
1
2
3
CRO)
CR1)(
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 练习题