版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第一章选择题(1)以下那种产品不属于嵌入式系统(C)。A)单片机B)手机C)PCD)MP3(2)以下(B)不属于嵌入式系统特点。A)专用性B)系统兼容性好C)高可靠性D)低功耗(3)关于嵌入式系统发展趋势,描述不正确的是(A)。A)产品性能不断提高,功耗不断增加B)体积不断缩小C)网络化、智能化程序不断提高D)软件成为影响价格的主要因素(4)通用计算机PC引导代码保存在(C)A)CMOSB)BIOSC)硬盘D)U盘(5)嵌入式硬件包括3部分,(C)不属于这3个部分。A)微处理器B)外围电路C)通信电路D)外部设备(6)嵌入式硬件的外围电路包括的单元比较多,但A)不属于外围电路。A)内存B)复位电路C)时钟电路D)USB电路(7)外部设备是指通过接口与微处理器到进行通信的设备,A)不属于外部设备。A)内存B)USBC)键盘D)LCD(8)8051是由(C)公司设计的。A)FreescaleB)NXPC)IntelD)Apple(9)TI公司的TMS320系列芯片属于(C)。A)EMPUB)MCUC)DSPD)SoC(10)高通公司的骁龙845芯片属于(C)。A)EMPUB)MCUC)DSPD)SoC(11)Freescale(飞思卡尔半)公司目前被(B)收购。A)MotorolaB)NXPC)TID)Intel(12)ARM公司一家(A)公司A)处理器芯片生产B)处理器核设计C)嵌入式软件D)嵌入式方案设计(13)以下(C)操作系统,是开源免费的。A)uC/OS-IIB)VxWorksC)WindowsCED)iOS(14)Android是(C)公司开发的产品。A)WindRiverB)MicrosoftC)GoogleD)Apple(15)嵌入式操作系统有很多,但(D)不是。A)LinuxB)windowsCEC)VxWorksD)windowsxp(16)VxWorks是(A)于1983年开发的一种32位嵌入式实时操作系统。A)WindRiverB)MicrosoftC)JeanJ.LabrosseD)LinusTorvalds(17)iOS是(D)公司开发的产品。A)WindRiverB)MicrosoftC)GoogleD)Apple(18)uC/OS是由美国人(A)于1992年开发的。A)JeanJ.LabrosseB)LinusTorvaldsC)GoogleD)Apple(19)Linux是由芬兰赫尔辛基大学的学生(B)于1991年开发的。A)JeanJ.LabrosseB)LinusTorvaldsC)GoogleD)Apple(20)嵌入式实时性最好的操作系统是C)。A)VxWorksB)LinuxC)uC/OS-IID)iOS填空题(1)把满足海量高速数值计算的计算机称为通用计算机系统。而面向测控对象,嵌入到实际应用系统中,实现嵌入式应用的计算机称之为嵌入式计算机系统。(2)嵌入式系统硬件可分为:微处理器、外围电路和外设等3部分。嵌入式系统软件可分为:DDI、实时操作系统、API和应用程序等4部分。根据结构和功能特点,嵌入式处理器可分MPU、MCU、DSP、SOC等4类。MCU只是芯片级的芯片,而SoC是系统级的芯片。Android应用开发使用Java语言;底层开发使用c/c++语言。嵌入式系统开发主要分为系统系统总体设计、硬件软件设计、系统测试以及系统集成和测试等。产品定义是对产品需求进行分析、细化、模块化,最后抽象出需要完成的功能列表。问答题简述嵌入式系统的定义和特点?答:嵌入式系统的定义:面向测控对象,嵌入到实际应用系统中,实现嵌入式应用的计算机称之为嵌入计算机系统,简称嵌入式系统(embeddedsystern)。嵌入式系统的特点:专用性、可裁剪(资源有限)、可靠性、实时性、低功耗简述嵌入式系统发展历程?答:分为四个阶段。第一阶段:以4到8位单片机为核心的可编程控制器系统。第二阶段:8到16位嵌入式处理器为基础、以简单操作系统为核心。第三阶段:以32位RISC嵌入式中央处理器,并且使用嵌入式操作系统。第四阶段:以Enternet为标志的迅速发展的阶段。简述嵌入式系统组成?答:嵌入式系统组成包括硬件系统和软件系统。嵌入式系统的硬件分为:微处理器、外围电路和外设。嵌入式系统软件可分为:DDI、实时操作系统、API、和应用程序。简述MCU、DSP和SoC的区别?DSP偏重于信号处理,MCU偏重于控制°MCU只是芯片级的芯片,而SoC是系统级的芯片。简述嵌入式处理器的特点?答:嵌入式处理器作为嵌入式系统的核心,它必须首先满足系统在功耗、功能和速度方面的要求。一般来说,嵌入式系统对实时性、功耗、体积和可靠性等方面要求比较高,所以有以下特点:功耗低、集成了丰富的外设接口、对实时多任务有很强的支持能力。简述嵌入式系统开发流程?答:首先对系统总体设计,之后分别进行硬件设计和软件设计,然后进行系统集成和系统测试,若测试符合要求则产品发布,否则重新进行除产品定义以外的系统总体设计。第2章选择题ARM公司主要依靠(D)获得利润A)生产芯片B)销售芯片C)制定标准D)出售芯片技术授权Thumb指令集是(C)位指令集TOC\o"1-5"\h\zA)64B)32C)16D)8ARM指令集是(B)位指令集A)64B)32C)16D)8到2020年1月为止,ARM体系结构共定义了(C)个版本A)6B)7C)8D)9ARM体系结构中V3到V5版本都是(B)位寻址能力A)64B)32C)16D)8ARM9处理器属于(B)体系结构A)V3B)V4TC)V5TED)V6Corte-A处理器属于(D)体系结构A)V4TB)V5TEC)V6D)V7ARM7处理器具有(A)级流水线结构A)3B)4C)5D)6ARM9处理器具有(C)级流水线结构A)3B)4C)5D)6ARM11处理器具有(D)级流水线结构A)5B)6C)7D)8Cortex处理器分共3类,但(A)不是。A)Cortcx-HB)Cortcx-MC)Cortex-RD)Cortex-AExynos4412是(C)公司生产的嵌入式处理器。A)ARMB)SONYC)SAMSUNGD)MOTOROLAExynos4412采用的内核是(D)。A)ARM9B)Cortcx-M3C)Cortex-RD)Cortex-A9在ARM体系结构中,字的长度为(C)位。A)8B)16C)32D)64Cortex-A9处理器支持(B)种工作模式。A)7B)8C)9D)10Cortex-A9处理器共有(D)个32位寄存器。A)37B)38C)39D)40Exynos4412处理器0x0000_0000开始地址映射的是(A)。A)iROMB)iRAMC)SMCD)SDRAMExynos4412处理器内置(B)KBROM。A)32B)64C)128D)256Exynos4412处理器内置(D)KBRAM。A)32B)64C)128D)256(20)Exynos4412不支持(D)启动。A)NANDflashB)SD卡C)eMMCD)CDROM(21)GPA0CON是(A)寄存器A)控制B)数据C)状态D)上拉(22)十进制数8的8421BCD编码是(C)A)0110B)0111C)1000D)1001(23)Exynos4412一共有(C)个32位定时器A)3B)4C)5D)6(24)K4B4G1646B是(B)位的SDRAMA)8B)16C)32D)64(25)核心板是由(B)块K4B4G1646B芯片构成32位存储系统A)1B)2C)4D)8(26)KLMxGxFEJA-x001是一块容量为(C)GB的Flash芯片A)1B)2C)4D)8(27)本教材硬件平台电源电路只提供3组电源,(A)不提供。A)1.5VB)1.8VC)3.3VD)5V(28)异步串行通信是指数据传送以①)为单位A)字节B)半字C)字D)字符(29)Exynos4412提供了(D)个通道的UARTA)2B)3C)4D)5(30)SD卡标准制定了SD卡的许多特性,但没有包括(A)A)颜色B)外形尺寸C)电气接口D)通信协议2、填空题(1)ARM是一个公司的名字,又成了一类处理器的统称,同时也可以认为是一种技术的名字。(2)RISC的意思是:精简指令集计算机,CISC的意思是:复杂指令计算机。(3)ARM7提供0.9MIPS/MHz冯•诺依曼体系结构,ARM9提供l.lMIPS/MHz哈佛体系结构。(4)Exynos4212是一款_双核处理器,Exynos4412是一款四核处理器。(5)ARM处理器支持的基本数据类型有3种:字节、半字、字。(6)ARM数据存储器格式有2种:大端格式、小端格式。(7)ARM微处理器的工作状态一般有两种,即:ARM状态、Thumb状态。(8)3级流水线指令可以分解为:取指令(fetch)、译码(decode)、执行(excute)。(9)5级流水线指令可以分解为:取指令(fetch)、译码(decode)、执行(execute)、缓冲/数据(buffer/data)、回写(write-back)。(10)ARM处理器程序状态寄存器包括:CPSR(当前程序状态寄存器)、SPSC(程序状态备份寄存器)。(11)GIC中断控制器的中断类型分为三种:软中断(SGI)、专用外设中断(PPI)、共享外设中断(SPI)。(12)EXYNOS4412的ADC精度可以是10位或12位。(13)Exynos4412是三星公司生产的嵌入式处理器,采用ARM公司的Cortex-A9内核。简答题(1)ARM微处理器内核系列主要有那些?ARM7系列;ARM9系列;ARM9E系列;ARM10E系列;ARM11系列;Cortex系列;SecurCore系列;Intel的Xcale/StrongARM。(2)ARM处理器工作模式有那8种?用户模式、快速中断模式、外部中断模式、特权模式、数据访问监控模式终止模式、未定义指令中止模式、系统模式、监控模式(3)简述RISC和CISC的区别?RISC和CISC之间的主要区别'如表N1所示。袈艺1Rise和cisci间主姿的区别指标R.1SCCISC指令集-个周期执行…条指令,通过简单指令的组合实现复朵操作°皓令长度固定指令桧度不固定,执存需翌名个周期流水线流水线每周期前进•步指令执行需蔓调用微代码的…个微程序寄存器更多通用寄存器ffl「特定目的的专用寄存器Load/Sicre结构独芷的Load和Siok指令完成数据在寄存器和外部存储器之间的传論处理3S能够宜接处理存储器中的敷据(4)ARM体系结构支持的数据类型?有多少寄存器?ARM处理器支持的基本数据类型如下。(1)字节(Byte),各种处理器体系结构中,字节的长度均为8位。(2)半字(Half-Word),在ARM体系结构中,半字的长度为16位。(3)字(word),在ARM体系结构中,字的长度为32位。其中字需要4字节对齐,半字需要2字节对齐。ARM微处理器共有40个32位寄存器,其中33个通用寄存器,7个状态寄存器。第3章选择题(1)gcc软件是(B)A)调试器B)编译器C)文本编辑器D)连接器(2)GCC支持的文件类型比较多,但不包括(D)。
A).cB).oC).hD).t在Linux系统中,./表示(B)A)当前目标B)上一级目录C)根目录D)用户目录在Linux系统中,../表示(C)A)当前目标B)上一级目录C)根目录D)用户目录GCC编译四个过程中,汇编的主要功能是(A)A)将文件转换成汇编语言B)将汇编语言代码转换成目标代码C)将汇编语言代码转换成可执行程序D)连接目标代码成可执程序Linux操作系统下的库文件都是以(D)字母开头A)incB)linC)srcD)libGCC用于指定头文件目录的选项是(D)A)-oB)-LC)-gD)-I要用GDB调试,则用GCC编译时要加入调试选项(C)A)-oB)-LC)-gD)-Igdb软件是(A)A)调试器B)编译器C)文本编辑器D)连接器生成PC上(linux操作系统)能够执行的程序,则使用的C编译是(C)A)TCB)VCC)gccD)arm-none-linux-gnueabi-gccMake能够根据(A)自动发现更新过的文件,从而减少编译工作量A)文件的时间戳B)文件创建时间C)系统时间D)当前时间(B)不属于其中。C)预定义变量D)(B)不属于其中。C)预定义变量D)自动变量。C)预定义变量D)自动变量。A)用户自定义变量B)系统定义CC是(B)A)用户自定义变量B)系统定义变量的引用方法是:把变量用括号括起来,并在前面加上(A)TOC\o"1-5"\h\zA)$B)#C)*D)“Makefile有许多自动变量,表示“目标名称”的是(A)A)$@B)$"C)$<D)$>Makefile有许多自动变量,表示“第一个依赖文件”的是(C)A)$@B)$"C)$<D)$>2.填空题GCC编译C语言生成可执行文件要经历预编译、编译、汇编、连接四个过程。Linux下,动态链接库文件是以.so结尾,静态链接库文件是以.a结尾。动态链接库是在程序运行过程中动态加载的,静态链接库是在编译过程中静态加载的。GDB是一个用来调试C和C++语言程序的调试器。GDB中,列岀源文件内容的命令是list、设置断点的命令是break运行程序的命令是run单步执行的命令是next。在编辑Makefile时,引用变量只需在变量前面加上L符。Makefile中的变量分为3类,即:自定义变量、预定义变量、自动变量。3.简答题简述GCC编译四个过程中预编译的主要功能?预编译(Preprocessing)的主要功能是读取源程序,并对头文件(include)、预编译语句(如define等)和一些特殊符号进行分析和处理。简述GCC编译四个过程中编译的主要功能?编译(Compilation)的主要功能包括2部分,第一部分是检查代码的语法,如果出现语法错误,则给出错误提示代码,并结束编译;只有在代码无语法错误的情况下,才能进入第二部分。第二部分是将预编译后的文件转换成汇编语言,并自动生成后缀为.s的文件。简述GDB主要完成的功能?GDB主要可以完成下面四个方面的功能。启动程序,按照程序员自定义的要求运行程序。单步执行、设置断点,可以让被调试的程序在所指定的断点处停住。监视程序中变量的值。动态地改变程序的执行环境。简述Makefile基本结构?Makefile是描述文件依赖关系的说明,它由若干个规则组成,每个规则的格式如下:target:dependency〈tab键〉command其中:target(目标体)是指make最终需要创建的东西,通常是目标文件或可执行文件。另外,目标体也可以是一个make执行的动作名称,如目标体clean,可以称这样的目标体是“伪目标”。dependency(依赖关系)是编译目标体要依赖的一个或多个文件列表。command(命令)是指为了从指定的依赖关系中创建出目标体所需执行的命令。简述进程和线程之间的区别?一个程序至少有一个进程,一个进程至少有一个线程.线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。线程在执行过程中与进程还是有区别的。每个独立的线程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。第4章一、选择题超级终端是(A)A)串口通信工具B)图像软件C)操作系统D)远程控制软件Uboot是由(D)开发A)mini公司B)Redhat公司C)jan-DerBakkerD)DENX小组Uboot程序分二个阶段,第一阶段是用(A)语言编写的。A)C语言B)机器语言C)汇编语言D)Basic语言Uboot程序分二个阶段,第二阶段是用(C)语言编写的。A)C语言B)机器语言C)汇编语言D)Basic语言Uboot程序第一阶段程序在(C)文件中。A)start.SB)main.SC)board.cD)origen.hUboot程序第二阶段程序在(A)文件中。A)start.SB)main.SC)board.cD)origen.hUboot程序将sd或mmc上程序读到内存中的命令是(A)。A)moviB)setenvC)saveenvD)fdiskUboot程序设置环境变量的命令是(B)。A)moviB)setenvC)saveenvD)fdiskUboot程序保存环境变量的命令是(A)。A)moviB)setenvC)saveenvD)fdiskUboot程序查看分区信息的命令是(B)。A)moviB)setenvC)bootD)fdisk内核映像文件是(C)A)uImageB)u-boot.binC)ramdisk.imgD)exynos4412.dtb引导程序映像文件是(D)A)uImageB)u-boot.binC)ramdisk.imgD)exynos4412.dtbLinux内核顶层目标下,(A)目录主要存放体系结构相关的代码A)fsB)kernelC)driversD)archLinux内核顶层目标下,(C)目录主要存放各种设备驱动程序代码A)fsB)kernelC)driversD)aArch在内核编译时,驱动程序的编译有3种方式,(D)不属于这3种。A)编译入内核、B)编译成应用C)编译成模块、D)根据变量编译将demo驱动程序编译生成一个独立的模块demo.ko的格式是(B)A)obj-y+=demo.oB)obj-m+=demo.oC)obj-$(CONFIG_DEMO)+=demo.oD)insmdodemo.ko二、填空题嵌入式调试方法包扌舌实时在线仿真、模拟调试和软件调试和OCD调试调试等。OCD有许多不同的实现方式,比较典型的有:接测试存取组和后台调试模式。Ubuntu12.04LTS64-bit操作系统是一个64位的操作系统。超级终端是一款串口通信软件软件。超级终端是利用_串口来传输数据。nfs服务利用端口传输数据。配置超级终端时,一般参数为波特率115200,数据位’8位,停止位’1位,奇偶校验位无,软硬件控制流为无。FS4412支持的启动方式有:eMMC、SD卡和NFS挂载。Ubuntu内核映像文件名是:ulmage,设备树文件是:exynos4412-fs4412.dtb。CortexA9上电或复位时,从地址0x00000000开始执行。大多数据BootLoader程序包括两种不同的操作模式,即:启动加载模式和下载模式。BootLoader的stagel用汇编语言语言来实现,stage2则用C语言语言来实现。Linux内核主要功能包括:进程管理、内存管理、文件管理、设备管理和网络管理本教材使用的交叉工具链是arm-none-linux-gnueabi-。Linux内核是用_^语言编写。内核编译,驱动程序的编译有3种方式,即:编译入内核、编译成模块、根据变量编译设备树中,DTS是设备树源文件,DTC是设备树编译工具,DTB是编译后生成的二进制文件一。三、简答题简述嵌入式开发环境的搭建过程?交叉编译硬件环境:因为选用软件调试方式,所以不需要JTAG仿真器,宿主机与目标机通过串口和RJ45口相连。串口用来监视和操作目标机,RJ45口用于数据传输,也可以通过SD卡完成数据传输。交叉编译软件环境:在宿主机上构建交叉编译软件环境,主要任务是安装操作系统和交叉工具链。安装操作系统在宿主机上要安装两个操作系统,即Windows和Linux。在Windows操作系统下,使用超级终端软件监视和操作目标机。在Linux操作系统下,完成软件编写、调试和交叉编译。具体步骤如下。第1步:安装Windows操作系统。第2步:在Windows系统中安装虚拟机软件。可以选择VMwarePlayer虚拟机软件,安装过程在这里不介绍。第3步:在虚拟机上安装Ubuntu12.04LTS64-bit操作系统。如果宿主机上安装的Windows是32位的操作系统,那么宿主机CPU必须支持英特尔虚拟化技术(IntelVirtualizationTechnology)才可以通过VMwarePlayer使用64位Linux操作系统。安装操作系统时,建议用定制方式进行完全安装。然后配置好以太网卡、TFTP服务和NFS服务等网络环境。第4步:在虚拟机上添加共享目录,目的是方便Windows系统与Linux系统之间的文件传送。安装交叉工具链,根据目标机处理器的型号选择正确的交叉工具链版本。网上的答案:安装虚拟机2.搭建嵌入式交叉编译环境3.在windows下配置超级终端或在linux下配置minicom4.搭建tftp服务器5•搭建NFS服务器6•编译嵌入式Linux内核7•制作文件系统BootLoader的结构分2部分,简述各部分的功能?BootLoader的结构框架一般分为stagel和stage2两部分。依赖于CPU体系结构的代码,比如设备初始化代码等,通常都放在stagel中,且用汇编语言来实现,这部分直接在Flash中执行,以提高工作效率。而stage2则通常用C语言来实现,这样可以实现更复杂的功能,而且代码会具有更好的可读性和可移植性。Bootloader的第一阶段(stage1)通常包括下面的步骤(执行的先后顺序)。硬件设备初始化;为加载BootLoader的stage2准备RAM空间;拷贝BootLoader的stage2到RAM空间中;设置好堆栈,堆栈指针的设置是为执行C语言代码做好准备。跳转到stage2的C入口点。Bootloader的第二阶段(stage2)通常包括下面的步骤(执行的先后顺序)。初始化本阶段要使用到的硬件设备;检测系统内存映射(memorymap);内核映像和根文件系统映像文件从flash上读到RAM空间中;为内核设置启动参数;调用内核。以上就是BootLoader两阶段启动的整个过程和需要执行的主要任务,在具体的设计中还要根据相应处理器和系统加以优化。ARM常用的BootLoader程序有那些?UbootBlobARMBootRedbootvivi简述Uboot启动流程?Uboot的启动过程分为两个阶段。第一阶段主要是对处理器进行初始化,用汇编语言来实现;第二阶段主要是对目标机进行初始化,通常用C语言来实现。Uboot启动流程如下。第1步:执行start.S文件。第2步:执行完start.S文件后,程序跳转到arch/arm/lib/crtO.S文件的_main函数继续执行。第3步:以上两步是Uboot的第一阶段程序,执行完第一阶段程序以后,程序跳转到arch/arm/lib/board.c文件中的board_init_r函数并执行,这时称Uboot进入了第二阶段。执行完board.c文件后,程序会跳转到目标机目录,开始执行目标机目录中的初始化程序。如果目标机的名称是origen,则会跳转到board/samsung/origen/目录,并执行该目录下的origen.c文件。执行完成后,就会出现Uboot提示符,在提示符下就可以使用Uboot的命令完成相应的操作。简述使用设备树的优势?设备树的主要优势是:对于使用相同处理器,但外围电路有所不同的主板,只需更换设备树文件*.dtb,即可实现不同主板之间的无差异支持,而无需更换内核其它文件。第5章选择题驱动程序的主要功能包括3个方面,但(B)不属于。A)对设备初始化和释放B)控制应用程序C)检测和处理设备出现的错误D)数据传送驱动程序的主要由3部分组成,但(D)不属于。自动配置和初始化子程序B)服务于I/O请求的子程序C)中断服务子程序D)服务于CPU子程序2)字符设备提供给应用程序的入口点有很多,但(C)不是。A)ioctlB)readA)ioctlB)readC)mainD)openA)设备类型B)6)A)设备类型B)6)应用程序通过(A)字符设备文件7)应用程序通过(A)字符设备文件A)fileB)file_operationsC)inodeD)device_struct(3)Linux系统通常将设备分为3类,但(A)不属于。A)输入设备B)字符设备C)块设备D)网络设备(4)Linux系统用(C)字母表示字符设备。A)AB)BC)CD)N5)设备文件包括了较多信息,但没有包括(D)。D)驱动程序名称主设备号C)D)驱动程序名称A)来操作字符设备。B)块设备文件C)网络设备文件D)套接字D)来操作网络设备。B)块设备文件C)网络设备文件D)套接字8)安装驱动程序的命令是(A)。A)insmodB)mknodC)rmmodD)lsmod(9)内核内部通过(A)结构提供文件系统的入口点函数。10)从应用程序接收数据到内核态的函数是(A)A)copy_from_userB)copy_to_userC)iounmapD)ioremap(11)驱动程序编写有三种方法,但(B)不属于。A)传统方法B)现代方法C)平台总线D)设备树填空题(1)设备驱动程序的目标是屏蔽具体物理设备的操作细节,实现设备无关性。(2)驱动程序运行在内核态,应用程序运行在用户态。(3)Linux系统的设备一般分为三类,即:字符设备、块设备和网络设备。(4)在Linux系统中,设备号包括2部分,即:主和次设备号。(5)Linux驱动程序的编译方法有2种,即:静态连接和动态连接。(6)Linux系统中,用于删除模块化驱动程序的命令是rmmod。(7)字符设备的数据处理以字节为单位,块设备的数据处理以块为单位。(8)inode结构用来记录文件的物理上的信息。一个文件有一个个inode结构。(9)设备树编写驱动程序分为两部分,即设备树和平台总线驱动。(10)驱动程序编写有三种方法,即:传统方法、平台总线和设备树。问答题简述驱动程序的主要功能?设备驱动程序作为操作系统最基本的组成部分,它的功能通常包括以下3部分。(1)对设备初始化和释放。驱动程序加载时,完成设备注册、中断申请、初始化等操作。当驱动程序卸载时,则将使用的设备号、中断和内存空间等资源释放出来。(2)数据传送。驱动程序最重要的功能就是在内核、硬件和应用程序之间传送数据,从而实现对设备的具体操作。(3)检测和处理设备出现的错误。驱动程序应能够对设备出现的一些常见错误具有检测和纠错等功能。简述设备驱动程序和应用程序的区别?驱动程序与应用程序的区别主要表现在以下3个方面。(1)应用程序一般有一个main函数,并从头到尾执行一个任务;驱动程序没有main函数,它在加载时,通过调用module_init宏,完成驱动设备的初始化和注册工作之后便停止,并等待被应用程序调用。(2)应用程序可以和GLIBC库连接,因此可以包含标准的头文件;驱动程序不能使用标准的C库,因此不能调用所有的C库函数,比如输出函数不能使用printf,只能使用内核的printk,包含的头文件只能是内核的头文件,比如:Linux/module.h。(3)驱动程序运行在内核空间(又称:内核态)比应用程序执行的优先级要高很多。应用程序则运行在最低级别的用户空间(又称:用户态),在这一级别禁止对硬件的直接访问和对内存的未授权访问。简述设备文件、驱动程序、主设备号和次设备号之间的关系?设备类型、主设备号、次设备号是内核与驱动程序通信时所使用的,但是对于开发应用程序的用户来说难于理解和记忆,所以Linux使用了设备文件的概念来统一对设备的访问接口。驱动程序内部调用了自动创建设备文件的函数,从而由内核完成设备文件。的创建工作。主设备号用于标识设备对应的驱动程序,主设备号相同的设备使用相同的设备驱动程序。一个主设备号可能有多个设备与之对应,这些设备在驱动程序内通过次设备号来进一步区分。次设备号是用来区分具体设备的实例(instance)。简述字符设备驱动程序提供的常用入口点及各自的功能?(1)open入口点。open子程序的功能是:对将要进行的I/O操作做好必要的准备工作,如清除缓冲区等。如果设备是独占的,即同一时刻只能有一个程序访问此设备,则open子程序必须设置一些标志以表示设备处于忙状态。(2)close入口点。当设备操作结束时,需要调用close子程序关闭设备。独占设备必须标记设备可再次使用。(3)read入口点。当从设备上读取数据时,需要调用read子程序。(4)write入口点。向设备上写数据时,需要调用write子程序。(5)ioctl入口点。ioctl入口点主要用于对设备进行读写之外的其它操作,比如配置设备、进入或退出某种操作模式等,这些操作一般无法通过read或write子函数完成操作。驱动程序编写有几种方法?简述各种方法的特点?(1)传统方法。在驱动程序代码中写死硬件资源,代码简单,所以不易扩展。(2)平台总线。把驱动程序分为两部分,即平台总线设备(platform_device)和平台总线驱动(platform_driver)。在平台总线设备中指定硬件资源,在平台总线驱动中完成分配硬件资源、设置硬件工作环境、以及注册file_operations结构体等工作。这种模型易于扩展,但是有很多冗余代码。如果硬件有变动,则需重新编译内核或驱动程序。(3)设备树。驱动程序也分为两部分,即设备树(DeviceTree)和平台总线驱动。在设备树中指定硬件资源。每次系统启动,设备树中的内容会自动传给内核,当加载驱动程序时,内核会自动将驱动程序与设备树中的硬件资源进行匹配,如果匹配成功,则启动驱动程序,否则中止驱动程序加载。使用设备树的优点是:易于扩展,没有冗余代码,当硬件有变动时,不需要重新编译内核或驱动程序,只需要修改设备树。第6章1、选择题(1)miniSQL开发者是(B)A)SleepycatSoftwareB)DavidJ.HughesC)D.RichardHippD)LinusBerkeleyDB2.0开发者是(A)。A)SleepycatSoftwareB)DavidJ.HughesC)D.RichardHippD)LinusSQLite第一个Alpha版本发布于2000年,用(B)编写的。A)JAVA语言B)C语言C)C++语言D)C#语言4)SQLite在2000年发布的版本是(C)。A)1.0B)2.0C)3.0D)4.0SQLite用(D)替换了gdbm。A)PageCacheB)ParserC)TokenizerD)B-treeSQLite内部共有(B)子系统组成。A)2B)3C)4D)5SQLite内部共有(D)独立模块组成。A)2B)4C
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年雄县教师招聘笔试备考试题及答案解析
- 2026年福建省晋江市平山中学面向部属师范生就业意向沟通笔试模拟试题及答案解析
- 2026年黑河孙吴县供销合作社联合社社有企业面向社会联合公开招聘8人考试参考题库及答案解析
- 2026年宣城市绩溪县人民医院招聘生活护理员笔试参考题库及答案解析
- 2026年吉林省演出有限责任公司招聘(96人)考试备考题库及答案解析
- 2026河北邢台市襄都区公益性岗位招聘6人考试备考题库及答案解析
- 2026广东阳江市高校毕业生基层公共就业创业服务岗位招募35人考试参考题库及答案解析
- 2026年资溪县教师招聘考试参考题库及答案解析
- 2026汉江师范学院第二批人才引进15人笔试参考题库及答案解析
- 2026江苏南通市妇幼保健院招聘备案制人员25人考试备考题库及答案解析
- 老年人认知障碍预防干预技术标准
- 2026年湖南中医药高等专科学校高职单招笔试职业技能测验试题库含答案解析3套试卷
- 2025年中国养老地产行业市场研究报告:CCRC与居家养老
- 2026-2027学年人教版八年级上学期数学第一次月考模拟测试抢分卷(含答案)
- 成本实操-有色金属矿采选成本核算SOP
- 教师五年专业发展目标达成情况个人总结
- 2025国家义务教育质量监测小学四年级语文试题
- 《全国校园心理危机分级识别专业技术指导原则(试行)》
- 雨课堂学堂云在线《人工智能原理》单元测试考核答案
- 2025年4月自考03450公共部门人力资源管理试题
- 农村房屋协议转让协议书
评论
0/150
提交评论