嵌入式复习题剖析.docx
- 文档编号:896678
- 上传时间:2023-04-30
- 格式:DOCX
- 页数:19
- 大小:26.70KB
嵌入式复习题剖析.docx
《嵌入式复习题剖析.docx》由会员分享,可在线阅读,更多相关《嵌入式复习题剖析.docx(19页珍藏版)》请在冰点文库上搜索。
嵌入式复习题剖析
复习题
一、填空
(1)嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户应用程序4个部分组成。
(2)嵌入式计算机系统是整个嵌入式系统的核心,可以分为硬件层、中间层、系统软件层和应用软件层
(3)一个32位(即字)的微处理器上定义一个int类型的常量a,其内存地址位于0x6000处,其值用十六进制数表示为0x23456789。
当采用小端存储法时地址0x6000处数据为0x89,地址0x6003处数据为0x23。
当采用大端存储法时地址0x6000处数据为0x23,地址0x6003处数据为0x89。
(4)ARM微处理器支持用户、快中断、中断、管理、中止、系统和未定义这7种处理器运行模式,除了用户模式外,其余的均为特权模式。
其中除去用户模式和系统模式以外的5种又称为异常模式(ExceptionModes),常用于处理中断或异常,以及需要访问受保护的系统资源等情况。
(5)ARM处理器共有37个寄存器,被分为若干个组(BANK),这些寄器包括:
31个通用寄存器和6个状态寄存器
(6)ARM体系结构支持7种类型的异常,分别是:
复位、未定义指令、软件中断、指令预取中止、数据中止、IRQ(外部中断请求)、FIQ(快速中断请求)
(7)S3C2410A共有117个多功能复用输入/输出端口(I/O口),分为端口A~端口H共8组
(8)中断请求的优先级逻辑是由7个仲裁器组成的,其中包括6个一级仲裁器和1个二级仲裁器
(9)在主存储器和CPU之间采用高速缓冲存储器(cache)被广泛用来提高提高存储器系统的性能,
(10)MMU(MemoryManageUnit,存储管理单元)在CPU和物理内存之间进行地址转换,将地址从逻辑空间映射到物理空间,这个转换过程一般称为内存映射。
(11)FlashMemory是一种非易失性存储器NVM(Non-VolatileMemory),根据结构的不同可以将其分成NORFlash和NANDFlash两种。
(12)S3C2410A可以在一个外部NANDFlash存储器上执行启动代码。
为了支持NANDFlash的启动装载(bootloader),S3C2410A配置了一个叫做“Steppingstone”的内部SRAM缓冲器。
(13)S3C2410A的UART提供3个独立的异步串行I/O口(SIO),它们都可以运行于中断模式或DMA模式。
(14)S3C2410A的UART由波特率发生器、发送器、接收器以及控制单元组成。
(15)设备驱动层也称为BSP(BoardSupportPackage,板级支持包)主要包括BootLoader(引导加载程序)和设备驱动程序两个方面的内容
(16)嵌入式操作系统两个基本功能是:
构成一个易于编程的虚拟机平台、系统资源的管理者
(17)所有的EOS都有一个内核(kernel),内核是系统当中的一个组件,它包含了任务管理、存储管理、输入/输出(I/O)设备管理和文件系统管理四个功能模块。
(18)MDK-ARM开发工具是ARM公司目前最新的针对各种嵌入式处理器的软件开发工具。
主要包含μVisionIDE、RVCT、RTL实时库和ULINKUSB-JTAG仿真器4个核心组成部分
(19)Bootloader是在嵌入式操作系统内核运行之前运行的一段小程序,也是系统开机后执行的第一段程序。
(20)对于嵌入式系统的开发人员而言,Bootloader通常包含“启动加载”和“下载”这两种不同的工作模式。
(21)桌面Linux的GNU开发工具链(toolchain)主要包括gcc编译器、glibc以及GNUbinutils三个大的模块。
(22)vi编辑器的使用按不同的使用方式可以分为3种状态,分别是命令模式(CommandMode)、输入模式(InsertMode)和末行模式(LastLineMode)
(23)对源文件hello.c进行编译,用gcc进行编译生成hello可执行文件,在命令行状态下输入指令为:
#gcc–chello.c–ohello
(24)Linux内核的核心子系统和通用操作系统的功能差不多,主要包括内存管理、进程管理、进程间通信、虚拟文件系统、网络接口
(25)Linux利用虚拟文件系统,把文件系统操作和不同文件系统的具体实现细节分离了开来。
(26)VFS提供了两个接口,一是个是与具体的文件系统的接口,另一个是对用户的接口
(27)内核移植一般包括内核配置、内核编译和内核下载3大步骤。
(28)配置内核的方法通常有:
makeconfig、makeoldconfig、makemenuconfig、makexconfig。
其中makemenuconfig为目前被公认为是使用最广的配置内核方法,makexconfig的界面最为友好,
(29)Linux系统采用设备文件来统一管理硬件设备,从而隐藏硬件设备的特性及管理细节,简化应用程序的编写
(30)设备文件的属性主要由三部分组成:
文件类型、主设备号和次设备号
(31)在Linux操作系统下有3类主要的设备文件类型:
字符设备、块设备、网络设备
(32)将生成的可执行文件加载到嵌入式目标系统上最为常见的方式有U盘复制、FTP下载、NFS挂载方式
(33)嵌入式Linux的联机环境下,常用的调试代理工具为GDBSERVER。
二、判断题
(1)所有嵌入式微处理体系结构器都采用冯•诺依曼结构(×)
(2)所有嵌入式微处理器体系结构都采用哈佛结构(×)
(3)采用小端字节顺序存储法时低字节数据存放在内存低地址处,高字节数据存放在内存高地址处(√)
(4)大端字节顺序存储法时高字节数据存放在低地址处,低字节数据存放在高地址处。
(√)
(5)ARM处理器系列ARM6的体系版本为ARMv6(×)
(6)目前主流的32位嵌入式微处理器系列主要有ARM系列、MIPS系列、PowerPC系列等。
属于这些系列的嵌入式微处理器产品很多,有千种以上。
(√)
(7)ARM(AdvancedRISCMachine)公司的ARM微处理器体系结构目前被公认为是嵌入式应用领域领先的32位嵌入式RISC微处理器结构。
(√)
(8)ARM微处理器支持Thumb(16位)/ARM(32位)双指令集(√)
(9)ARM微处理器采用3级流水线/5级流水线技术(√)
(10)ARM微处理器带有指令cache和数据cache,大量使用寄存器,指令执行速度更快。
(√)
(11)ARM微处理器仅支持大端格式存储字数据(×)
(12)ARM微处理器仅支持小端格式存储字数据(×)
(13)ARM微处理器支持字节(byte,8位)、半字(halfword,16位)和字(word,32位)这3种数据类型(√)
(14)ARM微处理器通过AMBA可以方便地扩充各种处理器及I/O,可以把DSP、其他处理器和I/O(如UART、定时器和接口等)都集成在一片芯片中。
(√)
(15)ARM微处理器采用存储器映像I/O的方式,即把I/O端口地址作为特殊的存储器地址。
(√)
(16)ARM允许接16个协处理器,如CP15用于系统控制,CP14用于调试控制器。
(√)
(17)在处理异常之前,当前处理器的状态必须保留,当异常处理完成之后,恢复保留的当前处理器状态,继续执行当前程序(√)
(18)ARM体系结构中的异常单片机的中断的概念完全等同(×)
(19)ARM处理器复位后,在禁止中断的管理模式下,程序跳转到复位异常处理程序处执行(从地址0x00000000或0xFFFF0000开始执行指令)。
(√)
(20)当ARM处理器或协处理器遇到不能处理的指令时,产生未定义指令异常。
(√)
(21)在应用程序的设计中,异常处理采用的方式是在异常向量表中的特定位置放置一条跳转指令,跳转到异常处理程序。
(√)
(22)ARM体系结构使用232个字节的单一、线性地址空间。
将字节地址做为无符号数看待,范围为0~232-1。
(√)
(23)地址位于A的字由地址为A、A+1、A+2和A+3的字节组成;(√)
(24)地址位于A的半字由地址为A和A+1的字节组成;(√)
(25)ARM处理器有的带有指令Cache和数据Cache,但不带有片内RAM和片内ROM。
系统所需的RAM和ROM(包括Flash)都通过总线外接。
(√)
(26)ARM系统使用存储器映射I/O。
I/O口使用特定的存储器地址,当从这些地址加载(用于输入)或向这些地址存储(用于输出)时,完成I/O功能。
(√)
(27)为了便于片上系统SoC的设计,ARM可以通过协处理器(CP)来支持一个通用指令集的扩充,通过增加协处理器来增加系统的功能。
(√)
(28)在逻辑上,ARM可以扩展16个(CP15~CP0)协处理器(√)
(29)JTAG(JointTestActionGroup,联合测试行动小组)是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试。
(√)
(30)S3C2410是Samsung公司推出的16/32位RISC处理器,主要面向高性价比、低功耗的手持设备应用(√)
(31)S3C2410A在片上集成单独的16KB指令Cache和16KB数据Cache(√)
(32)S3C2410A在片上集成用于虚拟存储器管理的MMU(√)
(33)S3C2410A在片上集成NANDFlashBootLoader(√)
(34)S3C2410A的CPU内核采用的是16/32位ARM920T内核,同时还采用了AMBA新型总线结构。
(√)
(35)S3C2410A的存储器总共有8个存储器bank(bank0~bank7):
6个存储器bank用于ROM,SRAM等;2个存储器bank用于ROM,SRAM,SDRAM等(√)
(36)S3C2410A每个I/O口可以通过软件对进行配置。
每个引脚的功能必须在启动主程序之前进行定义(√)
(37)Flashmemory(闪速存储器,闪存)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。
(√)
(38)FlashMemory是一种非易失性存储器NVM(Non-VolatileMemory),根据结构的不同可以将其分成NORFlash和NANDFlash两种。
(√)
(39)S3C2410A可以在一个外部NANDFlash存储器上执行启动代码。
为了支持NANDFlash的启动装载(bootloader),S3C2410A配置了一个叫做“Steppingstone”的内部SRAM缓冲器。
(√)
(40)S3C2410A中,当系统启动时,NANDFlash存储器的前4KB将被自动加载到Steppingstone中,然后系统自动执行这些载入的启动代码。
(√)
(41)SDRAM可读/可写,不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器。
(√)
(42)在嵌入式系统中,SDRAM主要用做程序的运行空间、数据及堆栈区。
(√)
(43)当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度。
同时,系统及用户堆栈、运行数据也都放在SDRAM中。
(√)
(44)S3C2410A中UART的发送器和接收器包含16字节的FIFO缓冲寄存器和数据移位器。
(√)
(45)在I2C总线上,只需要两条线:
串行数据SDA线和串行时钟SCL线,它们用于总线上器件之间的信息传递。
(√)
(46)I2C总线是具备总线仲裁和高低速设备同步等功能的高性能多主机总线,直接用导线连接设备,通信时无需片选信号(√)
(47)设备驱动层也称为BSP(BoardSupportPackage,板级支持包),在BSP中把所有与硬件相关的代码都封装起来,为操作系统提供一个虚拟的硬件平台,操作系统运行在这个虚拟的硬件平台上。
(√)
(48)嵌入式Linux(EmbeddedLinux)是指对标准Linux进行小型化剪裁处理之后,可固化在存储器或单片机中,适合于特定嵌入式应用场合的专用Linux操作系统。
(√)
(49)物理地址也叫内存地址、绝对地址或实地址。
将系统内存分割成很多个大小相等的存储单元,如字节或字,每个单元给它一个编号,这个编号就称为物理地址。
(√)
(50)逻辑地址也叫相对地址或虚地址。
用户的程序经过汇编或编译后形成目标代码,而这些目标代码通常采用的就是相对地址的形式,其首地址为0,其余指令中的地址都是相对于这个首地址来编址的。
(√)
(51)逻辑地址和物理地址是完全不同的,不能用逻辑地址来直接访问内存单元。
(√)
(52)地址映射是由存储管理单元MMU来完成的。
当一条指令在CPU当中执行时,在需要访问内存时,CPU就发送一个逻辑地址给MMU,MMU负责把这个逻辑地址转换为相应的物理地址,并根据这个物理地址去访问内存。
(√)
(53)Bootloader是在嵌入式操作系统内核运行之前运行的一段小程序,也是系统开机后执行的第一段程序。
(√)
(54)通过Bootloader,可以初始化硬件设备、建立内存空间,从而将系统的软硬件环境设置成一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。
(√)
(55)Bootloader是依赖于底层硬件而实现的,因此建立一个通用的嵌入式系统Bootloader几乎是不可能的。
(√)
(56)在嵌入式系统中,可以建立一个通用的嵌入式系统Bootloader(×)
(57)Bootloader硬件初始化的这段程序是用汇编语言编写的,其后就用C语言编写。
(√)
(58)Bootloader都是用汇编语言编写的。
(×)
(59)Bootloader都是用C语言编写的。
(×)
(60)在Linux系统中,“文件”用来保存数据,而“文件系统”可以让用户组织、操纵以及存取不同的文件。
(√)
(61)目前,Linux已经可以支持20种以上的文件系统(√)
(62)通过使用NFS,用户和程序可以象访问本地文件一样访问远端系统上的文件。
(√)
(63)内核是嵌入式Linux系统的核心部分,Linux的内核和文件系统、图形用户系统(GUI窗口系统)可以分开,它们的开发、移植、下载甚至运行都是可以分开的。
(√)
(64)内核下载就是将内核映像文件烧写到目标板上,内核下载的前提是已经在目标板上下载了相应的Bootloader程序(√)
(65)Linux系统采用设备文件来统一管理硬件设备,从而隐藏硬件设备的特性及管理细节,简化应用程序的编写(√)
(66)由于Linux将设备当做文件来处理,因此,对设备进行操作的调用格式与对文件的操作类似。
(√)
(67)在Linux操作系统中,GUI系统和操作系统内核是分开的,开发人员可以自由选择组合,用户也可以选择安装或不安装(√)
(68)MicrosoftWindows的操作系统则将桌面进行捆绑集成,用户不能自由选择。
(√)
(69)图形用户接口(GraphicsUserInterface,GUI),是操作系统和用户的人机接口。
(√)
(70)MiniGUI是1998年底我国推出的一款面向嵌入式系统或者实时系统的GUI系统。
(√)
(71)MiniGUI已经广泛应用于通讯、医疗、工控、电力、机顶盒、多媒体终端等领域。
(√)
(72)基于MiniGUI的开发可以在Linux或Windows操作系统下进行。
由于MiniGUI完全用C来编写,具有非常好的移植性,也使得MiniGUI应用程序的交叉编译工作十分方便。
(√)
(73)Qt是一个已经形成事实上的标准的C++框架,用于高性能的跨平台软件开发,Qt已成为数以万计的商业和开源应用程序的基础(√)
(74)使用Qt您只需一次性开发应用程序,无须重新编写源代码,便可跨不同桌面和嵌入式操作系统(如EmbeddedLinux,MacOS,Windows,Linux/X11,WindowsCE,Symbian,Maemo等)部署这些应用程序。
(√)
(75)
(76)
(77)
(78)
(79)
(80)
三、简答题
(1)嵌入式系统定义(国内)
答:
以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。
(2)RTOS的定义
答:
RTOS是指能够在指定或者确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统,系统能够处理和存储控制系统所需要的大量数据。
(3)ARM微处理器的异常定义
答:
在一个正常的程序流程执行过程中,由内部或外部源产生的一个事件使正常的程序产生暂时的停止时,称之为异常。
(4)S3C2410A与配置I/O口相关的寄存器有哪些
答:
端口控制寄存器(GPACON~GPHCON)
端口数据寄存器(GPADAT~GPHDAT)
端口上拉寄存器(GPBUP~GPHUP)
杂项控制寄存器
以及外部中断控制寄存器(EXTINTN)等。
(5)简述采用DMA方式进行数据传输的过程
答:
1)外设向DMA控制器发出DMA请求。
2)DMA控制器向CPU发出总线请求信号。
3)CPU执行完现行的总线周期后,向DMA控制器发出响应请求的回答信号。
4)CPU将控制总线、地址总线及数据总线让出,由DMA控制器进行控制。
5)DMA控制器向外部设备发出DMA请求回答信号。
6)进行DMA传送。
7)数据传送完毕,DMA控制器通过中断请求线发出中断信号。
CPU在接收到中断信号后,转人中断处理程序进行后续处理。
8)中断处理结束后,CPU返回到被中断的程序继续执行。
CPU重新获得总线控制权。
(6)简述MMU的功能
答:
1)虚拟存储空间到物理存储空间的映射。
2)存储器访问权限的控制。
3)设置虚拟存储空间的缓冲的特性。
(7)简述S3C2410ANANDFlash控制器的基本特性
答:
◆NANDFlash模式:
支持读/擦除/编程NANDFlash存储器
◆自动启动模式:
复位后,启动代码被传送到Steppingstone中。
传送完毕后,启动代码在Steppingstone中执行。
◆具有硬件ECC产生模块
◆在NANDFlash启动后,Steppingstone4KB内部SRAM缓冲器可以作为其他用途使用。
◆NANDFlash控制器不能通过DMA访问,可以使用LDM/STM指令来代替DMA操作。
(8)Bootloader启动过程中的stage1主要完成工作步骤
答:
1.硬件设备初始化
2.为加载Bootloader的stage2准备RAM空间
3.复制Bootloader的stage2到RAM空间中
4.设置好堆栈
5.跳转到stage2的C入口点main()函数处
(9)Bootloader启动过程中的stage2主要完成工作步骤
答:
1.初始化本阶段要使用到的硬件设备
2.检测系统内存映射(memorymap)
3.将kernel映像和根文件系统映像从flash上读到RAM空间中
4.为内核设置启动参数
5.调用内核
(10)简述构建交叉开发工具链的过程
答:
1.下载源代码
2.建立环境变量
3.配置、安装binutils
4.配置linux内核头文件
5.第一次编译gcc
6.交叉编译glibc
7.第二次编译gcc
四、选择题
(1)RTOS的特点(ABCD)
(A)约束性(B)可预测性(C)可靠性(D)交互性
(2)常用的基于Flash的文件系统有:
(ABCD)
(A)jffs2(B)yaffs(C)cramfs(D)romfs
(3)配置内核的方法通常有(ABCD)
(A)makeconfig(B)makeoldconfig
(C)makemenuconfig(D)makexconfig
(4)在Linux操作系统下有主要的设备文件类型有(ABD)
(A)字符设备(B)块设备
(C)线性设备(D)网络设备
(5)目前桌面Linux/UNIX系统中最常用的桌面GUI窗口系统有(AB)
(A)KDE(B)GNOME
(C)XWindow系统(D)Qt
(6)典型的嵌入式GUI系统有(ABCDE)
(A)紧缩的XWindow系统(B)MiniGUI
(C)Nano-X(D)TinyX(E)Qt等。
(7)MiniGUI可以配置成的运行模式有(ACD)
(A)MiniGUI-Threads模式
(B)MiniGUI-Common模式
(C)MiniGUI-Processes模式
(D)MiniGUI-Standalone模式
(8)Qt是一个跨平台的应用程序和UI框架,它包括(ABC)
(A)跨平台类库(B)集成开发工具
(C)跨平台IDE(D)调试器
(9)Qt提供Qt产品的授权方式有(ABC)
(A)商业(B)LGPL(C)GPL(D)AOE
(10)嵌入式系统组成一般包括:
(ABCD)
(A)嵌入式微处理器(B)外围硬件设备
(C)嵌入式操作系统(D)用户应用程序
(11)嵌入式计算机系统是整个嵌入式系统的核心,可以分为(ABCD)
(A)硬件层(B)中间层
(C)系统软件层(D)应用软件层
(12)MDK-ARM开发工具是ARM公司目前最新的针对各种嵌入式处理器的软件开发工具。
主要包含(ABCD)
(A)μVisionIDE(B)RVCT
(C)RTL实时库(D)ULINKUSB-JTAG仿真器
五、指令解释
(1)寄存器寻址
MOVR1,R2;R1←R2
SUBR0,R1,R2;R0←R1-R2
(2)立即寻址
ADDR0,R0,#1;R0←R0+1
MOVR0,#0xff00;R0←0xff00
(3)寄存器移位寻址
MOVR0,R2,LSL#3
;R2的值左移3位,结果放入R0,即R0=R2*8
ANDSR1,R1,R2,LSLR3
;R2的值左移R3位,然后和R1相与操作,结果放入R1
(4)寄存器间接寻址
LDRR0,[R1];R0←[R1]
STRR0,[R1];[R1]←R0
(5)变址寻址
LDRR2,[R3,#4]
;R2←[R3+4]
;将R3中的数值加4作为地址,取出此地址的数值保存在R2中
STRR1,[R0,#-2]
;[R0-2]←R1
;将R0中的数值减2作为地址,把R1中的内容保存到此地址位置
(6)多寄存器寻址
LDMIAR0,{R1,R2,R3,R4}
;R1←[R0]
;R2←[R0+4]
;R3←[R0+8]
;R4←[R0+12]
(7)
Data_inEQU100;定义标号为Data_in的值为100
GBLA
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 嵌入式 复习题 剖析
![提示](https://static.bingdoc.com/images/bang_tan.gif)