收藏 分销(赏)

嵌入式期末复习.doc

上传人:精**** 文档编号:1680756 上传时间:2024-05-07 格式:DOC 页数:11 大小:248KB 下载积分:8 金币
下载 相关 举报
嵌入式期末复习.doc_第1页
第1页 / 共11页
嵌入式期末复习.doc_第2页
第2页 / 共11页


点击查看更多>>
资源描述
 (1)简述嵌入式系统的定义和特点  答:定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗有严格要求的专用计算机系统。  特点:专用性强、实时性好、可裁剪性好、可靠性高和功耗低等。  (2)简述计算机系统的发展历程  第一阶段大致在20世纪70年代前后,可以看成是嵌入式系统的萌芽阶段;  第二阶段是以嵌入式微处理器为基础,以简单操作系统为核心的嵌入式系统;  第三阶段是以嵌入式操作系统为标志的嵌入式系统,也是嵌入式应用开始普及的阶段;  第四阶段是以基于Internet为标志的嵌入式系统,这是一个正在迅速发展的阶段。    (1)ARM和S3C2410X有什么关系?  S3C2410是韩国三星公司生产的嵌入式处理器,它采用了ARM公司的ARM920T(即ARM9)内核  (2)ARM7是多少位的RISC处理器?使用几级流水线?采用什么样的体系结构?支持MMU吗? ARM7是32位RISC处理器,使用3级流水线,采用冯 •诺依曼体系结构,不支持MMU。 (3)ARM9是多少位的RISC处理器?使用几级流水线?采用什么样的体系结构?支持MMU吗?  ARM8是32位RISC处理器,使用5级流水线,采用哈佛体系结构,支持MMU。  (4)S3C2410X芯片有多少根地址线,多少根片选线(nGCS),多少根数据线。 S3C2410X芯片有27根地址线,8根片选线(nGCS),32根数据线。  (5) s3c2410芯片内部集成了哪些控制接口? S3C2410X芯片内部集成了一个LCD控制器,SDRAM控制器,3个通道UART,4个通道DMA,4个具有PWM功能的计时器和一个内部时钟,8通道的10位ADC。  (6)ARM体系结构有哪几种工作状态?又有哪几种运行模式?其中哪些为特权模式?哪些为异常模式?并指出处理器在什么情况下进入相应模式?  工作状态:  第1种:ARM状态。处理器执行32位的字对齐的ARM指令。 第2种:Thumb状态。处理器执行16位的半字对齐的Thumb指令。  运行模式:  用户模式(usr)  快速中断模式(fiq)  外部中断模式(irq) 管理模式(svc)  数据访问中止模式(abt)  系统模式(sys) 未定义指令中止模式(und)  在这7种运行模式,除了用户模式外,其他6种处理器模式都为特权模式。  在这6种特权模式中,除了系统模式外的其他5种特权模式又称为异常模式。  用户模式:非特权模式,也就是正常程序执行的模式,大部分任务在这种模式下执行。在用户模式下, 如果没异常发生,不允许应用程序自行切换果没异常发生,不允许应用程序自行改变处理器的工作模式,如果有异常发生,处理器会自动切换工作模式。  快速中断模式:支持高速数据传输和通道处理,当一个高优(fast)中断产生时将会进入这种模式。  外部中断模式:也称为普通中断模式,当一个低优先级中断产生时将会进入这种模式。在这模式下按中断的处理器方式又分为向量中断和非向量中断两种。通常的中断处理都在IRQ模式下进行。 管理模式:是一种操作系统保护模式,当复位或软中断指令执行时处理器将进入这种模式。  数据访问中止模式:当存取异常时将会进入这种模式,用来处理存储器故障、实现虚拟存储或存储保护。  系统模式:使用和user模式相同寄存器组的特权模式,用来运行特权级的操作系统任务。  未定义指令中止模式:当执行未定义指令时会进入这种模式,主要是用来处理未定义的指令陷阱,支持硬件协处理器的软件仿真,因为未定义指令多发生在对协处理器的操作上。  (7)ARM体系结构支持的数据类型?有多少寄存器?如何组织?  支持的数据类型: 1.字节(byte),各种处理器体系结构中,字节的长度均为8位。  2.半字(half-word),在ARM体系结构中,半字的长度为16位。  3.字(word),在ARM体系结构中,字的长度为32位。  ARM处理器共有37个寄存器,其中31个通用寄存器,6个状态寄存器。  (8)S3C2410的存储控制器如何对内存空间进行管理?  S3C2410X存储控制器为片外存储器提供控制信号。它将系统的存储空间分成8组(Bank),每组的大小为128MB,共1GB。  (9)分析程序状态寄存器各位的功能描述,并说明C、Z、N、V在什么情况下进行置1和清0  状态寄存器(PSR)的具体格式为    V—溢出标志位  对于加/减法运算指令,当操作数和运算结果为二进制补码表示的带符号数时,V=1表示符号位溢出,其它指令通常不影响V位。例如:两个正数(最高位为0)相加,运算结果为一个负数(最高位为1),则符号位溢出,相应V=1.  C--进位或借位标志位    对于加法指令(包括比较指令CMN),结果产生进位,则C=1,表示无符号数运算发生上溢出,其他情况下C=0;    在减法指令中(包括比较指令CMP),结果产生借位,则C=0,表示无符号数运算发生下溢出,其他情况下C=1;    对于包含移位操作的非加/减法运算指令,C中包含最后一次溢出位的数值; 对于其他非加/减法运算指令,C位的值通常不受影响。  Z--结果为0标志位 Z=1表示运算结果是0,Z=0表示运算结果不是零; 对于CMP指令,Z=1表示进行比较的两个数大小相等。     N--符号标志位    本位设置成当前指令运算结果的bit[31]的值。当两个补码表示有符号整数运算时,N=1表示运算的结果为负数,N=0 表示结果为正数或零。  (10)ARM指令可分为哪几类?说出哪几条指令是无条件执行的。  ARM指令可分为:  数据处理指令,跳转指令,程序状态寄存器处理指令,加载/存储指令,协处理器指令 ,异常产生指令。   无条件执行指令:BLX指令,BKPT指令(产生软件断点中断)  (1) make和Makefile之间的关系?  答:make是一种命令,是根据Makefile文件的规则决定如何编译和连接程序或其他的动作。  (2)Makefile的普通变量与预定义变量有什么不同?预定义变量有哪些?它们分别表示什么意思?  答:普通变量:引用变量时,只需在变量前面加上$符;预定义变量:已经定义好,直接引用即可。  预定义变量有:$@、$^、$<。 $@:表示完整的目标文件名;$^:表示所有的依赖文件;$<:表示依赖文件列表中的第一个文件。  (3)GCC编译器的常用参数有哪些?它们的功能分别是什么?  答:gcc编译器的常用参数:-o,-I,-L,-E,-S,-c  功能:-o表示编译成一个可执行程序;-I表示指定头文件目录;-L表示指定库文件目录选项;-E表示对源代码进行预编译;-S表示编译成汇编代码;-c表示把.c文件转换为以.o为扩展名的目标文件。  (1)简述嵌入式开发环境的搭建过程  答:1、交叉编译工具链的安装;2、安装配置TFTP服务;3、安装配置NFS服务;4、C-Kermit的安装配置;5、mini的安装配置;6、windows下超级终端的配置。  (2) BootLoader的结构分两部分,简述各部分的功能?  答:两部分:Stage1:用汇编语言编写,主要进行设备的初始化;Stage2:用C语言编写,增强程序的移植性和可读性。  (2) ARM常用的Bootloader程序有哪些? 答:U-Boot,Blob,RedBoot,vivi  (3) 简述生成内核映像文件zImage的步骤。  答:1、make config   进入命令行;  2、make menuconfig 内核裁剪;  3、make clean 清理以前已生成的目标文件;  4、make dep 编译变量的依赖关系;  5、make zImage 生成内核镜像文件zImage。  (4) BusyBox工具的功能是什么?  答:BusyBox工具用来精简基本用户命令和程序,它将数以百计的常用UNIX/Linux命令集成到一个可执行文件中。  (5)简述根文件系统的创建过程。  答:1、建立基本的目录结构;  2、交叉编译BusyBox;  3、创建配置文件;  4、利用cramfs工具创建根文件系统映像文件。   (1) 简述驱动程序的主要功能。  答:1、对设备初始化和释放;2、数据传送;3、检测和处理设备出现的错误。  (2) 简述驱动程序的组成。  答:1、自动配置和初始化子程序;2、服务于I/O请求的子程序;3、中断服务子程序。  (3) 简述设备驱动程序与应用程序的区别。  答:1、设备驱动程序工作在内核态下,而应用程序工作在用户态下;2、设备驱动程序从module_init()开始,将初始化函数加入内核初始化函数列表中,在内核初始化时执行驱动的初始化函数,从而完成驱动的初始化和注册,之后驱动便停止工作,等待应用程序的调用;而应用程序从main()函数开始执行。  3、应用程序可以和GLIBC库连接,因此可以包含标准的头文件;驱动程序不能使用标准的C库,因此不能调用所有的C库函数。  (4)简述设备文件、驱动文件、主设备号和次设备号之间的关系。  答:驱动程序加载到内核后有一个主设备号。在Linux内核中,主设备号标识设备对应的驱动程序,告诉Linux内核使用哪一个驱动程序为该设备(也就是/dev下的设备文件)服务,而次设备号则用来标识具体且唯一的某个设备。  (5)简述字符设备驱动程序提供的常用入口点及各自的功能。  答:open入口点:对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。  close入口点:当设备操作结束时,需要调用close子程序关闭设备。独占设备必须标记设备可再次使用。 read入口点:当从设备上读取数据时,需要调用read子程序。 write入口点:向设备上写数据时,需要调用write子程序。  ioctl入口点:主要用于对设备进行读写之外的其他操作,比如配置设备、进入或退出某种操作模式等,这些操作一般无法通过read或write子函数完成操作。    (1)关于嵌人式系统发展趋势,描述不正确的是(A ) A.产品性能不断提高,功耗不断增加 B.体积不断缩小 C.网络化、智能化程度不断提高 D.软件成为影响价格的主要因素 嵌入式系统的发展趋势表现在以下几方面: 1.产品种类不断丰富,应用范围不断普及 2.产品性能不断提高 3.产品功耗不断降低,体积不断缩小 4.网络化、智能化程度不断提高 5.软件成为影响价格的主要因素  (2)嵌人式操作系统有很多,但(D )不是。 A. Linux B. Windows CE C. V×Works D. Windows XP 常见的嵌入式操作系统: VxWorks,Windows CE、uC/OS-II和嵌入式Linux。 (3) V×Works是 ( A)于1983年开发的一种32位嵌人式实时操作系统。 A. WindRiverB. Microsoft C. Jean J.LabrosseD. LinusTorvalds 说明:VxWorks是美国WindRiver公司于1983年开发的一种32位嵌入式实时操作系统。 (1)ARM公司主要依靠(D)获得利润。 A.生产芯片 B.销售芯片 C.制定标准 D.出售芯片技术授权 (2) S3C2410X是 ( C)公司生产的嵌人式处理器。 A. AKM B.Sony C. SamsungD. Motorola  (3)S3C2410X选用的内核是( A)公司设计的。 A. ARM B. Sony C. SamsLing D. Motorola  (4)S3C2410X采用的内核是(B).  A. ARM720T B. ARM920T C. ARM1020 D. ARM9E (5)S3C2410×芯片采用的封装是( B).  A. DIP B. BGA C. QFP D. PGA  (6)S3C2410X 是 ( C)位处理器。 A. 8 B.16C.32 D.64  (7)S3C2410X有(D)位通道的I/O口。  A.8 B.64  C.100 D.117 (8)S3C2410X有(C)个外部中断源。 A. 8 B.16  C.24 D.32 (9)S3C2410X将系统的存储空间分成(C ) 组 (bank).  A. 2 B.4 C.8 D.166 (10)S3C2410×能管理的最大存储空间是(B )。 A.512MBB.1GB C.2GB D.4GB  (1)GCC软件是(B ) A.调试器 B.编译器C.文本编辑器D.连接器 (2)GDB软件是(A ) A.调试器B.编译器C.文本编辑器D.连接器 (3)如果生成通用计算机上(系统是Linux操作系统)能够执行的程序,则使用的C编译是(C) A.TC B.VC C.GCC D.Arm-linu X-gcc  (4)GCC用于指定头文件目录的选项是(D ) A.-o B.-L C.-g D.-I  (5)make有许多预定义变量,表示“目标完整名称”的是(A ) A. $@ B. $^ C.$< D.$>  (1) mini 是 ( A) A.串口通信工具 B.图像软件 C.操作系统 D.远程控制软件 (2)vivi工程序分2个阶段,第1阶段是用( C)语言编写的。 A.C语言B.机器语言C.汇编语言D.Basic语言 (3)vivi工程序分2个阶段,第2阶段是用(A)语言编写的。 A.C语言B.机器语言C.汇编语言D.Basic语言 (4)内核映像文件是(A ) A. zImage B. kernel C.root.cramfs D.Yaffs  (5)创建根文件系统映像文件使用的工具是(A ) A. BusyBox B.cramls C.Make D.vi  (1)驱动程序的主要功能包括3个方面,但(B)不属于。 A.对设备初始化和释放B.控制应用程序 C.检测和处理设备出现的错误D.数据传送 (2)驱动程序主要由3部分组成,但( D)不属于。 A.自动配置和初始化子程序B.服务于I/0请求的子程序 C.中断服务子程序D.服务于CPU子程序 (3)字符设备提供给应用程序的人口点有很多,但(C )不是。A.ioctl B.read C.main D.open  (4)Linux系统通常将设备分为3类,但( A)不属于 A.输人设备B.字符设备C.块设备D.网络设备 (5)Linux系统用(C)字母表示字符设备。 A.A B.B C.C D.D  (6)设备文件包括了较多信息,但没有包括(D ).  A.设备类型B.主设备号C.次设备号D.驱动程序名称 (1)通常可以将计算机分为两类,即通用计算机和__嵌入式计算机_______。 (2)嵌人式系统硬件可分为__微处理器_、_外围电路_和_外部设备__等3部分。 (3)嵌人式系统软件可分为板级支持包、_实时操控系统_、应用编程接口和应用程序等4部分 (4)根据结构和功能特点不同,嵌人式处理器可分嵌入式处理器、微控制器和数字信号处理器等3类。 (1)ARM微处理器目前包括_ARM7、ARM9_、ARM9E_、ARM10E__、ARM11__、等 (2)RISC的意思是精简指令集。 (3)S3C2410x 是_Samsung_公司生产的嵌人式处理器,它采用了ARM公司的 内核,芯片内部还设计了__IIC____线,并集成了一些外围设备控制电路。 (4)S3C2410x采用BGA封装,主要解决因_显卡布线_____带来的问题。 (5)S3C2410x使用了两组电压供电,内核采用__1.8_v___供电,存储器和I/O采用__3.3v___供电 (6)S3C2410x将系统的存储空间分成___8___组(bank),每组的大小为_128____MB,共___1___GB。 (7)UP-2410S实验箱硬件使用的MCU是__s3c2410____;内存是__64MB____;Flash是__64MB____。 (1)Linux下,动态链接库文件是以__.SO_结尾的,静态链接库文件是以__.a____结尾的。动态链接库是在_程序运行过程中_____动态加载的,静态链接库是在编译过程中静态加载的。 (2)GCC指定库文件目录选项的字母是__L____。指定头文件目录选项的字母_I_____。指定输出文件名选项的字母是__O____ (3)为了方便文件的编辑,在编辑Makefile时,可以使用变量。引用变量时,只需在变量前面加上__$____符。 (4)Makefile文件预定定义变量有很多,列举3个预定定义变量:__$@____,__$_∧__和_$<_____。 (5)Makefile文件预定定义变量“$@”表示_目标文件的完整名称_____,“$^”表示_所有不重复的依赖文件,以空格隔开_____,“$<”表示_第一个依赖文件的名称_____。 (1)当宿主机使用Linux操作系统的mini操作实验箱时,宿主机和实验箱之间是利用__串____口来传输数据。 (2)配置mini时,一般参数为波特率__115200____,数据位__8____位,停止位___1___位,奇偶校验位__无____,软硬件控制流为___无___。 (3)对嵌人式系统Flash存储器烧写可以通过__编程口____、__串口____和__网络接口____和等不同方式。 (4)在构建一个嵌人式系统,最先被烧写到Flash存储器中的软件是Bootload_。 (5)JTAG仿真器有两种功能,即__程序仿真调试____和_程序烧写_____。 (6)嵌人式Linux的内核映像文件是zImage_,根映像文件是_root.cramfs_____。 (7)大多数Bootloader程序包括两种不同的操作模式,即_启动加载模式_____和___下载___模式。 (8)Bootloader程序有stagel和stage2,它们分别是用__汇编语言____和____C__语言来编写的。 (9)流行的LinuxBootloader有_U-Boot_____、_Blob__和_ARMBoot_____。 (10)在嵌人式Linux系统中,创建根文件系统的工具是__BusyBox____。 (11)开始操作实验箱,当出现提示PressReturnstarttheLINUXnow,anyotherkeyforvivi时,按Enter键,则进入vivi的_启动加载_____模式。 (1)驱动程序运行在_内核态_____,应用程序运行在用户态。 (2) Linux系统的设备一般分为三类,即_字符设备_____、__块设备____和网络设备。 (3)在Linu“系统中,设备号包括两部分,即_主设备号_____和次设备号设备号。 (4) Linux驱动程序的编译方法有两种,即_静态编译__和_动态编译_____。 (5)Linux系统中,用于加载模块化驱动程序的命令是__insmod____。 4.程序题  (1) 分析下列每条语句,并说明程序实现的功能。  CMP  R0, #0   //判断R0是否等于0  MOVEQ  R1, #0   //当R0等于0,则R1等于0  MOVGT  R1,#1   //当R0为正数时,则R1等于1   此功能码段可以判别R0中的值为正数还是0。  (2) 写一条ARM指令,分别完成下列操作。  R0 = 16    MOV  RO, #16  R0 = R1 / 16     MOV RO,R1,LSR#4  R1 = R2 * 4       ADD R1,R2.R2.LSL#1  R0 = - R0        RSB RO,RO,#0  (3) 写出实现下列操作的ARM指令。  当Z=1时,将存储器地址为R1的字数据读入寄存器R0。   MOVEQ  R0, [R1]  当Z=1时,将存储器地址为R1+R2的字数据读入寄存器R0。   LDREQ  R0, [R1,R2]  将存储器地址为R1-4的字数据读入寄存器R0。 LDR   R0,[R1,#-4]   将存储器地址为R1+R6的字数据读入寄存器R0,并将新地址R1+R6 写入R1。 LDR   R0,[R1,R6]!  (4) 写出下列指令所实现的操作。 LDR     R2 ,[R3,#-2]!  将存储器地址为R3-2的字数据读入R2,并将地址R3-2写入R3    LDR     R0 ,[R0],R1  将存储器地址为R0的字数据读入R0,并将地址R0+R1写入R0    LDR     R1 ,[R0,R2,LSL #2]!  将存储器地址为R0+R2*4的字数据读入R1,并将地址R0+R2*4写入R0    STRB   R1 ,[R2,#0xB0]    R0的低8位存入存储器地址为 R2+0xB0字节中  LDMIA   R0 ,{R1,R2,R8}    将内存单元R0所指向的地址单元以字为单位递减方式读取到R1,R2,R8 中,低地址编号的字数据内存单元对应低编号寄存器  STMDB   R0!, {R1~R5,R8,R9}  R1~R5,R8,R9存储到以R0为起始地址的递减内存中,最终R0 指向存放 R9的地址单元    4. 编程及调试题  (1)根据要求编写Makefile文件。有5个文件分别是main.c、visit.h、study.h、visit.c、study.c,具体代码如下。 1) 如果上述文件在同一目录,请编写Makefile文件,用于生成可执行程序zhs。  //Makefile 文件     2) 如果按照下面的目录结构存放文件,请改写Makefile文件。  bin:存放生成的可执行文件 obj:存放.o文件  include:存放visit.h、study.h  src:存放main.c、visit.c、study.c和Makefile.    3) 如果按照下面的目录结构存放文件,请改写Makefile文件。 bin:存放生成的可执行文件 obj:存放.o文件  include:存放visit.h、study.h src:存放main.c和Makefile src/src1:存放visit.c src/src2:存放study.c 说明:这可能只是其中一种方法,方法不唯一。我这种做法有一个缺点就是需要修改visit.c和study.c文件的内容,如修改#include “../include/visit.h”。  (2) 按要求完成以下操作。  ① vi编辑test.c文件,其内容如下。 #include <stdio.h> int main() { int s=0,I; for(i=1;i<=15;i++) { S=s+I; Printf(“the value of a is %d\n”,s) } Return 0; } ② 用gcc –o test.o test.c编译,生成test.o gcc –o test.o test.c ③用gcc –g –o test1.o test.c编译,生成test1.o  ④ 比较test.o和test1.o文件的大小,思考为什么?  带调试选项-g的目标文件test1.o比较大。因为在gcc编译源代码时指定-g选项可以产生带有调试信息的目标代码 (4)编写一个程序,将系统时间以year-month-day hour:minute:second格式显示在屏幕上,并将它保存在time.txt文件。 
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服