嵌入式复习题(共11页)_第1页
嵌入式复习题(共11页)_第2页
嵌入式复习题(共11页)_第3页
嵌入式复习题(共11页)_第4页
嵌入式复习题(共11页)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、精选优质文档-倾情为你奉上嵌入式系统原理与设计第一章 嵌入式系统概述1、什么是嵌入式系统?嵌入式系统和普通人的生活非常紧密,如日常生活中使用的手机、微波炉、有线电视机顶盒等,都属于嵌入式系统。与通常使用的PC机相比,嵌入式系统的形式变化多样、体积小,可以灵活地适应各种设备的需求。因此,可以把嵌入式系统理解为一种为特定设备服务的,软件硬件可裁剪的计算机系统。嵌入式系统的英文名称是Embedded System。目前被我国科学家普遍认同的定义是:嵌入式系统是以应用为中心,以计算机技术为基础,软硬件可裁减,对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统。2、 嵌入式系统具有哪些特点?嵌入式

2、系统通常是面向特定应用的嵌入式CPU,与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,执行的是带有特定要求的预先定义的任务,如实时性、安全性、可用性等。它通常具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。嵌入式系统是将先进的计算机技术、半导体技术和电子技术与各个行业的具体应用相结合的产物。这一点就决定了它必然是一个技术密集、资金密集、高度分散、不断创新的知识集成系统;嵌入式系统的硬件和软件都必须高效率地设计,量体裁衣、去除冗余,力争在同样的硅片面积上

3、实现更高的性能,这样才能在具体应用中对处理器的选择更具有竞争力。由于嵌入式系统通常需要进行大量生产,所以单个的成本节约,能够随着产量进行成百上千的放大。3、 嵌入式系统与通用计算机相比有哪些区别?嵌入式系统通常是面向特定应用的嵌入式CPU,与通用型的最大不同就是嵌入式CPU大多工作在为特定用户群设计的系统中,执行的是带有特定要求的预先定义的任务,如实时性、安全性、可用性等。它通常具有低功耗、体积小、集成度高等特点,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统设计趋于小型化,移动能力大大增强,跟网络的耦合也越来越紧密。与通常使用的PC机相比,嵌入式系统的形式变化多样

4、、体积小,可以灵活地适应各种设备的需求。(1) 以应用为中心;(2) 以计算机技术为基础(3) 软件和硬件可裁减(4) 对系统性能要求严格(5) 软件的固件化(6) 需要专用的开发工具4、 嵌入式系统有哪些组成部分?简单说明各部分的功能与作用。嵌入式处理器:嵌入式处理器是嵌入式系统核心部件。外围设备:是指在一个嵌入式系统中,除嵌入式处理器以外用于完成存储、通信、调试、显示等辅助功能的其他部件。嵌入式操作系统:应用软件:5、嵌入式系统的核心计算系统可以抽象出一个典型的组成模型:硬件层、中间层、软件层和功能层。6、 嵌入式处理器分哪四大类?低端的微控制器中高端的嵌入式微处理器通信领域的DSP处理器

5、高度集成的片上系统7、 常用的嵌入式操作系统哪些?各有什么的特点?常见的嵌入式操作系统有Windows CE、VxWorks、C/OS、嵌入式linux。第二章 ARM体系结构和存储器管理1、ARM内核版本命名规则是怎样的?说明ARM7TDMI的含义。ARM内核命名时以数字表示内核的版本号,以字母表示内核所支持的额外功能。规则如下:ARMxyzTDMIEJF-S大括号内的字母是可选的,各个字母的含义如下。x系列号,如ARM7中的“7”、ARM9中的“9”。y内部存储管理/保护单元,如ARM72中的“2”、ARM94中的“4”。z内含有高速缓存(Cache)。T支持16位的Thumb指

6、令集。D支持JTAG片上调试。M支持用于长乘法操作(64位结果)的ARM指令,包含快速乘法器。I带有嵌入式追踪宏单元ETM(Embedded Trace Macro),用来设置断点和观察点的调试硬件。E增强型DSP指令(基于TDMI)。J含有Java加速器Jazelle,与Java虚拟机相比,Jazelle使Java代码运行速度提高了8倍,功耗降低到原来的80%。F向量浮点单元。S可综合版本,意味着处理器内核是以源代码形式提供的。这种源代码形式又可以被编译成一种易于EDA工具使用的形式。 2、 ARM体系结构中的字、半字及字节分别是多少位?字32位;半字16位;字节8位;3、 ARM处理器的工

7、作状态有哪2种?这2种工作状态的特点是什么?怎么确定处理器的目前的工作状态?ARM:32位,这种状态下执行字对齐的ARM指令,当操作数寄存器的状态位为1时,执行BX指令进入Thumb状态Thumb:16位,这种状态下执行半字对齐的Thumb指令,当操作数寄存器的状态位为0时,执行BX指令进入ARM状态4、ARM体系结构的存储字数据的方法有哪2种?这2种方法的特点是什么?(1)大端格式:字数据的高字节存储在低地址中,而字数据的低字节则存放在高地址中。(2)小端格式: 与大端格式相反, 在消遁存储格式中,低地址存放在字数据的低字节,高地址存放的是字数据的高字节。5、 ARM处理器的工作模式有哪几种

8、?这几种工作模式的特点是什么? 用户模式(usr):ARM处理器正常的程序执行状态。 快速中断模式(fiq):用于高速数据传输或通道处理。 外部中断模式(irq):用于通用的中断处理。 管理模式(svc):操作系统使用的保护模式。 数据访问终止模式(abt):当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护。 系统模式(sys):运行具有特权的操作系统任务。 未定义指令中止模式(und):当未定义的指令执行时进入该模式,可用于支持硬件协处理器的软件仿真。6、说明ARM处理器的寄存器分类及各自的功能。通用寄存器(1) 不分组寄存器R0R7(2) 分组寄存器R8R14(3) 程序计数器R

9、15程序状态寄存器Thumb状态的寄存器集7、程序状态寄存器分哪几个域?各位的含义是什么?(1)条件码标志:检测指令是否执行(2)控制位:当发生异常时这些位可以被改变。如果处理器运行特权模式,这些位也可以由程序修改。(3)其他位:程序寄存器的其他位保留,用作以后的扩展8、 什么叫异常?异常的种类有哪些?每种异常的特点是什么?常见异常的优先级是怎么样的?异常如何响应?异常由内部或外部源产生并引起处理器处理一个事件。当一个异常出现以后,ARM微处理器会执行以下几步操作。 将下一条指令的地址存入相应连接寄存器LR,以便程序在处理异常返回时能从正确的位置重新开始执行。若异常是从ARM状态进入,LR寄存

10、器中保存的是下一条指令的地址(当前PC4或PC8,与异常的类型有关);若异常是从Thumb状态进入,则在LR寄存器中保存当前PC的偏移量,这样,异常处理程序就不需要确定异常是从何种状态进入的。例如,在软件中断异常SWI,指令MOV PC,R14_svc总是返回到下一条指令,不管SWI是在ARM状态执行,还是在Thumb状态执行。 将CPSR复制到相应的SPSR中。 根据异常类型,强制设置CPSR的运行模式位。 强制PC从相关的异常向量地址取下一条指令执行,从而跳转到相应的异常处理程序处。还可以设置中断禁止位,以禁止中断发生。如果异常发生时,处理器处于Thumb状态,则当异常向量地址加载入PC时

11、,处理器自动切换到ARM状态。9、 S3C6410的物理内存分成 Memory 和 Pheriperal 两部分,分别通过 SPINE 总线和 PERI 总线访问。(S3C6410的物理内存分成Memory和Pheriperal两部分,系统通过 SPINE总线访问Memory空间,通过PERI总线访问Pheriperal空间。)10、主存储器分哪4个区域?各部分的作用是什么?1.启动镜像区这个区域的作用正如它的名字所述,是用来启动系统的。2. 内部内存区这个区域对应着内部的内存地址,内部的ROM和SRAM都是分布在这个区间。3.静态内存区这个区域用于访问挂在外部总线上的设备,比如说SRAM、N

12、OR flash、oneNand等。4.动态内存区这个内存区主要是扩展DRAM,最大可以扩展512MB的DRAM。 11、用于存储管理的系统控制协处理寄存器是 CP15 协处理器 。12、MCR、MRC指令的作用是什么?该两条指令只能在什么模式下执行? MCR ARM寄存器到协处理器寄存器的数据传送 MRC 协处理器寄存器到ARM寄存器的数据传送MCR指令和MRC指令只能在处理器模式为系统模式时执行,在用户模式下执行MCR指令和MRC指令将会触发未定义指令的异常中断。13、 存储管理单元MMU的作用是什么?实现虚拟地址空间到物理存储空间的映射;存储器访问权限的控制;设置虚拟存储空间的缓冲特性。

13、14、什么是段、大页、小页和微页?段(section):由1MB 的存储器块构成大页(large page):由64KB 的存储器块构成小页(small page):由4KB 的存储器块构成微页(tiny page):由1KB 的存储器块构成15、 什么是页表?页表的基地址用什么保存?页表是实现上述功能的一个重要手段,它实际上是位于内存中的一个对照表。页表存放在内存中,系统通常有一个寄存器来保存页表的基地址。ARM系统中使用的就是CP15的寄存器C2。16、 什么是快表(TLB)?快表:从虚拟地址到物理地址的转换实际上就是查询页表的过程。由于程序在执行过程中具有局部性,即在一段时间内只是局限在

14、少数几个单元,为了加快页表的查询速度,在系统中通常使用一个容量更小、速度更快的存储器件来保存当前需要访问的地址变换条目,这个容量小的页表又称作快表(TLB)。17、什么是域?域的2 种访问方式是什么?各有什么特点?域是段、大页和小页的集合。ARM 结构支持16 个域。对域的访问由域访问控制寄存器( CP15的寄存器3 )的两个位字段控制。因为每个字段对访问对应的域的使能非常迅速,所以整个存储器区间能很快地交换进出虚拟存储器。这里支持2 种域访问方式客户:域的用户(执行程序,访问数据),被形成这个域的节或页来监督访问权限。管理者:控制域的行为(域中的当前段和页,对域的访问),不被形成这个域的段或

15、页来监督访问权限。18、 什么是快速上下文切换技术?快速上下文切换扩展(FCSE,Fast Context Switch Extension)是MMU 中的一个附加硬件,用于提高ARM嵌入式系统的系统性能。 FCSE使得多个独立任务可以运行在一个固定的重叠存储空间中,而 在上下文切换时,不需要清理(clean)或清除(flush)Cache和TLB。快速上下文切换技术通过修改系统中不同进程的虚拟地址,避免在进行进程间切换时造成的虚拟地址到物理地址的重映射,从而提高系统的性能。如果两个进程占用的虚拟地址空间有重叠,系统在这两个进程之间进行切换时,必须进行虚拟地址到物理地址的重映射,包括重建TLB

16、 ,清除cache,整个工作需要带来巨大的系统开销。而快速上下文切换技术的引入避免了这种开销。 FCSE位于CPU和MMU之间,他的责任就是将不同进程使用的相同的虚拟地址映射为不同的虚拟空间,使得在上下文切换时无需重建TLB等。如果两个进程使用了同样的虚拟地址空间,则对CPU而言,两个进程使用了同样的虚拟地址空间,FCSE机构对各个进程的虚拟地址进行变换,这样系统中除了CPU之外的部分看到的是经过上下文切换机构变换后的虚拟地址。在ARM系统中,4G的虚拟地址空间被分成128个进程空间块,每个空间块中可以包含一个进程,该进程可以使用的虚拟地址空间为 00x01ffffff。 编号为I的进程空间块

17、中的进程实际使用的虚拟地址空间为:(I*0x02000000)( I*0x02000000 +0x01ffffff)第三章 ARM指令系统(见作业)1、默写ARM常用指令,并说明其功能。2、默写ARM指令的条件码,并说明其含义。3、默写ARM的寻址方式,并举例加以说明。4、堆栈寻址的4种类型是什么?并举例加以说明。5、跳转指令有哪4条,其区别是什么?6、移位操作指令有哪些?并举例说明使用方法。7、协处理器指令有哪些?并举例说明使用方法。8、访问存在器的指令有哪些?并举例说明使用方法。9、多寄存器寻址指令的后缀有哪4种,其含义是什么?10、已知R13等于0x8800,R0、R1、R2的值分别为0

18、x01、0x02、0x03。试说明执行以下指令后寄存器和存储内容如何变化。 STMFD R13!, R0-R211、说明下列指令的含义和可能的执行过程。其中LOOP为已定义的行标。 BEQLOOP  跳跃到loop第四章 ARM嵌入式系统程序设计1 用汇编语言设计程序实现10!(10的阶乘)。2实现字符串的逆序复制 TEXT1="HELLO" =TEXT2="OLLEH "。3汇编语言调用子程序的方法实现1!+2!+3!+10!。4什么是内嵌汇编?使用内嵌汇编时需要注意什么?高级语言程序中嵌入汇编语言代码,ARM的内嵌汇编器armcc和armc

19、pp用于ARM指令;tcc和tcpp用于Thumb指令。内嵌汇编不用单独编辑汇编语言文件,比较简洁,但是有诸多限制,当汇编的代码较多时一般放在单独的汇编文件中,这时就需要在汇编和C之间进行一些数据的传递,最简便的办法就是使用全局变量。汇编中使用C定义的全局变量。5C语言与汇编语言混合编程时的参数传递规则有哪些?(1)参数个数可变的子程序参数传递规则 对于参数个数可变的子程序,当参数不超过4个时,可以使用寄存器R0R3来进行参数传递;当参数超过4个时,还可以使用数据栈来传递参数。在参数传递时,将所有参数看做是存放在连续的内存单元中的字数据。然后,依次将各名字数据传送到寄存器R0,R1,R2,R3

20、;如果参数多于4个,将剩余的字数据传送到数据栈中,入栈的顺序与参数顺序相反,即最后一个字数据先入栈。按照上面的规则,一个浮点数参数可以通过寄存器传递,也可以通过数据栈传递,也可能一半通过寄存器传递,另一半通过数据栈传递。(2)参数个数固定的子程序参数传递规则 对于参数个数固定的子程序,参数传递与参数个数可变的子程序参数传递规则不同,如果系统包含浮点运算的硬件部件,浮点参数将按照下面的规则传递:各个浮点参数按顺序处理;为每个浮点参数分配FP寄存器;分配的方法是,满足该浮点参数需要的且编号最小的一组连续的FP寄存器。第1个整数参数通过寄存器R0R3来传递,其他参数通过数据栈传递。(3)子程序结果返

21、回规则 结果为一个32位的整数时,可以通过寄存器R0返回。 结果为一个64位整数时,可以通过R0和R1返回,依此类推。 结果为一个浮点数时,可以通过浮点运算部件的寄存器f0、d0或者s0来返回。 结果为一个复合的浮点数时,可以通过寄存器f0fN或者d0dN来返回。 对于位数更多的结果,需要通过调用内存来传递。第五章 S3C6410系统1、S3C6410内部有哪3个锁相环?APLL(ARM PLL),MPLL(主PLL),EPLL(额外PLL)2、 S3C6410的5种省电模式是什么? 正常、闲置、停止、深度停止和睡眠。3、 S3C6410的5种复位信号是什么?复位 S3C6410 有五种类型的

22、复位信号,SYSCON 可以把系统的五分之一进行复位。 硬件复位:它是通过声明 XnRESET 产生的。它可以完全初始化所有系统。 温复位:它是通过 XnWRESET 产生的。当需要初始化 S3C6410 和保存当前硬件状态时,XnWRESET 被使用。 看门狗复位:它是通过一个特殊的硬件模块产生的,也就是看门狗定时器。当系统发生一个不可 预测的软件错误时,硬件模块监控内部硬件状态,同时产生复位信号来脱离该状态。 软件复位:它是通过设置 SW_RESET 产生的。 唤醒复位:它是当 S3C6410 从睡眠模式唤醒时产生的。睡眠模式后,内部硬件状态在任何时候都 不可用,必须对其进行初始化。 硬件

23、复位 当 XnRESET 引脚被声明,系统内的所有单元(除了 RTC 之外)复位到预先定义好的状态时,硬件复位 被调用。在这段期间,将发生下面的动作: 所有内部寄存器和 ARM1176 内核都到预先定义好的复位状态。 所有引脚都得到它们的复位状态。 当 XnRESET 被声明的同时,XnRSTOUT 引脚就被声明了。 XnRESET 是不被屏蔽的,始终保持使能状态。XnRESET 的声明,无论先前为何模式,S3C6410 都进入复 位状态。XnRSET 必须持有足够长的时间允许内部稳定和传播。4、 掌握LED小灯裸机编程。第六章 嵌入式系统应用设计1、设备驱动程序是什么?用来管理硬件控制器的软

24、件通常叫做设备驱动程序。2、Linux驱动程序功能是什么?操作系统是通过各种驱动程序来驾驭硬件设备,它为用户屏蔽了各种各样的设备。1、 自动配置和初始化子程序2、服务于I/O请求的子程序3、中断服务子程序。3、 Linux设备的分类以及特点是什么?(1) 字符设备,一个字符设备是一种字节流设备,对设备的存取只能按顺序按字节的存取而不能随机访问,字符设备没有请求缓冲区,所有的访问请求都是按顺序执行的。Linux下的大多设备都是字符设备。应用程序是通过字符设备节点来访问字符设备的。(2) 块设备,存储设备一般属于块设备,块设备有请求缓冲区,并且支持随机访问而不必按照顺序去存取数据。Linux下的磁

25、盘设备都是块设备,尽管在Linux下有块设备节点,但应用程序一般是通过文件系统及其高速缓存来访问块设备的,而不是直接通过设备节点来读写块设备上的数据。块设备文件的第一个标志是前面的“b”标志,如“brw-rw-”所代表的就是块设备。 (3) 网络设备,网络设备不同于字符设备和块设备,它是面向报文的而不是面向流的,它不支持随机访问,也没有请求缓冲区。在Linux里一个网络设备也可以叫做一个网络接口,应用程序是通过Socket而不是设备节点来访问网络设备,在系统里根本就不存在网络设备节点。内核使用一套与数据包传输相关的函数来与网络设备驱动程序通信,它们不同于字符设备和块设备的read()和writ

26、e()方法。 4、 Linux设备号的作用是什么?设备号由两部分组成?各自的作用是什么?Linux系统通过设备号来区分不同设备。设备号由两部分组成:主设备号和次设备号。主设备号指明对应哪类设备和驱动,需要注意的是,同一个主设备号可以对应两个不同的设备驱动,一个可以是字符设备另一个可以是块设备。次设备号区分被一个设备驱动控制下的某个独立的设备。比如,同一个类型的USB设备可以在系统中存在几个,它们通过次设备号加以区分,而设备驱动可以只对应一个。 5、Linux设备驱动开发调试有哪两种方法,其特点是什么?Linux设备驱动开发调试有两种方法:一种是直接编译到内核,随同Linux启动时加载,启动内核

27、时就会驱动此硬件设备。这种方法称为静态链接。另一种是编译为可加载模块(Loadable kernel modules)的形式,编译生成一个.o文件,当应用程序需要时再动态加载进内核空间运行,这种方法称为动态链接。6、常用内核模块指令有哪些?lsmod : 列出已经被内核调入的模块insmod : 将某个module插入到内核中rmmod :将某个module从内核中卸载modprobe:自动根据依赖文件装入模块depmod : 生成依赖文件,告诉modprobe和kerneld要从哪儿调入modules。这个依赖文件就在/lib/modules/kernel版本/modules.dep。Ker

28、neld:负责自动的将模块调入内核和把模块从内核中卸载。7、 与驱动有关的三个重要数据结构是什么?它们有什么的作用?1、自动配置和初始化子程序2、服务于I/O请求的子程序3、中断服务子程序。linux驱动程序中最重要的涉及3个重要的内核数据结构,分别为file_operations,file和inode。8、ioctl函数的作用是什么?ioctl是设备驱动程序中对设备的I/O通道进行管理的函数。所谓对I/O通道进行管理,就是对设备的一些特性进行控制。9、 编写一个字符设备驱动,主要分哪几步?10、 处理器与设备间数据交换方式有哪几种方式?每种方式的特点是什么? (1)查询方式设备驱动程序通过设

29、备的I/O端口空间,以及存储器空间完成数据的交换。利用这些地址空间,驱动程序可以向外设发送指定的操作指令。 驱动程序在提交命令之后,开始查询设备的状态寄存器,当状态寄存器表明操作完成时,驱动程序可继续后续处理。 优点:硬件开销小,使用起来比较简单。 缺点:CPU要不断地查询外设的状态,当外设未准备好时,就只能循环等待,不能执行其他程序,这样就浪费了CPU的大量时间,降低了处理器的利用率。 (2)中断方式中断方式的原理当CPU进行主程序操作时,外设的数据已存入端口的数据输入寄存器,或端口的数据输出寄存器已空,此时由外设通过接口电路向CPU发出中断请求信号。 CPU在满足一定条件下,暂停执行当前正

30、在执行的主程序,转入执行相应能够进行输入/输出操作的子程序,待输入/输出操作执行完毕之后,CPU再返回并继续执行原来被中断的主程序。 CPU就避免了把大量时间耗费在等待、查询外设状态的操作上,使其工作效率得以大大提高。 (3)直接内存存取(DMA)方式DMA可允许设备和系统内存间在没有处理器参与的情况下传输大量数据。 设备驱动程序在利用DMA之前,需要选择DMA通道并定义相关寄存器,以及数据的传输方向,即读取或写入,然后将设备设定为利用该DMA通道传输数据。 设备完成设置之后,可以立即利用该DMA通道在设备和系统的内存之间传输数据,传输完毕后产生中断以便通知驱动程序进行后续处理。 在利用DMA进行数据传输的同时,处理器仍然可以继

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论