史上最详细的嵌入式试题集含答案.docx
- 文档编号:4748759
- 上传时间:2022-12-08
- 格式:DOCX
- 页数:35
- 大小:113.19KB
史上最详细的嵌入式试题集含答案.docx
《史上最详细的嵌入式试题集含答案.docx》由会员分享,可在线阅读,更多相关《史上最详细的嵌入式试题集含答案.docx(35页珍藏版)》请在冰豆网上搜索。
史上最详细的嵌入式试题集含答案
1、ARM微处理器有7种工作模式,它们分为两类非特权模式、特权模式。
其中用户模式属于非特权模式
2、ARM支持两个指令集,ARM核因运行的指令集不同,分别有两个状态ARM、Thumb,状态寄存器CPSR的T位反映了处理器运行不同指令的当前状态
3、ARM核有多个寄存器,其中大部分用于通用寄存器,有小部分作为专用寄存器,
R15寄存器用于存储PC,R13通常用来存储SP
ARM处理器有两种总线架构,数据和指令使用同一接口的是冯诺依曼,数据和指令分开使用不同接口的是哈佛结
4、ARM微处理器复位后,PC的地址通常是0x0,初始的工作模式是Supervisor。
5、ARM微处理器支持虚拟内存,它是通过系统控制协处理器CP15和MMU(存储管理部件)来进行虚拟内存的存储和管理。
当系统发生数据异常和
指令领取异常时,异常处理程序透过嵌入式操作系统的内存管理机制,通过MMU交换物理内存和虚拟内存的页面,以保证程序正常执行。
6、编译链接代码时,有两种存储代码和数据的字节顺序,一种是小端对齐,另一种是打断对齐
7、构建嵌入式系统开发环境的工具链有多种,其中开放源码的工具链是GNU工具链,ARM公司提供的工具链是ADS工具链
计算机有CISC和RISC两种类型,以ARM微处理器为核心的计算机属于RISC类型,其指令长度是定长的
1、目前使用的嵌入式操作系统主要有哪些?
请举出六种较常用的。
WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任选六
2、ARM系统中的堆栈有四种,如下图。
请按图标出四种堆栈的类型。
ATPCS编程规范约定使用的堆栈是哪一种?
答:
FD、FA、ED、EA。
ATPCS编程规范约定使用的堆栈是FD
3、BootLoader在嵌入式系统中主要起什么作用?
完成哪些主要的工作?
答:
BootLoader是在嵌入式系统复位启动时,操作系统内核运行前,执行的一段程序。
通过BootLoader,初始化硬件设备,建立内存和I/O空间映射图,为最终加载操作系统内核调整好适当的系统软硬件环境。
4、搭建嵌入式开发环境,连接目标板,一般使用什么通信接口连接?
在Windows主机上使用什么软件建立连接?
在Linux主机上使用什么软件建立连接?
1、答:
RS-232,以太网口、并口
在Windows主机上使用超级终端软件
在Linux主机上使用Minicom软件
5嵌入式开发环境主要包括哪些组件?
嵌入式系统开发需要交叉编译和在线调试的开发环境,主要包括
●宿主机
●目标机(评估电路板)
●基于JTAG的ICD仿真器、或调试监控软件、或在线仿真器ICE
●运行于宿主机的交叉编译器和链接器、以及开发工具链或软件开发环境
●嵌入式操作系统
6在进行基于ARM核的嵌入式系统软件开发时,调用如下函数:
intdo_something(intarg1,void*arg2,chararg3,int*arg4)
这四个参数通过什么方式从调用程序传入被调函数?
根据ATPCS编程规范,调用函数和子程序通过R0——R3四个寄存器传递参数,超过四个参数使用堆栈传递。
因此arg1通过R0传入,arg2,通过R1传入,arg3通过R2传入,arg4通过R3传入
7目前使用的嵌入式操作系统主要有哪些?
请举出六种较常用的。
WindowsCE/WindowsMobile、VxWork、Linux、uCos、Symbian、QNX任选六
1、写一条ARM指令,完成操作r1=r2*3(4分)
ADDR1,R2,R2,
LSL#1
2、初始值R1=23H,R2=0FH执行指令BICR0,R1,R2,LSL#1后,寄存器R0,R1的值分别是多少?
(4分)
R0=21H,R1=23H
3、说明指令STMIAr12!
{r0-r11}的操作功能。
(4分)
将R0-R11十二个寄存器中的32位数据,存储到R12地址指针为起始地址的内存中,地址的操作方式是先操作、后增加,并更新地址。
4、写一段ARM汇编程序:
循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。
程序框架如下,补充代码完成上述功能。
(8分)
AREAtotal,CODEREADONLY
ENTRY
start
MOVr4,#0
ADRr0,myarray
;在此补充代码
loop
LDRr1,[r0],#4
ADDr4,r4,r1
CMPr1,#0
BNEloop
5、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程序代码如下。
要求阅读程序,在程序中的注释符“//”后,说明该句程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。
(8分)
strtest.c
#include
externvoidstrcopy(char*d,constchar*s);
intmain()
{constchar*srcstr="Firststring-source";
chardststr[]="Secondstring-destination";
printf("Beforecopying:
\n");
printf("'%s'\n'%s'\n",srcstr,dststr);//
strcopy(dststr,srcstr);//
printf("Aftercopying:
\n");
printf("'%s'\n'%s'\n",srcstr,dststr);//
return0;
}
scopy.s
AREASCopy,CODE,READONLY
EXPORTstrcopy
strcopy
LDRBr2,[r1],#1;
STRBr2,[r0],#1;
CMPr2,#0;
BNEstrcopy;
MOVpc,lr;
END
//输出源串和目标串(8分)
//调用strcopy函数
//输出复制后的源串和目标串
;r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1
;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1
;测试串尾标志\0
;非零转标号strcopy
;返回
一、程序测试题(共24分)
1、写一段ARM汇编程序:
循环累加队列myarray中的所有元素,直到碰上零值元素,结果放在r4中。
程序框架如下,补充代码完成上述功能。
(8分)
AREAtotal,CODEREADONLY
ENTRY
start
MOVr4,#0
ADRr0,myarray
;在此补充代码
答:
loop
LDRr1,[r0],#4
ADDr4,r4,r1
CMPr1,#0
BNEloop
stop
Bstop
myarray
DCD0x11
DCD0x22
……
DCD0x0
END
2、有如下程序段,画出程序流程图,并回答执行程序以后R0的值是多少。
(8分)
numEQU2
start
MOVr0,#0
MOVr1,#5
MOVr2,#2
BLfunc
stop
Bstop
func
CMPr0,#num
MOVHSpc,lr
ADRr3,JumpTable
LDRpc,[r3,r0,LSL#2]
JumpTable
DCDDoA
DCDDoS
DoA
ADDr0,r1,r2
MOVpc,lr
DoS
SUBr0,r1,r2
MOVpc,lr
END
答:
R0为0调用DoA,R0为1调用DoS,R0大于2直接返回,流程图略。
R0=7
3、这是一个由源程序strtest.c和scopy.s组成的混合程序项目,通过调用strcopy完成字符串复制,程序代码如下。
要求阅读程序,在程序中的注释符后,说明该句程序的作用,并说明extern和EXPORT伪指令的在程序中的作用。
(8分)
strtest.c
#include
externvoidstrcopy(char*d,constchar*s);
intmain()
{constchar*srcstr="Firststring-source";
chardststr[]="Secondstring-destination";
printf("Beforecopying:
\n");
printf("'%s'\n'%s'\n",srcstr,dststr);//输出源串和目标串
strcopy(dststr,srcstr);//调用strcopy函数
printf("Aftercopying:
\n");
printf("'%s'\n'%s'\n",srcstr,dststr);//输出复制后的源串和目标串
return0;
}
scopy.s
AREASCopy,CODE,READONLY
EXPORTstrcopy
strcopy
LDRBr2,[r1],#1;r1指向源串,从源串载入一个字节的字符到r2,并更新r1=r1+1
STRBr2,[r0],#1;r0指向目标串,从r2保存一个字节的字符到目标串,并更新r0=r0+1
CMPr2,#0;测试串尾标志\0
BNEstrcopy;非零转标号strcopy
MOVpc,lr;返回
END
一、填空题(请将答案填入题后括号中):
共10小题,每小题2分,满分20分。
1、一般而言,嵌入式系统的构架可以分为4个部分:
分别是(处理器)、存储器、输入/输出和软件,一般软件亦分为操作系统相关和(应用软件)两个主要部分。
2、根据嵌入式系统使用的微处理器,可以将嵌入式系统分为嵌入式微控制器,(嵌入式DSP处理器),(嵌入式微处理器)以及片上系统。
3、操作系统是联接硬件与应用程序的系统程序,其基本功能有(进程管理)、进程间通信、(内存管理)、I/O资源管理。
4、从嵌入式操作系统特点可以将嵌入式操作系统分为(实时操作系统)和分时操作系统,其中实时系统亦可分为(硬实时系统)和软实时系统。
5、内核负责管理各个任务,或者为每个任务分配CPU时间,并且负责任务之间的(通信),内核的基本服务是(任务切换)。
6、嵌入式开发一般采用(宿主机/目标机方式)方式,其中宿主机一般是指(PC机或者台式机)。
7、哈佛体系结构数据空间和地址空间(分开),ARM7TDMI采用(冯诺依曼体系)的内核架构。
8.ARM7TDMI采用(3)级流水线结构,ARM920TDMI采用(5)级流水线。
9.按操作系统的分类可知,Dos操作系统属于顺序执行操作系统,Unix操作系统属于(分时)操作系统,VxWorks属于(实时嵌入式)操作系统。
10、ARM7TDMI中,T表示支持16位Thumb指令集,D表示(在片可调试),M表示内嵌乘法器Multiplier,I表示(嵌入式ICE),支持在线断点和调试。
二、选择题(请将答案填入题后括号中):
共10小题,每小题2分,满分20分。
1、要使CPU能够正常工作,下列哪个条件不是处理器必须满足的。
(D)
(A)处理器的编译器能够产生可重入代码(B)在程序中可以找开或者关闭中断
(C)处理器支持中断,并且能产生定时中断(D)有大量的存储空间
2、下面哪种操作系统最方便移植到嵌入式设备中。
(D)
(A)DOS(B)unix(C)Windowsxp(D)linux
3、下面哪个选项不是SUB设备的特点。
(B)
(A)串行通信方式(B)不可热拨插
(C)分HOST、DEVICE和HUB(D)通信速率比RS232快
4、下面哪种嵌入式操作系统很少用于手机终端设备上。
(C)
(A)Symbian(B)WinCE(C)uc/os(D)linux
5、以下哪项关于SRAM和DRAM的区别是不对。
(A)
(A)SRAM比DRAM慢(B)SRAM比DRAM耗电多
(C)DRAM存储密度比SRAM高得多(D)DRM需要周期性刷新
6、uc/os操作系统不包含以下哪几种状态。
(C)
(A)运行(B)挂起(C)退出(D)休眠
7、0x07&0x11的运算结果是。
(A)
(A)0x01(B)0x11(C)0x17(D)0x07
8、以下哪种方式不是uc/os操作系统中任务之间通信方式。
(C)
(A)信号量(B)消息队列(C)邮件(D)邮箱
9、以下哪种方式不是文件系统的格式。
(B)
(A)FAT(B)DOS(C)NTFS(D)Ext
10、在将uc/os操作系统移植到ARM处理器上时,以下哪些文件不需要修改。
(A)
(A)OS_CORE.C(B)include.h(C)OS_CPU.H(D)OSTaskInit
三、判断题:
共5小题,每小题2分,满分10分。
1、所有的电子设备都属于嵌入式设备。
(F)
2、冯诺依曼体系将被哈佛总线所取代。
(F)
3、嵌入式linux操作系统属于免费的操作系统。
(T)
4、移植操作系统时需要修改操作系统中与处理器直接相关的程序。
(T)
5、USB2.0的最大通信速率为12M/S。
(F)
简答题:
共2小题,每小题10分,满分20分。
1、根据嵌入式系统的特点,写出嵌入式系统的定义。
以应用为中心、以计算机技术为基础、软硬件可裁减、功能、可靠性、成本、体积、功耗严格要求的专用计算机系统
2、试分析实时操作系统的工作状态特点及相互之间的转换。
运行:
获得CPU的控制权;
就绪:
进入任务等待队列,通过调度中转为运行状态;
挂起:
任务发生阻塞,称出任务等待队列,等待系统实时事件的发生而被唤醒,从而转为就绪或者运行;
休眠:
任务完成或者错误等原因被清除的任务,也可以认为是系统中不存在的任务。
多任务
四、分析计算题:
共2小题,每小题10分,满分20分。
1、试写抢占式和非抢占式的区别。
执行的过程中对中断处理方式不一样,抢先式:
某一中断执行完成后,如果有更高优先级的任务处于就绪状态,将执行更高优先级任务,而非抢占式不一样,一个任务只有主动放弃CPU的控制权,其它任务才能够获得CPU的控制权。
2、从嵌入式系统底层到上层应用软件,试分析嵌入式计算系统的组成主要分为哪几个部分,并写出各部分所完成的功能。
(1)硬件层;
(2)中间层(嵌入式系统初始化,硬件相关的驱动程序);(3)软件层(操作系统、文件系统、GUI,网络及通用组件);(4)功能层。
五、专业名词解释(写出以下英文简写对应的中文名称):
共5小题,每小题2分,满分10分。
(1)RTOS
(2)CISC(3)Kernel(4)Scheduler(5)non-preemptive
(1)RTOS(实时操作系统);
(2)CISC(复杂指令集);
(3)Kernel(内核)(4)Scheduler(调度)
(5)non-preemptive(非抢先式)
1.请简述嵌入式系统的设计过程。
嵌入式系统得设计过程:
(1)系统定义与需求分析
(2)系统设计方案的初步确立
(3)初步设计方案性价比评估与方案评审论证
(4)完善初步方案、初步方案实施
(5)软硬件集成测试
(6)系统功能性能测试及可靠性测试
2.简述ARM处理器的工作状态。
ARM处理器的工作状态:
(1)ARM状态:
32位,ARM状态下执行字对准的32位ARM指令;
(2)Thumb状态:
16位,Thumb状态下执行半字对准的16位Thumb指令。
在Thumb状态下,程序计数器PC使用位1选择另一个半字。
3.简述ARM处理器的7种运行模式及各自的用途。
ARM处理器的7种运行模式:
(1)用户模式:
正常用户模式,程序正常执行模式。
(2)FIQ模式:
处理快速中断,支持高速数据传送或通道处理。
(3)IRQ模式:
处理普通中断。
(4)SVC模式:
操作系统保护模式,处理软件中断。
(5)中止模式:
处理存储器故障,实现虚拟存储器和存储器保护。
(6)未定义模式:
处理未定义的指令陷阱,支持硬件协处理器的软件仿真。
(7)系统模式:
运行特权操作系统任务。
4.简述BLX、SWI、STM、LDM、MOV、MVN的含义。
BLX:
带链接和状态切换的跳转指令SWI:
软件中断指令STM:
批量内存字写入指令
LDM:
加载多个寄存器指令MOV:
数据传送指令MVN:
数据取反传送指令
5.请解释下列程序中的各条指令:
.equx,45/*定义变量x,并赋值为45*/
.equy,64/*定义变量y,并赋值为64*/
.equstack_top,0x1000/*定义栈顶0x1000*/
.global_start/*声明全局变量*/
.text/*将操作符开始的代码编译到代码段*/
_start:
/*程序代码开始标志*/
movsp,#stack_top/*定义堆栈位置*/
movr0,#x/*x的值放入r0*/
strr0,[sp]/*r0的值保存到堆栈*/
movr0,#y/*y的值放入r0*/
ldrr1,[sp]/*取堆栈中的数到r1*/
addr0,r0,r1/*将r0中的数和r1中的数相加的结构放入r0*/
strr0,[sp]/*r0的值保存到堆栈*/
stop:
bstop/*程序结束,进入死循环*/
.end
6.分析说明S3C44B0X的总线优先级顺序。
(1)DRAMrefreshcontroller(DRAM刷新控制器);
(2)LCD_DMA
(3)ZDMA0,1
(4)BDMA0,1
(5)Externalbusmaster(外部总线控制器);
(6)Writebuffer(写缓冲区)
(7)Cache和CPU。
7.S3C44B0X中具有哪几个定时器?
分别有哪些功能特性?
6个16位定时器:
都可以工作在中断或DMA模式。
定时器0、1、2、3、4有PWM功能,定时器5只是一个内部定时器而无输出引脚。
PWM定时器特性为:
Ø6个基于DMA或中断操作的16位定时器
Ø3个8位预分频器,2个5位除法器和1个4位除法器。
Ø输出波形可编程的功率控制器(PWM)
Ø自动重装或短脉冲模式(One-shotPulseMode)
Ø死区发生器
1个看门狗定时器:
看门狗定时器具有以下特性:
Ø带中断请求的普通间隔定时器模式
Ø当定时器计数值达到0时,内部复位信号被激活128MCLK周期
8.S3C44B0X中功耗管理的5种模式是什么?
S3C44B0X中功耗管理的5种模式:
正常模式:
正常运行模式;低速模式:
不加PLL的低时钟频率模式;
空闲模式:
只停止CPU的时钟;停止模式:
停止所有的时钟;
LCD的SL空闲模式:
SL空闲模式的进入将导致LCD控制器开始工作。
此时,CPU和除LCD控制器外的所有外设都停止工作。
9.简述BootLoader的作用。
Bootloader作用:
系统引导程序,负责Linux内核的启动,用于初始化系统资源,包括SDRAM。
这部分代码用于建立Linux内核运行环境和从Flash中装载初始化Ramdisk等。
它首先完成系统硬件的初始化,包括时钟的设置、存储区的映射、堆栈指针的设置等;然后跳转到操作系统内核的入口,将系统控制权交给操作系统。
10.写出S3C44B0X的UART1的初始化设置程序代码。
UART初始化程序:
staticintwhichUart=0;
voidUart_Init(intmclk,intbaud)
{inti;
If(mclk==0)
mclk=MCLK;
rUFCON1=0x0;
rUMCON1=0x0;
rULCON1=0x3;
rUCON1=0x245;
rUBRDIC1=((int)(mclk/16./baud+0.5)-1);
for(i=0;i<100;i++);
}
11ARM常见的寻址方式有哪些?
立即寻址寄存器寻址寄存器间接寻址基址加偏址寻址堆栈寻址块拷贝寻址相对寻址
12嵌入式系统软件的层次结构并简要介绍?
嵌入式系统软件的层次结构:
✧驱动层程序:
驱动层程序是嵌入式系统中不可缺少的重要部分,使用任何的外部设备都需要有相应驱动层程序的支持,他为上层软件提供了设备的操作接口。
驱动层程序一般包括硬件抽象层HAL、板极支持包BSP和设备驱动程序。
✧实时操作系统RTOS:
对于使用操作系统得嵌入式系统而言,操作系统一般以内核映像的形式下载到目标系统中。
内核中通常必需的基本部件是进城管理、进程间通信、内存管理部分,其他部件如文件系统、驱动程序、网络协议等都可以根据用户要求进行配置,并以相关的方式实现。
这样一来,整个嵌入式系统与通用操作系统类似,功能比不带有操作系统得嵌入式强大了很多。
✧操作系统的应用程序接口API:
API是一系列复杂的函数、消息和结构的集合体。
在计算机系统中有很多可通过硬件或外部设备去执行的功能,这些功能的执行可通过计算机操作系统或硬件预留的标准指令调用。
因而系统提供标准的API函数,可加快用户应用程序的开发,统一应用程序的开发标准,也为操作系统版本的升级带来了方便。
应用程序:
用户应用程序主要通过调用系统的API函数对系统进行操作,完成用户应用功能开发。
13试述两种常见的ARM开发环境及其特点?
两种常见的ARM开发环境及其特点:
ADS/SDTIDE开发环境:
它由ARM公司开发,使用了CodeWarrior公司的编译器;
集成了GNU开发工具的IDE开发环境:
它由GNU的汇编器as、交叉编译器gcc、和链接器ld等组成。
14:
S3C44B0XI2C总线接口操作有那四种操作方式?
S3C44B0XI2C总线接口操作的四种操作模式:
主传送模式主接收模式从传送模式从接收模式
15:
嵌入式系统的发展趋势
1.即将迎来以ARM为核心的32位浪潮
嵌入式系统应用的高低端:
以4位、8位单片机或为控制器(MCU)为核心的嵌入式系统,早已广泛的应用于工业控制、军事、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 史上最 详细 嵌入式 试题 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)