关闭

关闭

关闭

封号提示

内容

首页 哈工大《嵌入式系统设计》复习题参考答案.pdf

哈工大《嵌入式系统设计》复习题参考答案.pdf

哈工大《嵌入式系统设计》复习题参考答案.pdf

上传者: luwan123_esqp6 2013-12-28 评分 0 0 0 0 0 0 暂无简介 简介 举报

简介:本文档为《哈工大《嵌入式系统设计》复习题参考答案pdf》,可适用于高等教育领域,主题内容包含哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所敬告、本参考答案适用于年秋季学期自动化测试与控制系《嵌入式系统设计》。请使用前核对考试科目。、符等。

哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所敬告、本参考答案适用于年秋季学期自动化测试与控制系《嵌入式系统设计》。请使用前核对考试科目。、本参考答案主要参考书目为《嵌入式系统设计》(北京航空航天大学出版社美FrankVahid著骆丽译)、《Linux设备驱动程序》(中国电力出版社JonathanCorbet著魏永明译)。请要求严格的同学提前准备相关资料。、本参考答案置信概率在~之间请辩证接受后果自负。、复习题第题未能解出万分遗憾请见谅。何谓嵌入式系统?为何嵌入式系统难以定义?嵌入式系统IEEE的定义为:嵌入式系统是“用于控制、监视或者辅助操作机器和设备的装置”(devicesusedtocontrol,monitor,orassisttheoperationofequipment,machineryorplants)。嵌入式系统广泛接受的定义为:从技术角度而论以应用为中心、以计算机技术为基础软硬件可裁剪,应用系统对功能、可靠性、成本、体积、功耗和应用环境有特殊要求的专用计算机系统从系统角度而论嵌入式系统是设计完成复杂功能的硬件和软件并使其紧密耦合在一起的计算机系统。嵌入式系统难以定义的原因:广义上讲凡是带有微处理器的专用软硬件系统都可称为嵌入式系统。如各类单片机和DSP系统。这些系统在完成较为单一的专业功能时具有简洁高效的特点。但由于他们没有操作系统管理系统硬件和软件的能力有限在实现复杂多任务功能时往往困难重重甚至无法实现。从狭义上讲我们更加强调那些使用嵌入式微处理器构成独立系统具有自己操作系统具有特定功能用于特定场合的嵌入式系统。本课程中的嵌入式系统是指狭义上的嵌入式系统。试说明在哈佛结构中程序和数据存储器的存取可以怎样重叠。冯诺依曼体系和哈佛体系的区别就是程序空间和数据空间是否是一体的。早期的微处理器大多采用冯诺依曼结构典型代表是Intel公司的X微处理器。取指和取操作数都在同一总线上通过分时服用的方式进行的。缺点是在高速运行时不能达到同时取指令和取操作数从而形成了传输过程的瓶颈。哈佛总线技术应用是以DSP和ARM为代表的。采用哈佛总线体系结构的芯片内部程序空间和数据空间是分开的这就允许同时取指和取操作数从而大大提高了运算能力。简述在基于总线的IO中微处理器与外部设备之间的两种通信方式以及两者之间的优缺点。在基于总线的IO中微处理器与外部设备之间的通信方式有存储器映射IO和标准IO两种。在存储器映射IO(memorymappedIO)方式下外部设备占用现有地址空间中的特定地址。例如某条总线有位地址其中较低的K地址空间与存储器地址空间对应而较高的K地址空间可以与IO地址空间对应。在标准IO(standardIO也称为IO映射IO)方式下总线有另外一个引脚(在此命名为MIO)表示是对存储器的存取还是对外部设备(如IO设备)的存取。例如当MIO为时地址总线上的地址对应于一个存储器地址当MIO为时地址总线上的地址对应于一个外部设备。存储器映射IO的优点是微处理器不需要专门用来与外部设备通信的指令微处理器中有关存储器的汇编语言指令同样也适用于外部设备如MOV和ADD。例如某微处理器有一条“ADDA,B”指令能将地址B的数据和地址A的数据相加并将结果存入地址A中A和B可能对应于存储器的位置或外部哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所设备中的寄存器。相反地如果微处理器使用标准IO则需要专门的指令来读取或写入外部设备这些指令通常称为IN和OUT。因此如果要对对应于外部设备的位置A和B做相同的加法运算就需要使用下列指令:INR,AINR,BADDRROUTA,R标准IO的有点包括不会牺牲寄存器的地址来作为IO地址而且外部设备的地址译码逻辑可能比较简单。如果知道系统中只有少数外部设备则使用标准IO可以简化地址译码逻辑因为外部设备可以忽略高地址位。例如某条总线可能有位的地址线其所需的IO地址绝不会超过个外部设备可以忽略地址线的高位而不会产生问题这样每个外部设备中的地址比较器可以较小而且较快。注意可以同时用标准IO和存储器映射IO来建立系统因为在存储器空间中的外部设备其操作方式就像存储器一样。试述微处理器的指令执行的几个基本阶段。微处理器的指令执行可认为由几个基本阶段组成:()读取指令:从存储器中读取下一条指令并放入指令寄存器中。()指令译码:确定指令寄存器中的指令所表示的运算(如加、移位等)。()读取操作数:将指令所需的操作数移入相应的寄存器中。()执行运算:将相应寄存器中的内容送到ALU中再将结果返回到相应寄存器内。()存储结果:将寄存器内容写入存储器。如果每个阶段需要一个时钟周期则每个指令需要多个时钟周期才能完成。简述直接存储器存储(DMA)的基本原理。(a):微处理器正在执行主程序准备配置DMA控制寄存器。:在执行完地址为的指令后微处理器检查到Dreq有效交出系统总线将Dack引脚设置为有效继续执行只有在需要系统总线才能继续执行时才暂停。:DMA控制器将Dreq引脚设置为有效请求系统总线控制权。:(a)DMA控制器将ack引脚设置为有效(b)从地址为x的寄存器中读出数据(c)将数据写入存储器地址x中。(a):微处理器将Dack引脚设置为无效重新取得系统总线控制权。:DMA控制器将Dreq和ack引脚设置为无效结束与P的握手。(b):P接收数据并放入地址位x的寄存器中。:P将req引脚设置为有效请求DMA控制器的服务。(b):P将req引脚设置为无效。直接存储器存取(DMADirectMemoryAccess)的IO方法消除了处理器的无效率现象。在DMA中使用了一个独立的单用途处理器成为DMA控制器其任务就是在存储器和外部设备之间传输数据。简单的说外部设备向DMA控制器请求服务接着DMA控制器向微处理器请求系统总线的控制权微处理器只需要把总线控制权让给DMA控制器即可而不需要到ISR的跳转因此消除了存储和恢复微处理器状态的额外负担。并且微处理器在DMA控制器享有总线控制权时可以继续执行一般程序只要该设备不需要使用总线即可。如果该程序需要使用总线则微处理器不得不等待DMA结束。如果系统在微处理器和高速缓冲存储器之间另有一条独立的总线则在DMA传输过程中系统可以执行直接从高速缓冲存储器中取得所需指令和数据发明进程的根本动机为何?它与程序是什么关系?请予以论述。并发进程模型允许用个或个以上并发执行的子任务来描述系统的功能很多系统容易用一组并发执行的任务来描述因为这些系统本身就是多任务系统。一般而言并发进程模型对于描述那些本身就是多子任务的系统很有用也就是说这些系统的功能最适合用一些同时执行的子任务来描述。哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所要将系统描述为一组并发执行的任务可以使用表达并发进程模型的语言来描述然后根据这个描述生成实现。实现是系统功能在硬件处理器上的一种映射其中系统功能用一个或多个计算模型来表达并用一种或多种语言来编写。程序语言的选择与实现无关使用某种语言可能是因为这种语言能表达用于描述系统的计算模型选择某种实现则可能是因为这种实现能满足功率、时序、性能和成本等系统要求。一旦得到最后的实现设计者就可以执行该系统观察其行为测量其所关注的设计指标并决定该实现是否可行最后的实现也可以作为最终产品大批量生产时的蓝图或雏形。发明进程的原因是有些系统的行为实际上是由多个独立的自行为构成的。而要用时序模型把这几个部分描述为单个时序程序会相当困难。在此使用多个时序程序分别描述多个部分表明其可以并发执行。但不想要多个完全独立的程序。因为多个程序实际上要进行通信。并发进程模型可以达到这个目标在这个模型中进程就是多个时序程序中的一个程序。进程的传统定义是一个执行单位一个进程与模型中的其他进程并发执行通常被看作是一个无穷循环不断地执行其时序语句。简述NOR技术和NAND技术闪存的特点。NOR和NAND是现在市场上两种主要的非易失闪存技术。NOR技术FlashMemory具有以下特点:NOR技术闪速存储器是最早出现的FlashMemory目前仍是多数供应商支持的产品它源于传统的EPROM器件。与其它FlashMemory技术相比具有可靠性高、随机读取速度快的优势但擦除和写的速度较NANDFlash慢。在擦除和编程操作较少而直接执行代码(XIP,eXecuteInPlace)的场合尤其是代码(指令)存储的应用中广泛使用。由于NOR技术FlashMemory的擦除和编程速度较慢而块尺寸又较大因此擦除和编程操作所花费的时间很长在纯数据存储和文件存储的应用中NOR技术显得力不从心。NAND技术FlashMemory具有以下特点:以页为单位进行读和编程操作页为或k字节以块为单位进行擦除操作块为K、K或K字节。具有快编程和快擦除的功能其块擦除时间是ms而NOR技术的块擦除时间达到几百ms以上。数据、地址采用同一总线实现串行读取。随机读取速度慢且不能按字节随机编程。芯片尺寸小引脚少是位成本(bitcost)最低的固态存储器突破了每兆字节元的价格限制。芯片包含有失效块其数目最大可达到~块(取决于存储器密度)。失效块不会影响有效块的性能但设计者需要将失效块在地址映射表中屏蔽起来。NAND存储器常用于电子硬盘或其它块设备的制造说明嵌入式系统中Bootloader的基本原理。Bootloader是在操作系统运行之前执行的一段小程序。对于嵌入式系统Bootloader是基于特定硬件平台来实现的。Bootloader通常是分级的级内也可再细分为不同阶段。以提供更为复杂的功能更好的可移植性。Bootloader两种工作模式:启动加载(Bootloading)模式Bootloader从目标机上某个固态存储设备上将操作系统加载到RAM中运行没有用户干预正常工作模式下载(Downloading)模式通过串口或网口从主机下载文件如内核映像和根文件系统映像下载的文件先被Bootloader保存到目标机的RAM中然后再被Bootloader写到目标机上的Flash是第一次安装内核或更新时使用的模式。Bootloader空间分布:同时装有Bootloader、启动参数、内核映像和根文件系统映像的固态存储设备的典型空间分配结构图如下。ATRM芯片内部ROM集成一个Bootloader及一个引导Uploader以保证正确的信息下载。通过设置BMS引脚确定系统复位后从内部ROM启动还是从外部存储器启动。BMS置位则从内部ROM启动。从内部ROM启动:复位后Remap之后首先执行一级Bootloader它要做的第一件事就是设备初始化主要包括:设置PMC(PowerManagementController)为各种ARM模式建立堆栈检测主振荡器频率设定中断控制器初始化C变量跳转到main函数执行。从片外存储器启动:若BMS=则将外部存储器的区域x重映射至内部存储区x(Remap),即从外部存储器启动。存储器中的启动代码的来源有:直接通过编程器将启动代码写入外部存储器通过JTAG接口从主机下载到目标系统的闪存芯片由ATRM处理器的内部BOOTROM启动系统与主机建立通信并下载所需代码再写入闪存芯片。哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所二级Bootloader的原理:stage通常包括以下步骤:硬件设备初始化为加载stage准备RAM空间拷贝stage到RAM空间中设置好堆栈跳转到stage的C入口点。stage通常包括以下步骤:初始化本阶段要使用到的硬件设备检测系统内存映射将kernel映像和根文件系统从flash上读到RAM空间中为内核设置启动参数调用内核。其中基本硬件初始化包括:屏蔽所有的中断设置CPU的时钟频率RAM初始化初始化LED关闭CPU内部指令数据cache。将kernel映像和根文件系统从flash上读到RAM空间中包括:若kernel映像保存在NorFlash则可不复制到RAM空间直接从NorFlash上启动但会影响启动速度。(空间和时间的转换)根文件系统也可不复制到RAM空间但需要MTD驱动(且与启动参数有关)。比较固定中断和向量中断说明中断地址表的优点。使用中断的微处理器必须确定ISR的起始地址该地址称为中断地址向量(interruptaddressvector)。确定该地址的方式有固定中断和向量中断种。在固定中断(fixedinterrupt)方式下中断发生时微处理器的跳转地址在微处理器中这个地址是固定且无法修改的汇编程序程序员可以将ISR放在该地址。如果存储器的这个区域没有足够的空间也可以只在该地址放置一个可以跳转到实际ISR的指令。对C语言程序员而言编译程序一般会为ISR保留特定名称并编译具有该特定名称的子程序将其放在ISR地址或者在ISR地址里放置一个跳转到该子程序的指令。在具有固定ISR地址的微处理器里可能有多个中断引脚支持来自多个外部设备的中断。其他微处理器使用向量中断(vectoredinterrupt)来确定ISR所在的地址。这种方法在有系统总线的系统中特别常用这是因为可能有大量外部设备要请求服务。在这种方式下微处理器有一个中断引脚Int可以由任何外部设备来设置。当微处理器检测到中断请求后会将另一个引脚Inta设置为有效通知外部设备它已检测到中断并要求产生中断的外部设备提供相关的ISR的所在地址。外部设备将地址放在数据总线上微处理器则读取该地址并跳转到相应的ISR。在固定方式和向量中断方式之间的折中方式是使用中断地址表(interruptaddresstable)。在这种方式下微处理器只有一个中断引脚单处理器的存储器中建立了一个存有ISR地址的表该表一般有项。外部设备不再提供ISR地址而是提供对应表中某项数字处理器从总线上读取该数字然后读取表中对应项以取得ISR地址。与整个存储器相比该表通常很小因此表示某项数字所占的编码位数也很少。当数据总线因宽度不够而无法传送完整的ISR地址时这种编码位数少的方式尤其重要。而且这种方法允许为每个外部设备分配一个与ISR位置无关的唯一数字也就是说可以移动ISR的存放位置而不必对外部设备做任何改变。简述在多处理器对共用资源(如总线)同时存取时需要用到的两种仲裁机制的特点。优先权仲裁器可以仲裁利用向量中断向微处理器请求服务的多个外部设备。其中每个外部设备向仲裁器发出请求接着仲裁器将微处理器的中断设置为有效等待中断响应然后仲裁器向一个外部设备发出响应信号允许该外部设备将其中断向量地址放在总线上使微处理器跳转到该外部设备的中断服务子程序。优先权仲裁器一般使用固定优先权和循环优先权种方式来确定多个外部设备的优先权。循环优先权仲裁也称为轮流仲裁(roundrobin)仲裁器依据对外部设备服务的历史来改变外部设备的优先权。菊花链仲裁直接将仲裁机制建立在外部设备内部每个外部设备有一个请求输出和一个响应输入不过这里的每一个外部设备又增加了一个请求输入和响应输出。当外部设备响应服务或其请求输入被设置为有效时该外部设备将其请求输出设置为有效这表示该外部设备的一个上有设备在请求服务。这样即使有多个外部设备在请求服务微处理器仍然只能检测到一个请求。如果要增加或减少嵌入式系统中的外部设备而又不需要新设计系统则使用菊花链优先权配置比使用优先权仲裁器更好。简述Linux内核移植的主要过程。第一部分准备工作下载Linux内核和patch并打上Atmel系列处理器的内核补丁。如果需要内核支持一款新的开发板那么至少要移植arch否则Linux是无法在相应处理器上跑起来的。下载安装并配置armlinuxgcc工具链:第二部分代码配置修改Makefile使其适用于相应的平台和编译器并裁减相应驱动:哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所#geditMakefileARCH=armCROSSCOMPILE=usrlocalarmbinarmlinux修改后保存退出。配置并编译内核将提供的内核配置文件ATRMEXPcfg拷贝到内核路径下在该内核配置文件的基础上用makemenuconfig进一步进行设置#cpATRMEXPcfghomelinuxhzh#makemenuconfig出现配置菜单找到Loadconfigfile进入后输入ATRMEXPcfg。在ATRMEXPcfg的基础上根据自己的需要定制内核。配置完成后保存退出编译内核。#make编译结束后生成archarmbootzImage映像文件这就是内核的映像文件。将zImage复制到share文件夹下然后下载到目标板中。下载内核映像zImage到目标板运行通过BIOS将内核映像烧写到目标板中。a)连接好PC机与目标板连接好串口线、交叉网线、电源按照图配置超级终端串口参数上电复位开发板进入BIOS界面。b)在将内核烧写入Flash之前先进行块擦除操作在BIOS下输入以下命令(本实验将文件系统烧写入NandFlash第个分区即分区):ATCI>nferase输入命令回车后要进行要擦除的分区选择输入“”在接着出现的yn下输入“y”将NandFlash第个分区擦除。c)输入netload命令点击存有内核映像的文件夹下的zImagebat批处理文件或在cmd下进入内核镜像所在的文件夹下输入tftp–iputzImage(本实验采用后一种)将内核映像下载到SDRAM中。d)将内核映像烧写入Flash输入命令:ATCI>nfprog选择分区“”将内核烧写入Nandflash的第个分区在接着出现的yn下输入“y”。e)由于板上已经有文件系统所以直接复位测试编译的内核能否正常运行正常运行便能在超级终端下看到内核启动信息。画出通用处理器的基本结构并说明各部分的功能。通用处理器有时也称CPU(中央处理单元)或微处理器由数据路径和控制单元构成并与存储器紧密连接。数据路径由数据转换和数据临时存储电路构成其中包含一个算术逻辑(ALU)可以通过加法、减法、逻辑与、逻辑或取反以及移位等运算来转换数据。ALU还可以产生状态信号状态信号通常存储在状态寄存器中。数据路径也包括存储临时数据的寄存器以及需要从某一存储位置移到另一位置的数据等。内部数据总线传递数据路径内部的数据外部数据总线则与存储器交换数据。控制单元由读取程序指令以及根据指令使数据输入、输出或经过数据路径的电路组成。控制单元有一个程序计数器(PC)和一个指令寄存器(IR)。程序计数器用来记录要读取的下一条程序指令的存储地址指令寄存器用来存放读取的指令。控制单元还有一个控制器由状态寄存器以及次态和控制逻辑组成。控制器顺序经过各状态并产生控制信号以控制指令读入IR以及数据在数据在数据路径中的流动。寄存器可以满足处理器短时的存储要求存储器则可以满足处理器中长期信息处理器存储器控制单元控制器PCIR数据路径控制状态IOALU寄存器哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所存储要求。存储信息可分为数据或程序。程序信息包括一系列指令使处理器可以完成所需的系统功能数据信息代表输入输出程序已经由程序处理的值。列出并说明嵌入式系统不同于其他计算系统的个主要特征。通用计算机与嵌入式系统对比特征通用计算机嵌入式系统形式和类型看得见的计算机。按其体系结构、运算速度和结构规模等因素分为大、中、小型机和微机。看不见的计算机。形式多样应用领域广泛按应用来分。组成通用处理器、标准总线和外设。软件和硬件相对独立。面向应用的嵌入式微处理器总线和外部接口多集成在处理器内部。软件与硬件是紧密集成在一起的。开发方式开发平台和运行平台都是通用计算机采用交叉开发方式开发平台一般是通用计算机运行平台是嵌入式系统。二次开发性应用程序可重新编制一般不能再编程嵌入式系统的特点:1.功能单一只重复执行一个程序:一般用于特定的任务其硬件和软件都必须高效率地设计量体裁衣、去除冗余而通用计算机则是一个通用的计算平台。它通常都具有低功耗、体积小、集成度高等特点能够把通用微处理器中许多由板卡完成的任务集成在芯片内部。嵌入式软件是应用程序和操作系统两种软件的一体化程序。2.严格约束低成本、低功耗、大小、速度:嵌入式系统通常需要注意的成本是系统成本特别是量大的消费类数字化产品其成本是产品竞争的关键因素之一。3.反应性和实时性不断地对环境变化及时作出反应必须实时计算出结果不允许有延迟:一方面大多数实时系统都是嵌入式系统。另一方面嵌入式系统多数有实时性的要求软件一般是固化运行或直接加载到内存中运行具有快速启动的功能。并对实时的强度要求各不一样可分为硬实时和软实时。嵌入式系统一般要求具有出错处理和自动复位功能特别是对于一些在极端环境下运行的嵌入式系统而言其可靠性设计尤其重要。在大多数嵌入式系统的软件中一般都包括一些机制比如硬件的看门狗定时器软件的内存保护和重启动机制。何谓单用途处理器?与通用处理器相比选用单用途处理器有何优点?单用途处理器是设计用于执行特定程序的数字电路。许多人把设计实现这一部分简称为硬件部分但实际上即使软件也需要硬件处理器才能执行其他常用术语还有:协处理器(coprocessor)、加速器(accelerator)与外设。在嵌入式系统中使用单用途处理器在指标上有一些优缺点这些优缺点与通用处理器基本上相反性能可能更好体积和功率可能较小数量大时单位成本可能较低。而设计时间与NRE成本可能较高灵活性较低数量小时的单位成本可能较高且对某些应用而言性能还比不上通用处理器。简述高速缓存(CACHE)的工作原理。高速缓存(CACHE)是位于CPU与内存之间的临时存储器它的容量比内存小但交换速度快。缓存是为了解决CPU速度和内存速度的速度差异问题。内存中被CPU访问最频繁的数据和指令被复制入CPU中的缓存这样CPU就可以不经常到相对很慢的内存中去取数据了CPU只要到缓存中去取就行了而缓存的速度要比内存快很多。哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所高速缓存的工作原理如上图所示:当CPU要读取一个数据时首先从缓存中查找如果找到就立即读取并送给CPU处理如果没有找到就用相对慢的速度从内存中读取并送给CPU处理同时把这个数据所在的数据块调入缓存中可以使得以后对整块数据的读取都从缓存中进行不必再调用内存。简述使用嵌入式操作系统的优缺点。使用嵌入式操作系统的优缺点如下:优点:使程序的设计和扩展变得容易大大提高了开发效率充分发挥位CPU多任务的潜力实现多任务设计能够充分利用硬件资源和实现资源共享实时性和健壮性能够得到更好的保证。缺点:嵌入式操作系统增加ROMRAM等额外开销~%的CPU额外负荷。说明如何使用进程创建和连接语义来仿真时序程序模型的程序调用语义。不知道答案何为流水线技术并举例说明。流水线(Pipeline)技术:是一种将每条指令分解为多步并让各步操作重叠从而实现几条指令并行处理的技术。流水线技术提高了CPU的运行效率内部信息流要求通畅流动。指令流水线以ARM为例:为增加处理器指令流的速度ARM系列使用级流水线。流水线技术允许多个操作同时处理比逐条指令执行要快。PC指向正被取指的指令而非正在执行的指令最佳流水线:该例中用个时钟周期执行了条指令所有的操作都在寄存器中(单周期执行)指令周期数(CPI)=。简述进程间的通信方法。如果系统功能被分为个或个以上并发执行的进程有必要提供这些进程之间进行通信的方法。常见的进程通信方法有共享存储器(sharedmemory)和消息传递(messagepassing)种。在共享存储器方法中多个进程可以读写相同的存储器位置。在消息传递方法中进程之间可以直接发送或接受数据。在共享存储器方法中多个进程通过读写相同的存储器位置或共用变量来互相通信这种通信方式非常有效也容易实现。互斥(mutex)是实现这种功能的基元。使用消息传送方法两个进程之间可以直接交换数据。也就是说如果一个进程要发送数据给另一个进程可以执行一个特殊操作即发送(send)。同样的一个进程从另一个进程那里接收数据可以执行一个特殊操作即接收(receive)。发送和接收都需要一个标识符(identifier)以明确将数据送到哪个进程。注意接收操作一定是可阻塞的操作。简述存储器管理单元(MMU)的基本原理。哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所MMU是MemoryManagementUnit的缩写中文名是存储器管理单元它是中央处理器(CPU)中用来管理虚拟存储器、物理存储器的控制线路同时也负责虚拟地址映射为物理地址以及提供硬件机制的内存访问授权。虚拟存储器的基本思想是程序、数据、堆栈的总的大小可以超过物理存储器的大小操作系统把当前使用的部分保留在内存中而把其他未被使用的部分保存在磁盘上。比如对一个MB的程序和一个内存只有MB的机器操作系统通过选择可以决定各个时刻将哪M的内容保留在内存中并在需要时在内存和磁盘间交换程序片段这样就可以把这个M的程序运行在一个只具有M内存机器上了。而这个M的程序在运行前不必由程序员进行分割简述使用优先权仲裁器进行仲裁的过程(画出过程图)。微处理器IntaInt优先级仲裁器IreqIackIreqIack系统总线外部设备外部设备)微处理器正在执行其程序。)外部设备需要服务将Ireq设置为有效外部设备也需要服务将Ireq设置为有效。)优先权仲裁器检查到有多个Ireq输入将Int设置为有效。)微处理器暂停执行其程序保存其状态。)微处理器将Inta设置为有效。)优先权仲裁器将Iack设置为有效响应外部设备。)外部设备将其中断地址向量放在系统总线上。)微处理器从数据总线上读取该外部设备的ISR地址并跳转到该地址去执行然后返回并结束与仲裁器的握手。)微处理器恢复执行其程序。优先权仲裁器可以仲裁利用向量中断向微处理器请求服务的多个外部设备。其中每个外部设备向仲裁器发出请求接着仲裁器将微处理器的中断设置为有效等待中断响应然后仲裁器向一个外部设备发出响应信号允许该外部设备将其中断向量地址放在总线上使微处理器跳转到该外部设备的中断服务子程序。优先权仲裁器一般使用固定优先权和循环优先权种方式来确定多个外部设备的优先权。在固定优先权仲裁中每个外部设备有一个固定的优先级该优先级可以用数字表示。如果个外部设备同时请求服务则仲裁器选择具有较高优先级的外部设备。循环优先权仲裁也称为轮流仲裁(roundrobin)仲裁器依据对外设备服务的历史来改变外部设备的优先权。如果外部设备之间的优先权明显不同使用固定优先权法更好。简述ARM处理器的特点。ARM处理器为RISC芯片其简单的结构使ARM内核非常小这使得器件的功耗也非常低。它具有经典RISC的特点:大的、统一的寄存器文件装载保存结构数据处理操作只针对寄存器的内容而不直接对存储器进行操作统一和固定长度的指令域简化了指令的译码便于指令流水线设计简单的寻址模式ARM体系结构的特点:每条数据处理指令都对算术逻辑单元和移位器控制实现了ALU和移位器的最大利用地址自动增加和减少寻址模式优化程序循环多寄存器装载和存储指令实现最大数据吞吐量所有指令的条件执行实现最快速的代码执行。此外在指令方面ARM处理器还有如下特点:每条数据处理指令都对算术逻辑单元和移位器控制实现了ALU和移位器的最大利用地址自动增加和减少寻址模式优化程序循环多寄存器装载和存储指令实现最大数据吞吐量所有指令的条件执行实现最快速的代码执行。Linux下如何实现进程的调度。进程是Linux系统的基本调度和管理资源的单位那么从系统的角度看如何描述并表示它的变化呢?在这里是通过进程控制块来描述的。进程控制块包含了进程的描述信息、控制信息以及资源信息它是进程的一个静态描述。在Linux中进程控制块中的每一项都是一个taskstruct结构它是在includelinuxschedh中定义的。哈尔滨工业大学自动化测试与控制系自动化测试与控制研究所Linux下的进程管理包括启动进程和调度进程。启动进程:Linux下启动一个进程有两种主要途径:手工启动和调度启动。手工启动是由用户输入命令直接启动进程而调度启动是指系统根据用户的设置自行启动进程。调度进程:调度进程包括对进程的中断操作、改变优先级、查看进程状态等在Linux下可以使用相关的系统命令实现其操作在下表中列出了Linux中常见的调用进程的系统命令读者在需要的时候可以自行查找其用法。选项参数含义ps查看系统中的进程top动态显示系统中的进程nice按用户指定的优先级运行renice改变正在运行进程的优先级kill向进程发送信号(包括后台进程)crontab用于安装、删除或者列出用于驱动cron后台进程的任务。bg将挂起的进程放到后台执行在Linux调度算法方面调度程序中最基本的数据结构是运行队列(runqueue)。其中使用了自旋锁用于防止多个任务同时对可执行队列进行操作。每个运行队列都有个优先级数组一个活跃的和一个过期的。在占用处理器时间上采用新建子程序和父进程均分父进程剩余的进程时间片的方式实现均衡。选定下一个进程并切换到它去执行是通过schedule()函数实现的。简述嵌入式设备驱动模块加载与卸载的实现过程。对Linux内核insmod完成设备驱动模块的加载其与ld有些类似它将模块的代码和数据装入内核然后使用内核的符号表解析模块中任何未解析的符号。然而与链接器不同内核不会修改模块的磁盘文件而仅仅修改内存中的副本。Insmod可以接受一些命令行选项并且可以在模块链接到内核之前给模块中的整型和字符串型变量赋值。modprobe也用来将模块装载到内核其与insmod的区别在于它会考虑要装载的内核是否引用了一些当前内核不存在的符号并同时加载与指定模块相关依赖关系的所有模块。对Linux内核我们可以使用rmmod工具从内核中移除模块。注意如果内核认为模块仍然在使用状态或者内核被配置为禁止移除模块则无法移除。

用户评论(0)

0/200

精彩专题

上传我的资料

每篇奖励 +2积分

资料评价:

/9
0下载券 下载 加入VIP, 送下载券

意见
反馈

立即扫码关注

爱问共享资料微信公众号

返回
顶部