1、嵌入式系统设计师-63 及答案解析(总分:30.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明 汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器码,用地址符号或标号代替地址码,直接同计算机的底层软件甚至硬件进行交互,具有代码优化、运行效率高等特点。本题针对的是 x86平台下 Microsoft公司的 MASM 6.x汇编语言。(分数:15.00)(1).汇编语言中的数值表达式一般是指由运算符连接的各种常数所构成的表达式。汇编程序在汇编过程中计算表达式,由于在程序运行之前就已经计算出了表达式,所以运行速度没有变慢,而程序的可读性却增强了。表 4-1列出
2、了 MASM常见的一些运算符及其含义,请将表 4-1中处运算符的含义写在答题纸的对应栏中。 表 4-1 运算符及含义 运算符类型 运算符号与说明 算术运算符 +(加) -(减) *(乘) /(除) MOD( ) 逻辑运算符 AND(与) 0R(或) XOR( ) NOT(非) 移位运算符 SHL(逻辑左移) SHR( ) 关系运算符 EQ(相等) NE( ) GT(大于) LT(小于) GE(大于等于) LE( ) 高低运算符 HIGH(高字节) LOW( ) HIGHWORD(高字) LOWW0RD(低字) (分数:5.00)_(2).运算符具有优先级。表 4-2按照优先级从高到低排列常见的
3、一些运算符,请从以下备选的运算符中按照优先级选择空处的运算符,将其写在对应栏中。 备选的运算符:XOR MOD HIGH AND GT 表 4-2 运算符的优先级 优先级 运算符 1 ( ) 2 PTR 0FFSET SEG TYPE THIS: 3 _ LOW 4 */ _ SHL SHR 5 + - 6 EQ NH _ LT GE LE 7 NOT 8 _ 9 OR _ 10 SHORT (分数:5.00)_(3).BIOS软件开发接口由一批子程序组成,负责管理系统内的输入输出设备,直接为操作系统和应用程序提供底层设备驱动服务。常用的 BIOS服务及功能见表 4-3所示。 表 4-3 常用
4、的 BIOS服务功能 BIOS服务 功能号 功能 打印屏幕服务 05H 将当前屏幕内容送到默认打印机 视频服务 10H 为显示适配器提供 I/O支持 软盘服务 13H 提供软盘的读、写、格式化、初始化、诊断 串行通信服务 14H 为串行适配器提供字符输入输出 键盘服务 16H 为键盘提供 I/O支持 日期服务 1AH 设置和读取时间、日期 若调用视频服务功能(10H)中的光标设置子功能(02H),将视频页上的光标移到 3行 14列,用如下汇编语言实现,请补充完整下面程序中的空处,将答案填写在对应栏中。 MOV AH,_H ; 十六进制表示 MOV DH,_H MOV DL,_H INT _H(
5、分数:5.00)_二、试题二(总题数:1,分数:15.00)说明 通常计算机按其体系结构分为冯诺依曼(Von Neumann)结构和哈佛(Harvard)结构。冯诺依曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。复杂系统的不同处理器可采用不同类型体系结构。 某嵌入式系统由数据处理模块、信号处理模块和光纤网络交换模块组成,如图所示。其中数据处理模块的主处理器选用 PPC7447,内部集成了二级 Cache,并有 SDAM存储器、FLASH、NvRAM、实时时钟、FC(Fabric Channel)通信接
6、口、以太网接口和 RS232接口;信号处理模块采用 DSP TMS320C6000,并有 FC通信接口、RS232 接口,用于 SPM与外部数据通信;光纤网络交换模块提供 FC协议交换能力,主要由控制单元和交换单元两部分组成。 本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其他模块通信;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。 (分数:15.00)(1).回答下列问题,将答案填写在对应的栏目中。 本嵌入式系统的数据处理模块采用_体系结构,信号处理模块采用_体系结构。 在设计中断时,中断触发方式一般分为沿中断和电平中断。沿中断利用_或_作为中断触发信
7、号,电平中断利用_或_作为中断触发信号。(分数:5.00)_(2).在设计数据处理模块 DPM时,假设某桥芯片内部集成一路递增定时器,定时器位宽为 32位,最高位为控制使能位,输入时钟为 25MHz。请回答下面三个问题,将答案填写在对应的栏目中(给出表达式即可)。(1)该定时器最长定时时间是多少(单位 ns)? (2)设置 10ms定时时间,则定时器的初值为多少? (3)若改为一路递减定时器,设置 10ms定时时间,则定时器的初值为多少?(分数:5.00)_(3).嵌入式系统底层 FC通信驱动对大数据采用 DMA数据传输。图 1-2是未完成的 DMA数据传输工作流程图,请从下面中选择正确的答案
8、,完成该图,将答案填写在对应栏中。 (分数:5.00)_嵌入式系统设计师-63 答案解析(总分:30.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明 汇编语言是面向机器的程序设计语言。在汇编语言中,用助记符代替机器码,用地址符号或标号代替地址码,直接同计算机的底层软件甚至硬件进行交互,具有代码优化、运行效率高等特点。本题针对的是 x86平台下 Microsoft公司的 MASM 6.x汇编语言。(分数:15.00)(1).汇编语言中的数值表达式一般是指由运算符连接的各种常数所构成的表达式。汇编程序在汇编过程中计算表达式,由于在程序运行之前就已经计算出了表达式,所以运
9、行速度没有变慢,而程序的可读性却增强了。表 4-1列出了 MASM常见的一些运算符及其含义,请将表 4-1中处运算符的含义写在答题纸的对应栏中。 表 4-1 运算符及含义 运算符类型 运算符号与说明 算术运算符 +(加) -(减) *(乘) /(除) MOD( ) 逻辑运算符 AND(与) 0R(或) XOR( ) NOT(非) 移位运算符 SHL(逻辑左移) SHR( ) 关系运算符 EQ(相等) NE( ) GT(大于) LT(小于) GE(大于等于) LE( ) 高低运算符 HIGH(高字节) LOW( ) HIGHWORD(高字) LOWW0RD(低字) (分数:5.00)_正确答案:
10、()解析:取余 异或 逻辑右移 不相等或者不等 小于等于或者不大于 低字节 本题考查汇编语言的基本语法和应用,是比较传统的题目,要求考生仔细阅读题目中所描述的内容。 汇编语言(Assembly Language)是面向机器的程序设计语言。在汇编语言中,用助记符(Mnemonic)代替操作码,用地址符号(Symbol)或标号(Label)代替地址码。这样用符号代替机器语言的二进制码,就把机器语言变成了汇编语言。使用汇编语言编写的程序,机器不能直接识别,要由一种程序将汇编语言翻译成机器语言,这种起翻译作用的程序叫汇编程序。汇编程序是系统软件中用于进行语言处理的系统软件。汇编程序把汇编语言翻译成机器
11、语言的过程称为汇编。 本题考察汇编语言的运算符的含义。汇编语言常用的运算符有以下几种: (1)实现+(加)、-(减)、*(乘)、/(除)、MOD(取余)的算术运算符,其中 MOD也称为取模,它产生除法之后的余数,如 19 MOD 7=5。 (2)实现按位 AND(与)、OR(或)、XOR(异或)、NOT(非/求反)的逻辑运算符。 (3)实现对数值的 SHL(逻辑左移)、SHR(逻辑右移)的移位运算符,移入高位或低位的是 0。 (4)实现比较和测试符号数值的关系运算符,如 EQ(相等)、NE(不相等)、GT(大于)、LT(小于)、GE(大于等于)、LE(小于等于)。 (5)实现取数值的高半部分或
12、低半部分的高低运算符,如 HIGH(高字节)、LOW(低字节)、HIGHWORD(高字)、LOWWORD(低字)。(2).运算符具有优先级。表 4-2按照优先级从高到低排列常见的一些运算符,请从以下备选的运算符中按照优先级选择空处的运算符,将其写在对应栏中。 备选的运算符:XOR MOD HIGH AND GT 表 4-2 运算符的优先级 优先级 运算符 1 ( ) 2 PTR 0FFSET SEG TYPE THIS: 3 _ LOW 4 */ _ SHL SHR 5 + - 6 EQ NH _ LT GE LE 7 NOT 8 _ 9 OR _ 10 SHORT (分数:5.00)_正确答
13、案:()解析:HIGH MOD GT AND XOR 本题考查汇编语言中运算符的优先级,常用的汇编语言运算符的优先级按照由高到低排列如下: 1. ( ) . LENGTH SIZE WIDTH MASK 2. PTR OFFSET SEG TYPE THIS: 3. HIGH LOW 4. */MOD SHL SHR 5. + - 6. EQ NE GT LT GE LE 7. NOT 8. AND 9. OR XOR 10. SHORT 其中,尖括号“”、“”和圆点“.”用在结构中,冒号“:”表示段前缀。当不能确定优先级别时,建议采用圆括号“(”、“)”显式表达,它可以极大地提高程序的可读性
14、。(3).BIOS软件开发接口由一批子程序组成,负责管理系统内的输入输出设备,直接为操作系统和应用程序提供底层设备驱动服务。常用的 BIOS服务及功能见表 4-3所示。 表 4-3 常用的 BIOS服务功能 BIOS服务 功能号 功能 打印屏幕服务 05H 将当前屏幕内容送到默认打印机 视频服务 10H 为显示适配器提供 I/O支持 软盘服务 13H 提供软盘的读、写、格式化、初始化、诊断 串行通信服务 14H 为串行适配器提供字符输入输出 键盘服务 16H 为键盘提供 I/O支持 日期服务 1AH 设置和读取时间、日期 若调用视频服务功能(10H)中的光标设置子功能(02H),将视频页上的光
15、标移到 3行 14列,用如下汇编语言实现,请补充完整下面程序中的空处,将答案填写在对应栏中。 MOV AH,_H ; 十六进制表示 MOV DH,_H MOV DL,_H INT _H(分数:5.00)_正确答案:()解析:02 或 2 03或 3 0E或 E 10 本题考查汇编语言在 BIOS软件开发中的应用,BIOS(基本输入输出系统)是非常重要的一种软件接口,由一批子程序组成,负责管理系统中的输入输出设备,直接为操作系统(如 DOS)和应用程序提供底层设备驱动服务,大多数的驱动程序以软件中断方式调用(称为 BIOS设备服务例程 DSR),每个 BIOS的 DSR都与中断向量表中的一个中断
16、向量有关,如 BIOS视频服务的中断向量为 10H。 视频服务由 INT 10H启动,并通过 AH寄存器选择视频服务功能;待写的字符或像素一般在 AL寄存器中传递;功能调用保存 BX、CX、DX 及段寄存器的值;X 坐标(列号)在 CX(图形功能)中或 DL(正文功能)中传递;显示页在 BH中传递,显示页从 0开始计数。二、试题二(总题数:1,分数:15.00)说明 通常计算机按其体系结构分为冯诺依曼(Von Neumann)结构和哈佛(Harvard)结构。冯诺依曼结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。哈佛结构是一种将程序指令存储和数据存储分开的存
17、储器结构。复杂系统的不同处理器可采用不同类型体系结构。 某嵌入式系统由数据处理模块、信号处理模块和光纤网络交换模块组成,如图所示。其中数据处理模块的主处理器选用 PPC7447,内部集成了二级 Cache,并有 SDAM存储器、FLASH、NvRAM、实时时钟、FC(Fabric Channel)通信接口、以太网接口和 RS232接口;信号处理模块采用 DSP TMS320C6000,并有 FC通信接口、RS232 接口,用于 SPM与外部数据通信;光纤网络交换模块提供 FC协议交换能力,主要由控制单元和交换单元两部分组成。 本嵌入式系统的数据处理模块主要接收外部命令、控制系统运行、与系统其他
18、模块通信;信号处理模块主要进行图形图像处理,需要较大的运算量和较高的运算速度。 (分数:15.00)(1).回答下列问题,将答案填写在对应的栏目中。 本嵌入式系统的数据处理模块采用_体系结构,信号处理模块采用_体系结构。 在设计中断时,中断触发方式一般分为沿中断和电平中断。沿中断利用_或_作为中断触发信号,电平中断利用_或_作为中断触发信号。(分数:5.00)_正确答案:()解析:冯诺依曼或 Von Neumann 哈佛或 Harvard 上升沿、下降沿 高电平、低电平 本题主要考查对嵌入式系统结构的认识。 哈佛结构的微处理器通常具有较高的执行效率。其程序指令和数据指令是分开组织和存储的,执行
19、时可以预先读取下一条指令。在 DSP算法中,最大量的工作之一是与存储器交换信息,这其中包括作为输入信号的采样数据、滤波器系数和程序指令。由于哈佛结构的总线操作是独立的,能同时取指令和数据,提高了速度。目前 DSP内部一般采用的是哈佛结构,它在片内至少有 4套总线:程序的数据总线、程序的地址总线、数据的数据总线和数据的地址总线。TMS320C6000 作为一款典型的数字信号处理芯片,采用的是哈佛结构,而作为本系统中数据处理模块的主控设备 PPC7447,由于面向的是控制及数据处理领域,无需独立的数据与指令总线,因此采用的是冯诺依曼结构。 系统中断的触发方式一般分为两种模式:边沿触发与电平触发。边
20、沿触发又分为上升沿触发和下降沿触发两种方式,电平触发分为高电平触发和低电平触发两种方式,中断控制器检测到中断触发沿到来时会给处理器一个中断信号,处理器完成相应处理后进入中断处理程序。有时边沿触发很容易产生毛刺并导致误中断,这时候就要使用电平触发,以期获得一个确定的中断触发。(2).在设计数据处理模块 DPM时,假设某桥芯片内部集成一路递增定时器,定时器位宽为 32位,最高位为控制使能位,输入时钟为 25MHz。请回答下面三个问题,将答案填写在对应的栏目中(给出表达式即可)。(1)该定时器最长定时时间是多少(单位 ns)? (2)设置 10ms定时时间,则定时器的初值为多少? (3)若改为一路递
21、减定时器,设置 10ms定时时间,则定时器的初值为多少?(分数:5.00)_正确答案:()解析:(1)402 31 或 85899345920 (2)2 31 -1010 6 /40或 2147233648 (3)1010 6 /40或 250000 计时器位宽为 32位,而最高位为控制位,所以用于计数的位宽为 31位,计数个数为 2 31 ,所以最大计时长度为 2 31 个时钟周期。在 25MHz的时钟周期下,单个时钟周期的长度为40ns,因此计时器的最大计时长度为 402 31 ns(或 85 899 345 920ns)。 在递增计时的情况下,需要从初值开始递增到 0x7fffffff结
22、束,10ms 的时长需要 1010 6 /40个时钟周期,亦即 250000个时钟周期。但由于是从初值开始递增到 0x7fffffff,所以定时器的初值应该为最大计数值减去 10ms时长对应的计数值,即 2 31 -1010 6 /40或 2147233648。 在递减计时的情况下,从 0x7fffffff开始进行递减。10ms 的时长同样需要 1010 6 /40(或 250000)个时钟周期,因此定时器的初值应该设为 1010 6 /40或 250000。(3).嵌入式系统底层 FC通信驱动对大数据采用 DMA数据传输。图 1-2是未完成的 DMA数据传输工作流程图,请从下面中选择正确的答
23、案,完成该图,将答案填写在对应栏中。 (分数:5.00)_正确答案:()解析:(1)DMA 响应,或 (2)发送内存地址,或 (3)字计数器计数,或 (4)传送结束,或 DMA 是所有现代计算机系统中的重要特色,该工作方式允许不同速度的硬件装置来沟通,而不需要依赖于 CPU的大量中断负载。否则,CPU 需要从来源把每一片段的资料复制到暂存器,然后将这新信息再次写回到新的地方。在这个时间中,CPU 对于其他的工作来说就无法使用。DMA 传输将一个内存区从一个装置复制到另外一个。CPU 初始化这个传输动作,传输动作本身是由 DMA控制器来实行和完成。典型的例子就是移动一个外部内存的区块到芯片内部更
24、快的内存去。像是这样的操作并没有让处理器工作拖延,反而可以被重新安排去处理其他的工作。DMA 传输对于高效能嵌入式系统算法和网络是很重要的。 一个完整的 DMA传输过程必须经过下面的 4个步骤: 第 1步是 DMA请求。CPU 对 DMA控制器进行初始化,并向 I/O接口发出操作命令,I/O 接口提出 DMA请求。第 2步是 DMA响应。DMA 控制器对 DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当 CPU执行完当前总线周期即可释放总线控制权。此时,总线裁决逻辑输出总线应答,表示 DMA已经响应,通过DMA控制器通知 I/O接口开始 DMA传输。 第 3步是 DMA传输。DMA
25、控制器获得总线控制权后,CPU 即刻挂起或只执行内部操作,由 DMA控制器输出读写命令,直接控制 RAM与 I/O接口进行 DMA传输。在 DMA控制器的控制下,在存储器和外部设备之间直接进行数据传送,在传送过程中不需要中央处理器的参与。开始时需提供要传送的数据的起始位置和数据长度。 第 4步是 DMA结束。当完成规定的成批数据传送后,DMA 控制器即释放总线控制权,并向 I/O接口发出结束信号。当 I/O接口收到结束信号后,一方面停止 I/O设备的工作,另一方面向 CPU提出中断请求,使CPU从不介入的状态解脱,并执行一段检查本次 DMA传输操作正确性的代码。最后,带着本次操作结果及状态继续执行原来的程序。