《嵌入式系统复习大纲.doc》由会员分享,可在线阅读,更多相关《嵌入式系统复习大纲.doc(13页珍藏版)》请在三一办公上搜索。
1、复习大纲一、英文缩写解释1) SoC2) DSP3) ARM4) RISC5) CISC6) MIPS7) ROM8) RAM9) CPU10) ASIC11) BSP12) GUI13) PLD14) FPGA15) IDE16) USB17) MMU18) JTAG19) SDRAM20) PLL21) SRAM)22) UART23) VFS24) DMA25) BIOS26) GCC27) OS28) NFS29) OSI30) TCP/IP二、填空题1) 嵌入式系统的三个组成要素为“嵌入性”、“专用性”与“计算机系统”。2) ARM7TDMI的TDMI分别代表支持Thumb指令集、片
2、上调试、长乘法与嵌入式跟踪宏单元。3) 宏观上看,嵌入式系统分为嵌入式硬件系统和嵌入式软件系统。4) ARM处理器属于RISC处理器(RISC/CISC)。5) 自顶向下的设计流程主要为需求分析、规格说明、体系结构设计、软硬件构件设计和系统集成。6) 软硬件协同设计是指对系统中的软硬件部分使用统一的描述和工具进行集成开发,核心是软件与硬件同时设计与验证。7) 常用的嵌入式系统软件开发工具有编译器、链接器、仿真器、调试器。8) ARM处理器有7种运行模式,分别为用户模式、快速中断模式、外部中断模式、管理模式、访问终止模式、系统模式、未定义指令模式。9) ARM处理器有2种工作状态,分别为ARM状
3、态和Thumb状态。10) ARM指令集的寻址方式是指处理器根据指令编码信息获得指令操作数的方式。ARM指令集的寻址方式有立即数寻址、寄存器寻址、寄存器移位寻址、寄存器间接寻址、基址变址寻址、相对寻址、多寄存器寻址、块拷贝寻址、堆栈寻址等(列举2种)。11) 指令“MOV R3,#0x3a”的寻址方式为立即数寻址。12) ARM指令集的Load/Store指令主要完成功能是从内存中存取数据。13) ARM处理器的PC寄存器的复位地址为0x0。14) ARM处理器存储访问中,“字对齐”指的是内存地址最后2位必须为0。15) S3C2410定义了4种电源模式,分别为NORMAL模式、IDLE模式、
4、SLOW模式和POWER-OFF模式。16) 常见的两种Flash芯片类型为Nand Flash和Nor Flash。17) Linux进程主要包括4种状态,分别为运行状态、等待状态、暂停状态和僵死状态。18) Linux中文件类型主要有普通文件、目录文件、设备文件、管道文件和链接文件(列举2种)。19) Linux下文件权限分为读、写、执行三种。20) 计算机体系结构中,哈佛结构和冯诺依曼结构的主要差别是指令和数据分开,通常而言ARM7属于冯诺依曼结构,ARM9属于哈佛结构。三、问答题1) 嵌入式系统定义及特点?2) 嵌入式处理器的分类及特点?3) 嵌入式系统的层次结构?4) 嵌入式系统的自
5、顶向下设计流程及每步作用?5) 嵌入式系统软件设计中编译器、汇编器、连接器、调试器的主要作用是什么?6) ARM指令集体系结构及变种?7) ARM处理器的运行模式及对应模式下的寄存器组织?8) ARM处理器的工作状态,ARM与Thumb指令集的关系?9) ARM指令集的寻址方式?10) ARM处理器的异常有哪些?其对应的异常地址是多少?11) 嵌入式系统的存储器分类及特点?12) S3c2410的电源工作模式及作用?13) ARM处理器中,异常中断矢量指的是什么?FIQ、IRQ、Reset对应的入口矢量地址?14) 嵌入式系统的大小端如何设计?15) Linux操作系统的进程状态有哪些?16)
6、 Linux操作系统的进程管理包括哪些功能?17) BootLoader的概念及操作模式?18) BootLoader的启动分哪两个阶段各自的作用?19) 什么是makefile?它有什么作用?20) 什么是交叉编译?它有什么作用?21) 什么是NFS?它有什么作用?22) 计算机体系结构里面哈佛结构和冯诺依曼结构分别指的是什么?四、选择题1 和PC机系统相比,下列哪些不是嵌入式系统所特有的:( )A 系统内核小 B专用性强 C可执行多任务 D系统精简2 ADD R0,R1,#3属于( )寻址方式 A 立即寻址 B 多寄存器寻址 C寄存器直接寻址 D相对寻址3 GET伪指令的含义是( )A 包
7、含一个外部文件 B 定义程序的入口 C定义一个宏 D声明一个变量4 存储一个32位数0x876165到2000H2003H的四个字节单元中,若以小端模式存储,则2000H存储单元的内容为:( )A 0x00 B 0x87 C 0x65 D0x615. 寄存器R13除了可以用作通用寄存器外,还可以做( )A 程序计数器 B 链接寄存器 C 栈指针寄存器 D基地址寄存器6 若R1=2000H,(2000H)=0x86,(2008H)=0x39,则执行指令LDR R0,R1,#8!后R0的值为:( ) A 0x2000 B0x86 C 0x2008 D 0x397. FIQ中断的入口地址是:() A
8、 0x0000001C B0x00000008 C 0x00000018 D 0x000000148. ARM指令集合Thumb指令集分别是( )位 A 8位,16位 B 16位,32位 C 16位 16位 D 32位 16位9 ARM寄存器组有( )个寄存器 A 7 B 32 C 6 D 37 10 下面那个不是ARM处理器的特点( )A 体积小,低功耗,低成本,高性能 B 大多数数据操作都在寄存器中完成寻址方式灵活简单,执行效率高 指令长度不固定11 ARM处理器为 ( )A 16为RISC架构 B32为CISC架构 C 32位RISC架构 D64位RISC架构12 ARM920T系列微处
9、理器是 ( )A 三级流水线结构 B四级流水线结构 C 五级流水线结构 D 六级流水线结构13 要使用WinCE或标准Linux嵌入式操作系统,ARM必须带有 ( )功能 A MMU B MCU C MMC D MUM14 ARM处理器支持以下( )数据类型 A 8位有符号和无符号字节 B 16位有符号和无符号数 C32位有符号和无符号数 D ABC都可以15 ARM处理器正常的程序执行状态是在 ( ) A 系统模式 B 禁止模式 C 管理模式 D用户模式 16在所有工作模式下,( )都指向同一个物理寄存器,即各模式共享 A R0 R7 B R0R12 C R8R12 D R13,R1417寄
10、存器R13在ARM指令中常用来表示 ( ) A 堆栈指针 B PC指针 C子程序返回指针 D 当前程序状态18 ( )用作程序计数器(PC) A R13 BR14 C R15 D R1619 系统复位进入的工作模式是 ( ) A 管理模式 B未定义模式 C中止模式 D定义模式 20能实现把立即数0x3FF5000保存在R0中的指令是( )A LDR R0, =0X3FF5000B LDR R0, 0X3FF5000C MOV R0, 0X3FF5000D MOVX R0,0X3FF500021 指令LDR R0,R1,#4!实现的功能是( )A R0R1+4B R0R1+4,R1R1+4C R
11、0R1,R1R1+4D R0R1,R1R1422 ( )伪指令用于定义一个代码段或数据段 A RLIST B DCB C MAP D AREA23( )伪指令用于定义汇编程序的入口 A ENTRY B START C INITD MAIN24 用汇编指令对R15赋值,可以实现 ( )A 程序的跳转B 实现B指令功能C 子程序返回D ABC都可以 25. 针对没有MMU的ARM芯片,其操作系统可以使用 ( )A Window CE,LinuxB VxworkC uClinux,Uc/OSD 以上都可以. 26 如下那一条指令可以帮助你知道shell命令的用法 ( ) A man B pwd C
12、help D more 27 在大多数Linux发行版中,以下那个属于块设备 ( ) A 串口 硬盘虚拟终端打印机 28 用“useradd jerry”命令来添加一个用户,这个用户的主目录是 ( ) A /home/jerry B /bin/jerry C /var/jerry D /etc/jerry 29. 某文件的组外成员的权限是只读,所有者有全部权限;组内的权限为读写,则该文件的权限为 ( )A 467 B 674 C476 D764 30 怎样创建一个新的文件: ( ) A touch hello.c B mk hello.c C rm hello.c D new hello.c
13、31 在linux中,一般可以用 ()来实现自动编译 A gcc B gdb C make D vi 32 下列提法中,属于ifconfig命令作用范围的是( ) A 编译源程序 B 配置网卡的IP地址 C配置系统内核 D 加载网卡到内核中 33 嵌入式系统应用软件一般在宿主机上开发,在开发目标机上运行,因此需要一个 ( ) A 交互操作系统 B交叉编译 C交互平台 D分布式计算 34 终止一个前台进程可能用到的命令是( ) A kill B +C C shut down D halt35()目录用户存放Linux的源代码 B A /etc B /usr/src C /usr D /home3
14、6. 在Linux系统中,下列的哪个命令用来加载模块( )A insmod B load C init D installmod37NFS( )是系统 A 文件 B 磁盘 C网络文件 D操作38 在使用GCC编译的过程中,如果只想生成目标文件而不进行连接,需要使用选项( )A -c B o C s D E 39. Linux支持网络文件系统NFS,下列哪个命令实现了将位于192.168.1.4机器上的/opt/sirnfs目录挂载到本机/mnt/sirnfs下:( ) A mount t nfs 192.168.1.4:/opt/sirnfs /mnt/sirnfsB mount t nfs
15、/mnt/sirnfs 192.168.1.4:/opt/sirnfsC mount nfs t 192.168.1.4:/opt/sirnfs /mnt/sirnfsD mount nfs t /mnt/sirnfs 192.168.1.4:/opt/sirnfs40. 在下列ARM处理器的各种模式中,只有( )模式不可以自由地改变处理器的工作模式A 用户模式 B 系统模式 C终止模式 D中断模式41、ARM处理器总共37个寄存器,System模式下使用多少个寄存器 ( )A、 17个B、 18个 C、 32个 D、 37个 42、嵌入式系统有硬件和软件部分构成,以下不属于嵌入式系统软件是
16、( )A. 系统软件 B. 驱动 C. FPGA编程软件 D. 嵌入式中间件43、存储一个32位数0x876165到2000H2003H四个字节单元中,若以小端模式存储,则2000H存储单元的内容为 ( )A、0x00B、0x87C、0x61D、0x6544、FIQ的入口地址为0x0000001C ,IRQ中断的入口地址是 ( )A、0x00000000B、0x00000008C、0x00000018D、0x0000001445、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是 ( )A. R0 =( R2 1) + R3 B. R0 = R2 + (R3 1) C. R3
17、= R0+ (R2 1) D. (R3 表示:( )A、输出追加 B、输入追加 C、输出重定向,原来的文件会被改写D、管道54、要给文件file1加上其他人可执行属性的命令是( ) a.chmod a+x b.chown a+x c.chmod o+x d.chown o+x55、对ARM7微处理器说法不正确的是( )。A、兼容16位的Thumb指令集 B、集成式RISC内核C、集成了ICE-RT逻辑 D、哈佛体系结构56、通常所说的32位微处理器是指 ( ) 。A) 地址总线的宽度为32位B) 处理的数据长度只能为32位C) CPU 字长为32位 D) 通用寄存器数目为32个57、( )不是
18、进程和程序的区别。 A. 程序是一组有序的静态指令,进程是一次程序的执行过程 B. 程序只能在前台运行,而进程可以在前台或后台运行 C. 程序可以长期保存,进程是暂时的 D. 程序没有状态,而进程是有状态的58、如果Boot Loader、内核、启动参数以及其他的系统映像四部分在固态存储设备上分别独立存放,则其存储结构的分配顺序应当是:( )。 A . 文件系统、内核、启动参数、Bootloader B . 启动参数、Bootloader、内核、文件系统C . Bootloader、内核、启动参数、文件系统D . Bootloader、启动参数、内核、文件系统59、Boot Loader 的s
19、tage2通常使用C语言实现,以完成复杂的功能,并增加可读性和可移植性,以下哪一步骤属于stage2的内容:( )A . 为加载 Boot Loader 的 stage2 准备 RAM 空间 B . 设置好堆栈 C . 硬件设备初始化 D . 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中60、下面关于Shell的说法,不正确的是: ( )A. 操作系统的外壳 B. 用户与Linux内核之间的接口程序 C. 一个命令语言解释器 D. 一种和C类似的程序语言61、符号“|在shell命令中表示:( )A、输出追加 B、输入追加 C、输出重定向,原来的文件被改写D、管
20、道62、某文件的组外成员的权限为只读;所有者有读执行权限;组内的权限为只写,则该文件的权限为( )A 467 B 642 C 476 D 52463、在ARM Linux体系中,用来处理外设中断的异常模式是( )A、软件中断(SWI) B、未定义的指令异常C、中断请求(IRQ) D、快速中断请求(FIQ)64、如果要将文件名file1修改为file2,下列命令( )可以实现。 A. cp file1 file2 B. mv file1 file2 C. ls file1 file2 D. ll file1 file265、在使用GCC编译器的过程中,以下( )选项可用来指定生成的目标文件名A-
21、c B-o C-S D-E66. 下列哪个命令以文本菜单方式界面配置内核选项:( )A Make menuconfig B make xconfigC make config D make mrproper67、下面关于MMU和Linux描述错误的是:( )A、MMU是内存管理单元Memory Management Unit的缩写B、uClinux可以运行在有MMU的处理器上C、Linux内核功能强大,内存管理功能丰富,即使在没有MMU的处理器上,也可以通过软件实现地址映射。D、Linux系统正是利用MMU,才能使得各个进程有独立的寻址空间68、在CPU和物理内存之间进行地址转换时,( )将地
22、址从虚拟(逻辑)地址空间映射到物理地址空间。A ) TCB B)MMU C)CACHE D)DMA69、为了得到所有的命令行输入的参数,我们可以使用变量: ( )A)$# B)$ C) $0 D)$!70、以下叙述中,不符合RISC指令系统特点的是 ( )。A) 指令长度固定,指令种类少B) 寻址方式种类丰富,指令功能尽量增强C) 设置大量通用寄存器,访问存储器指令简单D) 选取使用频率较高的一些简单指令71、中断向量是指( )A中断处理程序入口地址,B中断向量表起始地址 C中断断点的地址 D中断返回地址 72、下列CPSR寄存器标志位的作用说法错误的是( )A、 N:负数 B、 Z: 零 C
23、、 C: 进位 D、 V: 借位73、ARM处理器总共37个寄存器, SVC模式下使用( )寄存器。A 、17个B、 18个 C、 32个 D、 37个74、在ARM处理器中,( )寄存器包括全局的中断禁止位,控制中断禁止位就可以打开或者关闭中断。ACPSR BSPSR CPC DIR75、嵌入式系统的三要素下面哪一个不是( )。A、嵌入 B、专用 C、存储器 D、计算机五、ARM指令相关题1、若R1=2000H,(2000H)=0x28,(2008H)=0x87,则执行指令LDRR0,R1,8!后R0的值为?2、ARM汇编语句“ADD R0, R2, R3, LSL#1”的作用是?3、LDR
24、 R0, =0X3FF5000 与LDR R0, 0X3FF5000指令的作用?4、MOV R1,#0xa MOV R2,#16 ADD R0,R1, R2 R0=?5、LDR R1,#1 MOV R2, #2MOV R3,#3ADDR0,R1,#128ADDR4,R2,R3,LSL#16、已知当前处理器寄存器值及存储器值如下图,请问执行LDMIA R1!,R2-R4,R6 该条指令后,寄存器R1R6分别为多少?0x40000000R2R30x2310x010x400000000x12R4R540x23R60x340x020x030x040x400000040x400000080x400000
25、0C存储器值存储器地址0x40000000R17、求1+3+5+99和的程序如下,计算结果保存在0x40000000地址中。AREASum_Even,CODE, READONLY; ResultEQU0x40000000 ;ENTRY; CODE32; STARTMOVR0,#0MOVR1,#1LOOP ADDR0, R0,R1 ADDR1, R1, #2 CMP R1, #100BLTLOOP LDRR1, = Result STRR0, R1 END8、ARM/Thumb指令集混合编程示例。AREA ThumbSub, CODE, READONLYENTRY CODE32 Header A
26、DR R0, start+1BX R0B FinishCODE16 start MOV R0,#10MOV R1, #3 ADD R0, R0, R1MOV PC, LRFinishNOPEND9、内存数据拷贝示例AREA Word, CODE, READONLY ; name this block of codenum EQU 20 ; Set number of words to be copied ENTRY ; CODE32start LDR r0, =src ; r0 = pointer to source block LDR r1, =dst ; r1 = pointer to d
27、estination block MOV r2, #num ; r2 = number of words to copywordcopy LDR r3, r0, #4 ; a word from the source STR r3, r1, #4 ; store a word to the destination SUBS r2, r2, #1 ; decrement the counter BNE wordcopy ; copy morestop NOPAREA BlockData, DATA, READWRITEsrc DCD 1,2,3,4,5,6,7,8,1,2,3,4,5,6,7,8
28、,1,2,3,4dst DCD 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 END10、外设操作示例s3c2410用了3个寄存器对watchdog进行操作,3个寄存器分别为:WTCON,WTDAT,WTCNT,对应的地址假设为0x56000010、0x56000014、0x56000018。WTCON为控制寄存器,为0时关闭看门狗定时器,为1时启动看门狗定时器;WTDAT为数据寄存器,存放最大计数值;WTCNT为记数寄存器。WTCNT通过WTDAT得到一个值,watchdog在每个看工作周期里向WTCNT发送一个递减信号,当WTCNT的值递减到0的时候则发生
29、time out,重而重起系统。现假设看门狗定时器工作频率为1KHz,系统至少需要每一分钟内喂狗一次,则喂狗一次的代码如下:AREA Watchdog_Feed, CODE, READONLY ; name this block of codeWTCONEQU0x56000010WTDATEQU0x56000014WTCNTEQU0x56000018ENTRY ; CODE32Watchdogldrr0,=WTCONldrr1,=0x0 strr1,r0ldr r2,=WTDAT ldr r1,=60*1000str r1,r2ldr r1,=0x1str r1,r0END11、ARM指令集的
30、条件执行AREA Con_Execute, CODE, READONLY ENTRY ; CODE32start LDR r0, =src ; LDR r1, =dst ; MOV r2, #4MOV r4,#2compare LDR r3, r0, #4 ; CMP r3, r4 STRGT r3, r1, #4 ; SUBS r2, r2, #1 ; BNE compare NOPAREA BlockData, DATA, READWRITEsrc DCD 1,-2,3,4,5dst DCD 0,0,0,0,0执行完成后,dst对应位置的内容为多少12、注释下面这段ARM汇编代码,并分析程
31、序结果AREA TEST,CODE,READONLY ;代码段、段名TEST、只读ENTRY ;程序入口点CODE32 ;32bit的ARM指令 LDR R0,=0x3FF5000 ;R0寄存器置0x3FF50000 LDR R2,=0x3FF5020 ;R2寄存器置0x3FF50020 LDR R1,=0x0 ;R1寄存器置00 STR R1,R0, #4! ;将R1寄存器的值存入到R0+4的地址,并将R0的值加4 ADD R1,R1,#1 ;R1寄存器值加1 CMP R0,R2 ;比较R0和R2寄存器值,更改处理器状态位 BNE %B0 ;如果R0和R2不相等,向后跳转到局部标号0处 NO
32、P ;空操作 BL sum ;跳转到标号sum处(函数调用) STR R1,R0 ;将R1的值存入到R0指定的地址Loop B Loop ;跳到标号Loop处 sum LDR R0,=0x3FF5000 ;R0寄存器置0x3FF50000 LDR R2,=0x3FF5020 ;R2寄存器置0x3FF50020 LDR R1,R0,#4! ;从R0+4处取32比特数送到R1,并将R0的值加40 LDR R3,R0,#4! ;从R0+4处取32比特数送到R3,并将R0的值加4 ADD R1,R1,R3,LSL #1 ;将R3的值左移1位后与R1相加,结果存入R1 CMP R0,R2 ;比较R0和R
33、2寄存器值,更改处理器状态位 BNE %B0 ;如果R0和R2不相等,向后跳转到局部标号0处 NOP ;空操作 MOV PC,LR ;将链接寄存器LR的值送到PC寄存器,实现函数返回 END ;汇编伪指令、汇编结束13、注释下面这段ARM汇编代码,并分析程序结果AREA TEST, CODE, READONLYENTRYCODE32LDR R0, =0x100; LDR R2, R0, #4!; BL Comp; LDR R2, R0, #4; BL CompLoopB LoopCompLDR R4, =10CMP R4, R2; ADDS R5, R4, R2, LSL #1; STR R5
34、, R0, #-4; MOV PC, LR; END存储器中内容为:字地址执行前内容执行后内容0x10040x104120x10800x10c414、在横线上注释下面这段汇编代码,并分析结果。AREA TEST, CODE, READONLY ; ENTRYCODE32; LDR R0, =0x100LDR R2, =0x400ADD R3, R0, #8; 0LDR R4, R0, #4!; R4memR0+4, R0R0+4 STR R4, R2, #4!; CMP R3, R0; 比较R3和R0,影响CPSR的状态位 BNE %B0; LoopB Loop; END存储器中内容为:字地址
35、执行前内容执行后内容0x10040x10430x10870x10c40x11084520x40036780x404630x408130x40c64670x41032六、Shell编程题1. 提示输入N个学生的成绩,并将百分制成绩转换为5分制成绩,最后将学号、成绩保存在score.dat中。转换规则90, 100=5,80,90=4, 70,80=3, 60,70=2, 0,60=1。2. 从屏幕上输入N个数据,将它们排序,把排序后的结果保存在result.dat文件中。3. 判断/home/tesh.sh文件是否存在,如果存在,删除该文件,如果不存在,创建该文件。4. 从屏幕上输入N个数,寻找这N个数的最大值,最小值,并输出。5. 计算“1+2+3+100”的和,并输出结果。6. 提示输入一个字符,如果输入“Y”,输出“right!”,如果输入“N”,输出“wrong!”,如果是其它输入,输出“bad input!”,并要求重新输入。7. 提示输入两个数,然后提示输入运算符“+或-”,根据运算符做“+、-”运算,最后输出结果。8. 判断/home/exam目录是否存在,如果存在,删除该目录,如果不存在,创建该目录。