1、嵌入式工程师考试题目 作者 daoshi_000 日期 2010-2-2 1:39:00嵌入式系统设计师考试笔记之嵌入式系统基础知识欧浩源() 20080818一、引言自嵌入式系统设计师考试复习笔记之存储管理篇在嵌入式在线的博客出现后,意外的得到很多朋友的关注和评论,收到不少朋友的邮件,问一些有关考试的问题,希望得到我的复习笔记的其他部分。我非常感谢他们,他们的热切关注,使我有了继续往下写的无限动力,使我萌生了将我以前的复习笔记、考试经验结合大纲教程并重新按教程的章节顺序整理一份适合考生复习的笔记手册,笔记后面再分析历年的真题,按章节考点找出相关的考题进行分析,希望能和有兴趣的人们一起讨论讨论
2、。嵌入式系统设计师的一天考试分为上午和下午部分,两部分的考试方式、试题难度、考点分布和复习方法都是不同的。这次我们讨论的是嵌入式系统基础知识,我本人觉得,这部分出下午大题的可能性不大,主要是分布在上午的 75 道选择题之中。从历年的真题和考试大纲来看,上午的选择题主要考查一些基本概念,重要原理的理解,一些关键技术和一些重要的原理引申出来的简单计算。根据这些考试特点,复习的时候可以采用适当的策略,当然每个人的方法都是不一样的,适合自己的办法才是最好的办法。方法大家可以自己慢慢去体会,我的也不多说了,通过笔记和真题分析就可以体现处理。对于很多关键的知识点和基本概念,除了记住之外还要彻底理解,否则出
3、题的时候会进行一些变换,或者引申一些计算,那么就算你知道考那个考点,可能你也做不好。在复习的过程中,你要记住:你不是要考一个很高的分数,而是要考一个通过的分数,在复习过程中可以放弃一些内容,只要保证在大部分基本概念,关键技术,重要原理和历年考点上都把握住,能够拿到需要的分数就可以了。二、复习笔记1、嵌入式系统的定义(1)定义:以应用为中心,以计算机技术为基础,软硬件可裁剪,适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。(2)嵌入式系统发展的 4 个阶段:无操作系统阶段、简单操作系统阶段、实时操作系统阶段、面向 Internet 阶段。(3)知识产权核(IP 核):具有知
4、识产权的、功能具体、接口规范、可在多个集成电路设计中重复使用的功能模块,是实现系统芯片(SOC)的基本构件。(4)IP 核模块有行为、结构和物理 3 级不同程度的设计,对应描述功能行为的不同可以分为三类:软核、固核、硬核。2、嵌入式系统的组成:硬件层、中间层、系统软件层和应用软件层(1)硬件层:嵌入式微处理器、存储器、通用设备接口和 I/O接口。嵌入式核心模块微处理器电源电路时钟电路存储器Cache:位于主存和嵌入式微处理器内核之间,存放的是最近一段时间微处理器使用最多的程序代码和数据。它的主要目标是减小存储器给微处理器内核造成的存储器访问瓶颈,使处理速度更快。(2)中间层(也称为硬件抽象层
5、HAL 或者板级支持包 BSP):它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据 BSP 层提供的接口开发即可。BSP 有两个特点:硬件相关性和操作系统相关性。设计一个完整的 BSP 需要完成两部分工作:A、 嵌入式系统的硬件初始化和 BSP 功能。片级初始化:纯硬件的初始化过程,把嵌入式微处理器从上电的默认状态逐步设置成系统所要求的工作状态。板级初始化:包含软硬件两部分在内的初始化过程,为随后的系统初始化和应用程序建立硬件和软件的运行环境。系统级初始化:以软件为主的初始化过程,进行操作系统的初始化。B、 设计硬件相关的设备驱动。(3)系统软件层:由
6、 RTOS、文件系统、GUI、网络系统及通用组件模块组成。RTOS 是嵌入式应用软件的基础和开发平台。(4)应用软件:由基于实时系统开发的应用程序组成。3、实时系统(1)定义:能在指定或确定的时间内完成系统功能和对外部或内部、同步或异步时间做出响应的系统。(2)区别:通用系统一般追求的是系统的平均响应时间和用户的使用方便;而实时系统主要考虑的是在最坏情况下的系统行为。(3)特点:时间约束性、可预测性、可靠性、与外部环境的交互性。(4)硬实时(强实时):指应用的时间需求应能够得到完全满足,否则就造成重大安全事故,甚至造成重大的生命财产损失和生态破坏,如:航天、军事。(5)软实时(弱实时):指某些
7、应用虽然提出了时间的要求,但实时任务偶尔违反这种需求对系统运行及环境不会造成严重影响,如:监控系统、实时信息采集系统。(6)任务的约束包括:时间约束、资源约束、执行顺序约束和性能约束。4、实时系统的调度(1)调度:给定一组实时任务和系统资源,确定每个任务何时何地执行的整个过程。(2)抢占式调度:通常是优先级驱动的调度,如 uCOS。优点是实时性好、反应快,调度算法相对简单,可以保证高优先级任务的时间约束;缺点是上下文切换多。(3)非抢占式调度:通常是按时间片分配的调度,不允许任务在执行期间被中断,任务一旦占用处理器就必须执行完毕或自愿放弃,如 WinCE。优点是上下文切换少;缺点是处理器有效资
8、源利用率低,可调度性不好。(4)静态表驱动策略:系统在运行前根据各任务的时间约束及关联关系,采用某种搜索策略生成一张运行时刻表,指明各任务的起始运行时刻及运行时间。(5)优先级驱动策略:按照任务优先级的高低确定任务的执行顺序。(6)实时任务分类:周期任务、偶发任务、非周期任务。(7)实时系统的通用结构模型:数据采集任务实现传感器数据的采集,数据处理任务处理采集的数据、并将加工后的数据送到执行机构管理任务控制机构执行。5、嵌入式微处理器体系结构(1)冯诺依曼结构:程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,采用单一的地址及数据总线,程序和数据的宽度相
9、同。例如:8086、ARM7、MIPS(2)哈佛结构:程序和数据是两个相互独立的存储器,每个存储器独立编址、独立访问,是一种将程序存储和数据存储分开的存储器结构。例如:AVR、ARM9、ARM10(3)CISC 与 RISC 的特点比较(参照教程 22 页)。计算机执行程序所需要的时间 P 可以用下面公式计算:P=ICPITI:高级语言程序编译后在机器上运行的指令数。CPI:为执行每条指令所需要的平均周期数。T:每个机器周期的时间。(4)流水线的思想:在 CPU 中把一条指令的串行执行过程变为若干指令的子过程在 CPU 中重叠执行。(5)流水线的指标:吞吐率:单位时间里流水线处理机流出的结果数
10、。如果流水线的子过程所用时间不一样长,则吞吐率应为最长子过程的倒数。建立时间:流水线开始工作到达最大吞吐率的时间。若 m 个子过程所用时间一样,均为 t,则建立时间 Tmt。(6)信息存储的字节顺序A、存储器单位:字节(8 位)B、字长决定了微处理器的寻址能力,即虚拟地址空间的大小。C、32 位微处理器的虚拟地址空间位 232,即 4GB。D、小端字节顺序:低字节在内存低地址处,高字节在内存高地址处。E、大端字节顺序:高字节在内存低地址处,低字节在内存高地址处。F、网络设备的存储顺序问题取决于 OSI 模型底层中的数据链路层。6、逻辑电路基础(1)根据电路是否具有存储功能,将逻辑电路划分为:组
11、合逻辑电路和时序逻辑电路。(2)组合逻辑电路:电路在任一时刻的输出,仅取决于该时刻的输入信号,而与输入信号作用前电路的状态无关。常用的逻辑电路有译码器和多路选择器等。(3)时序逻辑电路:电路任一时刻的输出不仅与该时刻的输入有关,而且还与该时刻电路的状态有关。因此,时序电路中必须包含记忆元件。触发器是构成时序逻辑电路的基础。常用的时序逻辑电路有寄存器和计数器等。(4)真值表、布尔代数、摩根定律、门电路的概念。(教程 28、29 页)(5)NOR(或非)和 NAND(与非)的门电路称为全能门电路,可以实现任何一种逻辑函数。(6)译码器:多输入多输出的组合逻辑网络。每输入一个 n 位的二进制代码,在
12、 m 个输出端中最多有一个有效。当 m2n 是,为全译码;当 m:C、B考查流水线技术知识点。按照串行的方式,执行完一条指令才能执行下一条指令,那么执行完 100 条指令的时间为:(435)1001200按照流水线的方式,可以同时执行多条指令。在第一条指令进行分析的时候,第二条指令已经开始取指;当第一条指令进行执行的时候,第二条指令进行分析,第三条指令取指;当第二条指令进行执行完的时候,第三条指令已经分析完成。依此类推,当第一条指令完成之后,每一个执行的周期就可以完成一条指令。需要注意的是,如果流水线的子过程所用时间不一样长,则吞吐率应以最长子过程来计算。因此,我们可以计算得100 条指令的执
13、行时间为:(435)(1001)5507。2、2007 年 24 题某总线有 104 根信号线,其中数据总线(DB)32 根,若总线工作频率为 33MHz,则其理论最大传输率为 (24) 。(注:本题答案中的 B 表示 Byte)(24)A. 33 MB/s B. 64MB/s C. 132 MB/s D. 164 MB/s:C考查总线这个知识点。根据上面的笔记,总线带宽 总线位宽总线频率/8=3233/8132MB/s。3、2007 年 26 题某存储器数据总线宽度为 32bit,存取周期为 250ns,则该存储器带宽为 (26) 。(注:本题答案中的 B 表示 Byte)(26)A. 81
14、06B/s B. 16106B/s C. 16108B/s D. 32106B/s:B考查总线这个知识点。存储器带宽即总线带宽,总线频率为:1/250ns=4106存储器带宽为:324106/816106B/s4、2007 年 27 题处理机主要由处理器、存储器和总线组成,总线包括 (27) 。(27)A. 数据总线、串行总线、逻辑总线、物理总线B. 并行总线、地址总线、逻辑总线、物理总线C. 并行总线、串行总线、全双工总线D. 数据总线、地址总线、控制总线:D考查总线这个知识点,基本概念的考查。5、2007 年 35 题三极管是可控的开关器件,其饱和与截止状态分别对应开关的接通和断开状态。U
15、BE 为基极输入电压,VTH 为基极域值电压,如果 UBETH,开关应处于 (35) 状态。(35)A. 接通 B. 三态 C. 断开 D. 高阻:C考查电路中最基本的基础知识点,我觉得做不对的根本不能算嵌入式系统开发入门。6、2007 年 36 题如下图所示,若低位地址(A0-A11)接在内存芯片地址引脚上,高位地址(A12-A19)进行片选译码(其中,A14 和 A16 没有参加译码),且片选信号低电平有效,则对下图所示的译码器,不属于此译码空间的地址为 (36) 。(36)A. AB000HABFFFH B. BB000HBBFFFHC. EF000HEFFFFH D. FE000HFE
16、FFFH:D考查数字电路中译码知识和存储系统中统一编址的问题,相对来说,这个题目有点难度,但是对于学习过和亲身做过单片机的兄弟来说,最基本不过了。7、2007 年 46 题(46) 完全把系统软件和硬件部分隔离开来,从而大大提高了系统的可移植性。(46)A. 硬件抽象层 B. 驱动映射层 C. 硬件交互层 D. 中间层:A考查嵌入式系统组成中的概念。8、2006 年 3 题设指令由取指、分析、执行 3 个子部件完成,每个子部件的工作周期为t,采用常规标量单流水线处理机。若连续执行 10条指令,则共需要时间(3)t。(3)A.8 B.10 C.12 D.14:C考查流水线技术知识点。3(101)
17、1129、2006 年 4、5 题某计算机的时钟频率为 400MHz,测试计算机的程序使用 4 种类型的指令。每种指令的数量及所需要的指令时钟数(CPI)如下表所示,则该计算机的指令平均时钟数为(4);该计算机的运算速度为(5)MIPS。指令类型 指令数目(条) 每条指令需要的时钟数1 160000 12 30000 23 24000 44 16000 8(4)A.1.85 B.1.93 C.2.36 D.3.75(5)A.106.7 B.169.5 C.207.3 D.216.2:B、C考查指令运行方面的简单计算。平均时钟数(160000230000424000816000)/(160000
18、300002400016000)1.93MIPS 是指每秒种执行多少百万条指令,即 106。计算机的运行数度为:400/1.93=207.25=207.3MIPS9、2006 年 12 题计算机要对声音信号进行处理时,必须将它转换为数字声音信号。最基本的声音信号数字化方法时取样量化法。若量化后的每个声音样本用 2 个字节表示,则量化分辨率是(12)(12)A.1/2 B.1/1024 C.1/65536 D.1/131072:C考查声音编码种量化计算的知识点。2 个字节是 16 位,其量化分辨率位 1/10161/65536。10、2006 年 13 题某幅图像具有 640460 个象素点,若
19、每个象素具有 8 位的颜色深度,则可表示(13)种不同的颜色,经过 5:1 压缩后,其图像数据需要占用(14)(Byte)的存储空间。(13)A.8 B.256 C.512 D.1024(14)A.61440 B.307200 C.384000 D.3072000:B、A考查图像数据存储计算的知识点。8 位颜色深度可以表示 28256 种颜色深度。经过 5:1 压缩后的数据大小为:6404808/8/561440。11、2006 年 23 题若某逻辑门输入 A、B 和输出 F 的波形如下图所示,则 F(A,B)的表达式为(23)(23) A.F=A B B.F=A+B C.F=A 异或 B D
20、.F=A(B 的非)_ _A_| |_| |_B_| |_F_| |_:C考查数字电路的最基本知识点,我觉得这个都搞不清楚很难通过这个考试。12、2006 年 24 题一个 4 位的二进制计数器,由 0000 状态开始,经过 25 个时钟脉冲后,该计数器的状态为 24(24) A.1100 B.1000 C.1001 D.1010:C考查数字电路的最基本知识点,相对上面一题有点难,需要对计数器的工作原理有比较清楚的理解。这个也是搞嵌入式系统的基础中的基础,参考教程 38 页或相关的数电书籍。4 位的计数器,其计数范围是 2416,0000 开始经过 16 个时钟脉冲之后又回到了开始的状态 00
21、00。25169,所以说经过 25 个时钟之后,其计数器的数值应该是 91001。13、2006 年 25 题稳压二极管构成的稳压电路的接法是(25)(25) A.稳压管与负载电阻串联。B.稳压管与限流电阻并联。C.限流电阻与稳压管串联后,在与负载电阻串联。D.限流电阻与稳压管串联后,在与负载电阻并联。:D考查模拟电路的最基本知识点,实在太简单,不知道从那里开始分析了。14、2006 年 26 题以下叙述中,不符合 RISC 指令系统特点的是(26)(26) A.指令长度固定,指令种类少。B.寻址方式种类丰富,指令功能尽量增强。C.设置大量通用寄存器,访问存储器指令简单。D.选取使用频率较高的
22、一些简单指令。:B考查 RISC 与 CICS 的区别,考生应该清楚他们的区别,参加教程 22 页。15、2006 年 27 题通常所说的 32 位微处理器是指(27)(27) A.地址总线的宽度为 32 位 B.处理器数据长度只能为 32 位C.CPU 字长为 32 位 D.通用寄存器数目为 32 位:C考查字长的概念和总线宽度的理解,参加教程 25 页。16、2006 年 28 题在 32 位总线系统中,若时钟频率为 500MHz,传送一个 32 位字需要 5 个时钟周期,则该总线系统的数据传送速率为(28)MB/s。(28) A.200 B.400 C.600 D.800:B考查总线和数
23、据传输方面的知识点。5 个时钟周期可以传送 4 个 Byte。每秒中可以传送:4(500/5)400MB/s。17、2006 年 30 题评价一个计算机系统时,通常主要使用(30)来衡量系统的可靠性。(30) A.评价响应时间B.平均无故障时间(MTBF)C.平均修复时间D.数据处理速率:B考查嵌入式系统性能评价中重要知识点。看过了就会做,每什么分析的,参见教程 77 页。四、小结就我个人的意见,从内容来看,嵌入式系统基础知识的范围很广,知识点很多,而且没有很强的逻辑性,显得比较凌乱,很难将他们有序的组织在一起。但是也不要害怕,内容虽然多而乱,但是考试的题目都比较简单,有些题目几乎是所见即所得
24、。只要你做过嵌入式或者单片机方面的工作,你都能做出来。一些计算的题目也是一些基本概念的延伸。通过分析历年的真题,一方面可以把握考试的出题方式和考试难度,同时可以把握这部分内容的出题方向和复习的方法。从两年的考试题目数量分布来看,06 年 10 道,07 年 7 道,数量有所较少,但是我觉得这不是一个趋势,08 年应该不会少于 7 道题目的。这部分在嵌入式系统设计里面是相当重要的,有一个良好的基础才能做好下面的事情。如果复习得好,将这 7、8 分题目拿到手,那么你离 45 分左右的及格线又迈进了一大步了。预处理器(Preprocessor)1 . 用预处理指令#define 声明一个常数,用以表
25、明 1 年中有多少秒(忽略闰年问题)#define SECONDS_PER_YEAR (60 * 60 * 24 * 365)UL我在这想看到几件事情:1) #define 语法的基本知识(例如:不能以分号结束,括号的使用,等等)2) 懂得预处理器将为你计算常数表达式的值,因此直接写出你如何计算一年中有多少秒而不是计算出实际的值,是更清晰而没有代价的。3) 意识到这个表达式将使一个 16 位机的整型数溢出-因此要用到长整型符号 L,告诉编译器这个常数是的长整型数。4) 如果你在你的表达式中用到 UL(表示无符号长整型),那么你有了一个好的起点。记住,第一印象很重要。2 . 写一个“标准“宏 M
26、IN ,这个宏输入两个参数并返回较小的一个。#define MIN(A,B) (A) = (B) ? (A) : (B)这个测试是为下面的目的而设的:1) 标识#define 在宏中应用的基本知识。这是很重要的。因为在 嵌入(inline)操作符 变为标准 C 的一部分之前,宏是方便产生嵌入代码的唯一方法,对于嵌入式系统来说,为了能达到要求的性能,嵌入代码经常是必须的方法。2) 三重条件操作符的知识。这个操作符存在 C 语言中的原因是它使得编译器能产生比 if-then-else 更优的代码,了解这个用法是很重要的。3) 懂得在宏中小心地把参数用括号括起来4) 我也用这个问题开始讨论宏的副作用,例如:当你写下面的