嵌入式系统期末复习资料
- 格式:doc
- 大小:800.00 KB
- 文档页数:4
1、 嵌入式系统的定义 答:根据美国电气与电子工程学会IEEE的定义,嵌入式系统是用于控制、监视或辅助操作机器和设备的装置。需指出的是本定义并不能充分体现嵌入式系统的精髓,从根本上说,嵌入式系统的概念应从应用的角度予以阐述。在国内的很多嵌入式网站和相关书籍中,一般都认为嵌入式系统是以应用为中心,以计算机技术为基础,并且软/硬件可裁剪,可满足应用系统对功能、可靠性、成本、体积和功耗有严格要求的专业计算机系统。(P1的第一段也读一读) 2、 嵌入式系统一般由 嵌入式微处理器 、 外围硬件设备 、 嵌入式操作系统 以及 用户应用软件 四个部分组成,用于实现对其他设备的控制、监视或管理等功能。 3、 嵌入式微处理器的体系结构可以采用 冯·诺依曼体系结构 或 哈佛体系结构 ,指令系统可以选用 精简指令集系统RISC 或 复杂指令集系统CISC 。 4、 嵌入式微处理器的体系结构包括哪几种?它们的不同的是什么? 答:嵌入式微处理器的体系结构可以采用冯·诺依曼体系结构或哈佛体系结构。 不同点:①冯·诺依曼结构的计算机由CPU和存储器构成,其程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置;采用单一的地址及数据总线,程序指令和数据指令的宽度相同。 程序计数器(PC)是CPU内部只是指令和数据的存储位置的寄存器。CPU通过程序计数器提供的地址信息,对存储器进行寻址,找到所需要的指令或数据,然后对指令进行译码,最后执行指令规定的操作。处理器执行指令时,先从存储器中取出指令译码,再去操作数执行运算,即使单条指令也要耗费几个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应 ②哈佛结构的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。系统中具有程序的数据总线与地址总线,数据的数据总线与地址总线。这种分离的程序总线和数据总线可以允许在一个机器周期内同时获取指令字和操作数,从而提高执行速度,提高数据的吞吐率。又由于程序和数据存储器在两个分开的物理空间中,因此取指和执行能完全重合,具有较高的执行效率。 5、 RISC和CISC,看书P3 6、 当前的几种嵌入式操作系统有哪些? Linux、Windows CE、μC/OS-Ⅱ、Palm OS和VxWorks等 7、 什么是SOC?P9 答:随着VLSI设计的普及和半导体工艺的迅速发展,可以在一块硅片上实现一个更为复杂的系统,这就是片上系统SOC 8、 嵌入式微处理器分类(选择) ① 嵌入式微处理器 目前流行的主要嵌入式微处理器有Am186/88、386EX、Power PC、MC68000、MIPS、ARM系列等 ② 嵌入式微控制器 近年来提供x86微处理器的著名厂商AMD公司,将Am186CC/CH/CU等嵌入式处理器也称为微控制器,Freescale公司将以Power PC为基础的PPC505和PPC555列入微处理器行列,TI公司也将其TMS320C2xxx系列DSP作为微处理器加以推广应用。 ③ 嵌入式数字信号处理器 嵌入式DSP有2类:一是DSP经过单片化、EMC改造、增加片上外设成为嵌入式DSP,TI的TMS320 C2000/C5000等属于此范畴;而是在通用单片机或片上系统中增加DSP协处理器,例如intel公司的MCS-296。如果嵌入式应用中强调对连续的数据流的处理及高精度复杂运算,则应该优先考虑应用DSP器件 ④ 嵌入式片上系统 SOC可以分为通用和专用两类。通用系列包括Facescale公司的M-Core、某些ARM系列器件、Echelon公司和Motorola公司联合研制的Neuron芯片等;专用SOC一般专用于某个或某类系统中,通常不为用户所知,如Philips公司的Smart XA,它将XA单片机内核和支持超过2048位复杂RSA算法的 CCU单元制作在同一块硅片上,形成可加载java或C语言上网专用SOC,可用于互联网安全方面。 9、 ANBA总线接口 该标准定义了以下3种总线:①AHB 用于连接高性能系统模块。它支持突发数据传输方式及单个数据传输方式,所有时序参考同一时钟沿;另外它还支持分离式总线事物处理。②ASB总线 用于连接高性能系统模块,它支持突发数据传输模块。③APB总线 是一个简单接口,支持低性能的外围接口。 10、ARM指令集与Thumb指令集的区别? 答:①大多数Thumb指令是无条件执行的,而几乎所有的ARM指令是有条件执行的。②大多数Thumb数据处理指令的目的寄存器与其中一个原寄存器相同。③与全部采用ARM指令的方式相比较,使用Thumb指令可以在代码密度方面改善大约30%,单这种改善是以降低代码的效率为代价的。④当指令预取需要的时间没有区别时,ARM指令对Thumb指令具有更好的性能。 11、ARM9的7种工作模式(填空) ①用户模式(usr) ARM处理器正常执行程序是的处理 ②快速中断模式(fiq) 用于高速数据传输或通道处理 ③外部中断模式(irq) 用于通用的中断处理 ④管理模式(svc) 操作系统使用的保护模式 ⑤指令数据访问种植模式(abt) 当数据或指令预取终止时进入该模式,可用于虚拟存储及存储保护 ⑥系统模式(sys) 运行具有特权的操作系统任务时的模式 ⑦未定义指令终止模式(und) 当未定义的指令执行进入模式时,了用于支持硬件协处理器的软件仿真 12、大端存储和小端存储的区别? 答:在大端存储格式中,32位字数据的最高字节存储在低字节地址中,而其最低字节村吃在高字节地址中。在小端存储格式中,32位字数据的最高字节存储在高字节地址中,而其最低字节则存储在低字节地址中。 13、ARM9的异常处理模式
14、S3C2410的时钟结构 15、动态RAM、2410、NAND Flash的接口(P100) 16、什么是高速缓存机制(Cache)?高速缓存机制的作用?什么是高速缓存命中、高速缓存未命中? 答:高速缓存是一种小型、快速的存储器,它处于CPU和主存储器之间,由于高速缓存价格较贵,在系统中它的容量不可能设计的很大,通常为几MB存储单元。 高速缓存处理器中止保留了主存储器中部分代码或数据的复制。因此,当为处理器经常访问的是相 对较小的一部分主存储器但愿时,高速缓存机制就会很有意义。 高速缓存控制器是微处理器用于控制访问高速缓存及主存系统的桥梁,它处于微处理器和高速缓存及主存系统之间。 微处理器需要访问主存储器数据时,通过高速缓存控制器发送存储器请求给高速缓存和主存,如果被请求的单元在高速缓存中,高速缓存控制器会将内容转发到微处理器并终止对主存的请求这种情况称为高速缓存命中;如果被请求的单元不在高速缓存中,高速缓存控制器会读取主存的值并将它转发到微处理器,这种情况称为高速缓存未命中(原因:强制性未命中 容量未命中 冲突未命中)。 17、虚拟存储器(P110和P111) 18、中断初始化程序(第六章) 19、若需要利用S3C2410芯片中的Timer部件中的Timer2通道产生一个周期约为1000ms的脉冲信号,系统频率fPCLK=66MHz,写出初始化程序 20、Linux操作系统由如下4个主要的子程序所组成 ①用户应用程序,在某个特定的Linux系统上运行的应用程序集合,它将随着该计算机系统的用途不同而有所变化 ②OS服务,这些服务一般认为是操作系统的一部分;此外,内核的编程接口也属于这个子系统 ③Linux内核,包括内核抽象和对硬件资源的间接访问 ④硬件控制器,这个子系统包含在Linux实现中所有可能的物理设备,例如,CPU、内存硬件、硬盘以及网络硬件等都是这个系统的成员。 (Linux内核主要有5个子系统组成:进程管理、内存管理、虚拟文件系统、网络接口、进程间通信) 21、进程管理(P290) 22、网络设备与其他设备之间存在的不同点 答:①网络设备在进行数据包发送和接受时直接通过接口访问,不需要进行文件的操作;而对字符设备和块设备的访问都需要通过文件操作界面. ②网络接口是在系统初始化时实时生成的,对于核心支持的但不存在的物理网络设备将不可能有与之相对应的device结构。而对于字符设备和快设备,即使该物理设备不存在,在/dev下也必定有相应的特殊文件与之对应。而且在系统初始化时,核心将会对所有内核支持的字符设备和块设备进行登记,初始化该设备的文件操作界面,而不管该设备在物理上是否存在。 23、块设备(P298) 24、对于GUN编译器来说,程序的编译要经历哪些阶段?个阶段产生的文件名后缀是什么? 答:对于GUN编译器来说,程序的编译要经历预处理、编译、汇编和连接4个阶段。 预处理:输入的是C语言的源文件,通常为*.c。通常带有.h之类的头文件的包含文件。这个阶段主要处理源文件中的#ifdef、#include和#define命令,并不编译、汇编和连接。该阶段会生成一个中间文件*.i,但实际工作中通常不专门生成这种文件 编译:输入的是中间文件*.i,编译后生成汇编语言文件*.s 汇编:将输入的汇编文件*.s转换成机器语言*.o 连接:在连接阶段将输入的机器代码文件*.o汇集成一个可执行的二进制代码文件 25、make文件及Makefile文件的作用、地位? ①在Linux环境下使用GNU的make工具能够比较容易地构建一个工程,整个工程的编译值需要一个命令就可以完成编译、连接以至于最后的执行。不过这需要完成一个或者多个成为Makefile文件的编写,此文件正是make正常工作的基础。 ②Makefile文件描述了整个工程的编译连接等规则,其中包括:工程中的哪些源文件需要编译以及如何编译,需要创建哪些库文件以及如何创建这些库文件,如何最后产生想要的可执行文件。尽管看起来可能是很复杂的事情,但是为工程编写Makefile的好处是能够使用一行命令来完成“自动化编译”,一旦提供正确的Makefile,编译整个工程是在shell提示符下输入make命令,整个工程就会完全自动编译,极大提高了效率。