模拟卷二
满分100分,考试时间120分钟
一、选择题(每题1分,共40分)
1. 下面关于嵌入式系统的叙述中,错误的是( )。
- A)嵌入式系统所涉及的应用领域非常广泛
- B)嵌入式系统性能较低,价格也比较便宜
- C)嵌入式系统大多具有不同程度的实时性
- D)嵌入式系统与通用计算机一样,也由硬件和软件两部分组成
答案
答:B 【解析】嵌入式系统所涉及的应用领域非常广泛,诸如通信、仪器、医疗、家用电器、娱乐设备、船舶、汽车等领域。嵌入式系统与通用计算机一样,也由硬件和软件两部分组成, 大多具有不同程度的实时性。在高端应用领域也需要高性能的嵌入式系统,价格也不会很便宜。综上所述,B选项表述有误,故选B。
2. 按照嵌入式系统的技术复杂程度进行分类,可以把嵌入式系统分为低端系统、中端系统和高端系统三大类。下面属于高端嵌入式系统的是( )。
- A)电冰箱
- B)智能手机
- C)空调器
- D)复印机
答案
答:B 【解析】嵌入式系统所涉及的应用领域非常广泛,按系统的软硬件技术复杂度,嵌入式系统分为低端系统、中端系统和高端系统。选项中智能手机属于高端系统,低端系统一般在工业领域和家电领域有较高使用率。故本题选择B。
3. 嵌入式系统的性能在很大程度上是由CPU 决定的,CPU 的性能主要表现为指令执行速度的快慢。下列选项中不直接影响CPU速度的是( )。
- A)指令系统结构
- B)cache容量
- C)指令流水线数目
- D)I/O接口的类型和数目
答案
答:D 【解析】影响CPU性能的主要因素有:主频、指令系统、高速缓冲存储器的容量和结构、逻辑结构(包括指令流水线数目)。故本题选D。
4. 片上系统(SoC)是嵌入式处理芯片的一个重要品种,下列叙述中错误的是( )。
- A)SoC是集成电路加工工艺进入到深亚微米时代的产物
- B)SoC既能把数字电路也能把模拟电路集成在单个芯片上
- C)需要时,SoC使用单个芯片可以进行数据的采集、转换、存储和处理,并支持多种I/O功能
- D)包含32位CPU的SoC设计制造难度很大,目前还未广泛使用
答案
答:D 【解析】SoC是集成电路加工工艺进入到深亚微米时代的产物,既能把数字电路也能把模拟电路集成在单个芯片上;需要时,SoC使用单个芯片可以进行数据的采集、转换、存储和处理,并支持多种I/O功能。目前大多数32位的嵌入式处理芯片均为SoC,SoC已经成为集成电路设计的主流发展趋势。故此题选择D。
5. 假设数码相机一次可连续拍摄1600万色(24位真彩色)的4096 x 3072分辨率的彩色相片可达400张,其数据压缩比为4,那么它所使用的存储卡容量大约是( )GB。
- A)1
- B)2
- C)4
- D)8
答案
答:C 【解析】一幅图像的数据量可以按下面公式计算:图像数据量=图像水平分辨率×图像垂直分辨率×像素深度/8=4096×3072×24/8=37748736B,存储卡容量=37748736×400/4≈4GB,故本题答案为C选项。
6. 手机最基本的功能是打电话和接听电话,在此过程中手机必须对话音信号进行处理,下面有关叙述中错误的是( )。
- A)在发送话音信号时必须对人们的讲话声音进行数字化
- B)数字话音需要进行数据压缩处理
- C)在接听电话时必须把接收到的数字话音信号恢复为模拟信号
- D)通话过程产生的数据流量比传输短消息要少得多
答案
答:D 【解析】手机也是嵌入式系统的应用。手机在打电话和接听电话的过程中就是Udine语音信号的数字化处理过程。在发送话音信号时必须对人们的讲话声音进行数字化,在接听电话时必须把接收到的数字话音信号恢复为模拟信号。通话过程产生的数据流量比传输短消息要多得多。故本题D项错误。
7. 下面关于WiFi无线局域网叙述中,错误的是( )。
- A)它借助无线电波传输信息,很快将取代有线网络
- B)无线局域网需使用无线网卡、无线接入点等设备构建
- C)无线接入点也称为“热点”
- D)无线接入点实际上就是一个无线交换机或无线Hub,相当于手机通信中的“基站”
答案
答:A 【解析】无线接入点也称为“热点”,借助无线电波进行数据传输,无线局域网需使用无线网卡、无线接入点等设备构建,目前还不能完全脱离有线网络,只是有线网络的补充。无线接入点实际上就是一个无线交换机或无线Hub,相当于手机通信中的“基站”。故此题选A。
8. 下面关于无线接入互联网的技术中,错误的是( )。
- A)使用WiFi接入互联网时,必须有可用的AP(接入点)
- B)WiFi的数据传输速率可达100Mb/s
- C)借助3G或者4G移动电话网,也可以接入互联网
- D)4G接入技术的速度最快,WiFi将被它取代
答案
答:D 【解析】WiFi的传输速率目前可以达到100Mb/s,而4G指第四代移动通信技术,其传输速率可达到20Mbps,理论上最高可以达到高达100Mbps。故只有D项不正确。
9. 关于嵌入式处理器架构说法错误的是( )。
- A)不同处理器有不同的指令集架构
- B)ARMv7A处理器的典型代表是ARM11
- C)ARMv7M版本仅支持Thumb-2指令集的子集。
- D)ARMv8A使用64位寄存器,支持ARM、Thumb和A64三种指令集
答案
答:B 【解析】不同的嵌入式处理器有不同的指令集架构,ARMv7A处理器的典型代表是Cortex-A系列,而ARM11采用的是ARMV6的体系结构。故此题选B。
10. 在以下ARM处理器中,面向中低端应用,成本最低的ARM Cortex嵌入式处理器是( )。
- A)ARM Cortex-M0
- B)ARM Cortex-M3
- C)ARM Cortex-M4
- D)ARM Cortex-R4
答案
答:A 【解析】面向中低端应用的主要是Cortex-M系列处理器,一般面向控制领域,选项中成本最低的是ARM Cortex-M0处理器。故此题选A。
11. 以下按照ARM公司的分类,不属于ARM Cortex应用处理器的是( )。
- A)Cortex-A9
- B)Cortex-A7
- C)Cortex-A57
- D)Cortex-R7
答案
答:D 【解析】ARM公司把从ARM7到ARM11为内核的系列处理器称为经典ARM处理器,而ARM6内核系列以及更早的系列已经很罕见了,很多已经淘汰不用了。把基于Cortex-R(Real Time)和Cortex-M(MicroController)为内核的系列处理器称为嵌入式Cortex处理器,这一类芯片通常被称为嵌入式微控制器,而把基于Cortex-A(A=Application)内核的系列处理器称为应用型Cortex处理器。故选D。。
12. 以下不具有Thumb-2状态的ARM处理器是( )。
- A)Cortex-M0
- B)Cortex-M3
- C)ARM9
- D)SC300
答案
答:C 【解析】Thumb-2状态是ARMv7版本的ARM处理器所具有的新状态,如Cortex系列。ARM9不具有Thumb-2状态。故此题选C。
13. 关于经典ARM处理器的工作模式,以下说法错误的是( )。
- A)中止模式是处理普通中断的模式
- B)用户模式是程序正常执行的工作模式
- C)快速中断模式用来处理快速中断FIQ
- D)管理模式是操作系统的保护模式,处理软中断SWI
答案
答:A 【解析】ARM体系结构支持7种工作模式,取决于当前程序状态寄存器CPSR的低5位的值。工作模式间可以相互切换,但是是有条件的。中止模式是处理存储器故障,实现虚拟存储器和存储器保护。用户模式是程序正常执行的工作模式,快速中断模式用来处理快速中断FIQ,管理模式是操作系统的保护模式,处理软中断SWI。故此题选A。
14. 以下关于ARM状态寄存器CPSR的说法错误的是( )。
- A)CPSR决定经典ARM处理器的工作模式
- B)CPSR决定是否允许中断
- C)CPSR中存放了运算结果产生的一些标志
- D)CPSR可读,但不可写
答案
答:D 【解析】CPSR(当前状态寄存器)可以读写,当中存放了运算结果产生的一些标志,决定经典ARM处理器的工作模式和是否允许中断。此题选择D。
15. 执行ARM指令LDRH R1,[R2,#4]!之后,以下说法错误的是( )。
- A)R1的值加4
- B)R2的值加4
- C)内存中的数据保持不变
- D)R1和R2的值均改变
答案
答:A 【解析】LDRH是存储器到寄存器的数据传送指令,半字数据加载指令。指令LDRH R1,[R2,#4]!是将内存地址为R2+4 处的16 位半字数据读取到寄存器 R1 中,同时把 R2+4 这个新地址写回基址寄存器 R2;R1的值并不是加4,所以此题选择A。
16. 已知R1=0x00000088,执行ARM指令TST R1,#8后,R1的值为( )。
- A)0x00000008
- B)0x00000011
- C)0x00000088
- D)0x00000440
答案
答:C 【解析】TST指令是一种逻辑处理指令,用于把一个寄存器的内容和另一个寄存器的内容或立即数进行按位的与运算,并根据运算结果更新CPSR中条件标志位的值。TST指令不会改变操作数的值,只会改变标志位。因此,执行TST R1,#8后,R1的值仍然为0x00000088,选项C是正确的。
17. 以下ARM指令正确的是( )。
- A)SUB R4,#1
- B)ORR R2,#9
- C)ADCS R7,R7,#1
- D)JMP PC,LR
答案
答:C 【解析】A选项中SUB是减法指令,缺少寄存器;B选项中是逻辑或指令,同样缺少寄存器;C项正确;D选项JMP是无条件跳转指令。故选C。
18. 在ARM汇编语言中,小端模式下,通过伪指DataTab DCW 0x1234,0x5678,0x9ABC,0xDEF0在内存中定义了这4个16位无符号数,R1=0x00000089,则在执行伪指令LDR R0,=MyData后再执行指令STR R1,[R0,#4]!,则( )。
- A)DataTab指示的内存区域数据不变
- B)R1的值不变,仍为0x00000089
- C)R0的值不变
- D)R1中的值为0xDEF09ABC
答案
答:B 【解析】在小端模式下,32位数据字的高字节存放在高地址,而低字节存放在低地址,这与通用微型计算机的存储器的信息存放格式相同。LDR是存储器到寄存器的数据传送指令,STR是寄存器到存储器的数据传送指令。故此题选B。
19. 下面是关于典型嵌入式系统的调试测试接口电路的叙述,其中错误的是( )。
- A)JTAG是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试
- B)基于ARM的典型嵌入式系统的调试测试接口电路常采用JTAG
- C)多个器件的JTAG接口可以串联在一起形成JTAG链
- D)JTAG接口通常不能实现在线编程功能
答案
答:D 【解析】基于ARM的典型嵌入式系统的调试测试接口电路常采用JTAG,JTAG是一种国际标准测试协议,主要用于芯片内部测试及对系统进行仿真、调试;JTAG接口可以实现在线编程功能,多个器件的JTAG接口可以串联在一起形成JTAG链。故D项错误。
20. AMBA是ARM公司公布的总线协议, 是用于连接和管理片上系统中功能模块的开放标准和片上互连规范。下面列出的ARM处理芯片中的4个组件,哪一个组件是挂在AMBA的系统总线上的?
- A)中断控制器
- B)CAN
- C)RTC
- D)SPI
答案
答:A 【解析】基于AMBA总线的处理器使用系统总线和外围总线构成来连接高速系统组件和低速外围组件,高带宽高性能外围接口通常连接系统总线,而速度不高的外部接口连接外围总线。中断控制器是直接连接到系统总线上,其余三项是外围总线连接的硬件组件。故选A。
21. 下面是关于ARM处理器中模拟通道组件的叙述,其中错误的是( )。
- A)利用ARM处理器内嵌的ADC可完成从模拟信号到数字信号的变换
- B)利用ARM处理器内嵌的DAC可完成从数字信号到模拟信号的变换
- C)有些ARM处理器内部的模拟组件除包括ADC和DAC外,还包含比较器等
- D)ARM处理器内嵌的ADC的A/D转换精度与ADC的位数无关
答案
答:D 【解析】有些ARM处理器内部的模拟组件除包括ADC和DAC外,还包含比较器;ADC和DAC可以分别完成模拟信号到数字信号的变换和数字信号到模拟信号的变换,其转换精度与位数正相关。故D选项错误。
22. 下面关于嵌入式系统使用的存储器的叙述中,错误的是( )。
- A)新型存储器FRAM和MRAM是非易失性存储器
- B)EEPROM是一种可电擦除可编程的只读存储器,可以在线改写和擦除信息
- C)NOR Flash ROM的特点是以字节为单位随机存取
- D)存储容量达几十GB(甚至更高)的微硬盘,其内部的存储体主要是Flash ROM
答案
答:D 【解析】新型存储器FRAM和MRAM是非易失性存储器,EEPROM是一种可电擦除可编程的只读存储器,可以在线改写和擦除信息,NOR Flash ROM的特点是以字节为单位随机存取,存储容量达几十GB(甚至更高)的微硬盘,其内部的存储体主要是NAND Flash。故此题选D。
23. 下面关于SPI的叙述中,错误的是( )。
- A)SPI是一种同步串行外设接口
- B)SPI是一种全双工串行外设接口
- C)通过SPI只能连接两个设备
- D)通过SPI可以方便地实现几Mb/s(或更高)的数据传输速率
答案
答:C 【解析】SPI(Serial Peripheral Interface)总线系统是一种同步串行外设接口,允许MCU与各种外围设备以串行方式进行通信、数据交换。外围设备包括Flash、RAM、ADC、网络控制器和MCU等。SPI接口总线配置灵活,可用于单主机单从机配置、单主从互换配置、单主多从配置和多主多从配置。故选C。
24. 下图为基于ARM处理器的嵌入式系统的键盘接口。下面关于该键盘接口的叙述中,正确的是( )。
- A)图中所示的键盘接口采用了线性键盘的结构
- B)为简化设计,图中的R1~R4可以直接短接
- C)可采用中断方式读取按键的特征值
- D)读取按键的特征值时,GPG4~GPG7作为输入接口
答案
答:C 【解析】图中所示的键盘接口采用了矩阵键盘的结构,可采用中断方式读取按键的特征值,读取按键的特征值时,GPF4 ~ GPF7作为输入接口。故选C。
25. S3C2410与一位共阳接法的8段LED数码管的连接如下图所示。下面与该图相关的叙述中,错误的是( )。
- A)图中的U1(74HC573)具有对数码管的各LED进行驱动的功能
- B)为使图中的数码管显示字符“0”,图中U1(74HC573)的8Q~1Q的状态应为00111111
- C)图中的GPE7~GPE0引脚是S3C2410的GPIO端口的部分引脚
- D)仅GPE7~GPE0引脚状态发生变化,不会引起数码管显示内容的变化
答案
答:B 【解析】图中采用共阳极接法,所以要显示字符“0”,图中U1(74HC573)的8Q~1Q的状态应为11000000。故B项错误。
26. 下面关于USB的叙述中,错误的是( )。
- A)各个USB版本均具有全双工通信能力
- B)各个USB版本均采用差分方式传输数据信号
- C)USB设备接入USB总线时,采用同名端(同名引脚)相连的方式
- D)USB 3.0的最大数据传输速率为5Gbps
答案
答:A 【解析】USB总线(1.1和2.0)有4根信号线,采用半双工差分方式,用来传送信号并提供电源;USB设备和USB总线接口的连接是采用同名端相连的方式;USB 3.0的最大数据传输速率为5Gbps。故A选项错误。
27. 若利用S3C2410的UART1进行通信,希望的波特率为19200bps,相应的波特率发生器对100MHz的时钟频率进行分频,则波特率除数寄存器UBRDIV1的值应设置为( )。
- A)837
- B)107
- C)324
- D)12
答案
答:C 【解析】UART的波特率由除数寄存器决定,也取决于外部时钟,关系式如下:UBRDIVn=INT(UCLK/(波特率ⅹ16))-1,UCLK可以是PCLK,还可以是UEXTCLK,由相应控制寄存器决定。故选C。
28. 下面关于CAN的叙述中,错误的是( )。
- A)CAN可实现多主工作方式,CAN网络上的节点在网络空闲时均可主动地向网络发送信息
- B)CAN总线的数据帧由7个不同的域组成
- C)通过CAN数据帧发送数据时,每次发送的数据必须固定为8个字节
- D)CAN总线采用差分方式进行信息传输
答案
答:C 【解析】CAN总线采用差分传输,控制器内置CRC校验,传输可靠性强,可构成多主多从系统,即同一时刻允许多个主从机同时进行数据传输。CAN总线的数据帧是由7个不同的域组成:帧起始、仲裁域、控制域、数据域、CRC域、应答域、帧结尾。数据域由数据帧的发送数据组成,它可以是0~8B,每字节包含8位,按照高位在前,低位在后的原则发送。故选C。
29. 下列各项中,不属于实时操作系统应该具备的特征的是( )。
- A)支持时间片轮转调度算法
- B)任务切换时间和中断延迟时间确定
- C)必须支持多级中断嵌套处理机制
- D)支持实时抢占式调度
答案
答:A 【解析】IEEE的实时UNIX分委会认为实时操作系统应该具备7个特征:具有异步I/O和中断处理能力;任务切换时间和中断延迟时间确定;优先级中断和调度;抢占式调度;内存锁定;连续文件;同步。所以此题选A。
30. 下列关于HAL的描述中,不正确的是( )。
- A)HAL位于硬件和操作系统内核之间
- B)术语HAL和Bootloader具有相近的含义,有时甚至可以相互替代使用
- C)引入HAL的目的是对硬件进行抽象
- D)HAL改善了操作系统的可移植性
答案
答:B 【解析】HAL(硬件抽象层)位于硬件电路板和操作系统之间,改善了PC机操作系统的稳定性,实现了Windows NT的可移植性;HAL隐藏了硬件的差异性,使得操作系统在不同的硬件平台上运行时,内核的代码不需要改动,从而改善了操作系统的可移植性;它是嵌入式硬件电路板的最基本软件,而Bootloader是在操作系统内核运行之前运行的一段小程序,它的主要任务是初始化硬件设备、建立内存空间的映射图等,HAL和Bootloader没有相近的含义,也不能相互替代使用。所以B选项叙述错误,本题答案为B选项。
31. 下列关于Bootloader的陈述中,不正确的是( )。
- A)Bootloader主要完成内存加电自检、外设存在自检、初始化外围设备、加载和启动操作系统等功能
- B)QNX是支持多种嵌入式CPU的Bootloader程序
- C)大多数从Flash存储器上启动的bootloader采用stage1和stage2两个阶段完成操作系统的引导加载
- D)Bootloader的实现依赖于CPU的体系结构
答案
答:B 【解析】嵌入式系统加电后执行的第一批最初操作称为引导或者自举,对应的程序称为引导程序或者引导加载程序(Bootloader),主要完成内存加电自检、外设存在自检、初始化外围设备、加载和启动操作系统等功能;Bootloader的实现依赖于CPU的体系结构,U-Boot可支持多种嵌入式CPU的Bootloader程序;大多数从Flash存储器上启动的bootloader采用stage1和stage2两个阶段完成操作系统的引导加载。故B项不正确。
32. 下列关于Linux的陈述中,不正确的是( )。
- A)Linux内核的主要作用包括:进程管理与调度、内存管理、提供行命令解释器、进程间通信等
- B)Linux系统最初以Unix为原型
- C)Linux使用GPL授权,是自由软件家族中的一个软件
- D)Linux的虚拟文件系统(VFS)向上层软件提供了不同逻辑文件系统的统一接口
答案
答:A 【解析】Linux是目前唯一可免费获得的、能为多用户提供多任务、多线程功能的大型操作系统,Linux使用GPL授权,是自由软件家族中的一个软件;Linux内核的主要作用是:进程管理与调度、内存管理、文件管理、网络接口和进程间通信。它为用户进程提供了一个虚拟接口(系统调用)。运行在单独的内核地址空间,每个用户进程则使用自己的虚拟地址空间; Linux采用宏内核结构,驱动程序可以被直接编译到Linux内核中并在内核启动时加载到内存, 亦可以模块形式存储在文件系统中并在需要时被动态加载和卸载。故只有A项不正确。
33. 在μC/OS-II操作系统下,能使运行态任务转入等待态的系统函数是( )。
- A)OSSemPost()
- B)OSTaskCreate()
- C)OSTaskDel()
- D)OSTimeDly()
答案
答:D 【解析】绝大多数情况下,μC/OS-II的每个任务都是一个无限的循环。每个任务都处在以下5种状态之一的状态下。这5种状态是休眠态、就绪态、运行态、挂起态(等待某一事件发生)和被中断态,能使等待态任务转入就绪态的系统函数是OSSemPost()。故D选项正确。
34. 在μC/OS-II操作系统下,处于运行态的任务调用系统函数OSSemPend()后将转入( )。
- A)等待态
- B)被中断态
- C)就绪态
- D)休眠态
答案
答:A 【解析】运行态指得到了CPU的控制权正在运行之中的任务状态。因为μC/OS-II是抢占式内核,所以处于运行态的任务一定是当前就绪任务集里的最高优先级任务。处于运行态的任务调用系统函数OSSemPend()后将转入等待态。故A项正确。
35. 在μC/OS-II操作系统下,中断服务子程序代码完成的操作不包括( )。
- A)保存全部CPU寄存器到堆栈
- B)将被中断的任务挂起
- C)执行中断返回指令
- D)调用OSIntExit()函数
答案
答:B 【解析】中断服务子程序的伪码结构如下:保存全部CPU寄存器到栈;调用OSIntEnter()或者对OSIntNesting变量加1;执行中断服务代码,或者发出IPC消息通知特定任务去执行中断服务;调用OSIntExit()函数;恢复所有CPU寄存器;执行中断返回指令。故选B。
36. 下列关于μC/OS-II操作系统内核任务调度的说法中,不正确的( )。
- A)进行中断级任务级调度的条件之一是:当前任务的优先级比处于就绪态的最高优先级任务的优先级高
- B)中断级的任务调度是调用函数OSIntExit()完成的
- C)进行中断级任务级调度的条件之一是:所有的中断服务程序均已经执行完毕
- D)内核通过系统函数OS_TASK_SW()进行任务级的任务调度
答案
答:A 【解析】μC/OS-II总是运行处于就绪态任务中优先级最高的那一个。当前运行态任务因等待某一事件而被阻塞时,或者当前有更高优先级的任务处于就绪态时,都有可能进行任务级的任务调度,中断级的任务调度是调用函数OSIntExit()完成的;任务级的调度是由函数OSSched()完成的。OSSched()函数是任务调度的前导函数,判断进行任务调度的三个条件是否满足。这三个条件是:(1)中断嵌套层数共享全程变量OSIntNesting=0,也就是所有的ISR已经执行完毕。(2)任务调度加锁层数共享全程变量OSLockNesting=0,也就是调度没有被禁止。(3)就绪表查找到的最高优先级任务的优先级比当前任务的优先级高。当发生任务级的任务调度时,内核进行任务级的任务切换,保存当前任务的上下文,并恢复新任务的上下文。故A项不正确。
37. 下列关于μC/OS-II操作系统时间管理的陈述中,不正确的是( )。
- A)调用OSTimeDly()函数会使μC/OS-II进行一次任务调度
- B)用户必须在多任务调度启动之后激活时钟节拍器
- C)运行态任务调用OSTimeDly()后将转入等待态
- D)任务A调用OSTimeDlyHMSM()后,一旦有任务B通过调用OSTimeDlyResume()取消了延时,任务A就会立即转入运行态
答案
答:D 【解析】μC/OS-II能够提供周期性时钟信号(即所谓的时钟节拍),用于实现任务的正确延时和超时确认。调用OSTimeDly()函数会使μC/OS-II进行一次任务调度,运行态任务调用OSTimeDly()后将转入等待态。用户必须在多任务系统启动以后再激活时钟节拍信号发生器,也就是在调用OSStart()之后。换言之,在调用OSStart()之后做的第一件事是初始化定时器中断;任务A调用OSTimeDlyHMSM()后,一旦有任务B通过调用OSTimeDlyResume()取消了延时,任务A不会立即转入运行态,而是先进入就绪态,能否运行取决于其优先级是否高于当前正在运行的任务。D选项叙述错误,故本题答案为D选项。
38. μC/OS-II操作系统通过事件控制块ECB支持任务间通信。下列说法中错误的是( )。
- A)中断服务程序不能等待信号
- B)任务可以通过ECB向其他任务发信号
- C)多个任务可以同时等待同一事件发生。当该事件发生后,所有等待该事件的任务都能得到该事件并进入运行状态
- D)中断服务程序可以通过ECB发信号
答案
答:C 【解析】μC/OS-II的事件控制块ECB(Event Control Block)是用于实现信号量管理、互斥型信号量管理、消息邮箱以及消息队列管理的ITC功能函数的基本数据结构。任务或中断服务子程序可以给事件控制块ECB发信号。只有任务可以等待另一个任务或中断服务子程序通过事件控制块ECB给它发送信号,而中断服务子程序是不能等待事件控制块ECB给它发送信号的。处于等待状态的任务可以指定一个最长等待时间,以防止因等待的事件没有发生而无限期地等待下去。多个任务可以同时等待同一事件的发生。在这种情况下,当该事件发生后,所有等待该事件的任务中,只有优先级最高的任务得到该事件并进入就绪状态,准备执行。当事件控制块ECB是一个信号量时,任务可以等待它,也可以给它发送消息。故本题选C。
39. 嵌入式系统开发时所用的集成开发环境,包含许多软件工具。下面所列举的工具中,哪一个不属于集成开发环境所包含的软件工具。
- A)项目管理器
- B)在线仿真器
- C)文本编辑器
- D)编译连接器
答案
答:B 【解析】嵌入式系统开发时所用的集成开发环境中一般包括项目管理器、文本编辑器和编译连接器等,而在线仿真器是属于嵌入式系统的调试工具。所以本题选B。
40. 下面有关RVDS的说法中,不正确的是( )。
- A)RVDS是用于开发基于ARM系列CPU应用系统的开发套件
- B)RVDS也可用来开发基于51系列CPU的应用系统
- C)RVDS包含有编辑器、编译连接器、调试器,不包含指令集仿真器
- D)RVDS支持基于在线仿真器的调试方式来调试目标系统
答案
答:C 【解析】RVDS(RealView Development Suite)是ARM公司推出的基于ARM系列CPU进行开发的工具套件,它支持所有ARM芯片,包括Cortex全系列,还支持其他内核的处理器,如51系列等。与ADS1.2比较而言,其生成的代码紧凑、执行效率高。要利用RVDS来调试实际目标板上运行的程序,需要借助RealView-ICE仿真器。RVDS开发工具套件中,主要包括工程管理器(IDE)、编译连接器(RVCT)、调试器(RVD)和指令集仿真器(RVISS)等。故C项错误。
二、填空题(每空2分,共40分)
41. 嵌入式系统广泛使用一种专用于数字信号处理的微处理器,它能显著提高声音、图像和视频等数字信号的处理效率,这种处理器的英文缩写名是_,其特点之一是指令系统增加了SIMD类型的一些特殊指令,SIMD表示_。
答案
答:【41】DSP【42】单指令多数据 【41】DSP【42】单指令多数据【解析】本题主要考察数字信号处理器相关的知识。数字信号处理器的英文缩写是DSP,是一种专用于数字信号处理的微处理器,指令系统中增加单指令多数据(SIMD)并行处理的特殊指令。
42. 集成电路的集成度指的是单个集成电路所含晶体管、电阻、电容等电子元件的数目多少。几十年来,集成电路的集成度平均每18~24个月翻一番,这就是有名的_定律。这是因为集成电路中晶体管等元器件的尺寸越来越小,当前集成电路批量生产的主流技术已经达到几十_甚至更小尺寸的水平。
答案
答:【43】摩尔(Moore)【44】纳米 【43】摩尔(Moore)【44】纳米【解析】本题考查对集成电路发展趋势的了解。Intel公司创始人之一的摩尔(G.E.Moore)1965年做出了预测,单块集成电路的集成度平均每18~24月翻一番,这就是摩尔定律。当前集成电路批量生产的主流技术已经达到几十纳米甚至更小尺寸的水平。
43. 手机的常用功能之一是收发短消息。按规定,一条短消息最多可包含140个英文字符或70个汉字信息。假设所发短消息由60个汉字和30个英文字母组成,则该短消息的长度为_字节,它将按_条短消息收费。
答案
答:【45】150【46】2 【45】150【46】2【解析】本题考查对中西文字编码的了解。计算机中储存字符的最基本单元是字节,每个字节为8bit,目前中文字符一般占用2个字节,英文字符占用1个字符。
44. 可用于智能卡应用,侧重安全可靠的ARM处理器被ARM公司称为安全专家处理器或专家处理器SecurCore,基于Cortex-M0的专家处理器为_,基于Cortex-M3的专家处理器名为_。
答案
答:【47】SC100【48】SC300 【47】SC100【48】SC300【解析】本题考查常用ARM嵌入式处理芯片方面的知识。基于Cortex-M0的专家处理器为SC100,基于Cortex-M3的专家处理器名为SC300。
45. 在ARM Cortex嵌入式处理理器中,Cortex-M3采用_级流水线,在ARM Cortex实时嵌入式处理理器中,Cortex-R4采用_级流水线。
答案
答:【49】3【50】8 【49】3【50】8【解析】本题考察典型ARM嵌入式处理芯片性能。Cortex-M3采用3级流水线,在ARM Cortex实时嵌入式处理理器中,Cortex-R4采用8级流水线。
46. 如果R0=0x67000010,R1=0x67000000,则ARM指令RSBS R2,R1,R0执行后,R2的值为_,执行指令ORR R3,R1,R0后,R3的值为_。
答案
答:【51】0x10【52】0x67000010 【51】0x10【52】0x67000010【解析】本题考查简单的指令操作。RSB是逆向减法指令,ORR是逻辑或指令。
47. 如果ARM小端模式下,R0=0x10000000,内存0x10000000到0x10000007中的数据分别为,0,1,2,3,4,5,6,7,执行指令LDMIA R0,{R1,R2}后, R1=_和 R2=_。
答案
答:【53】0x03020100【54】0x07060504 【53】0x03020100【54】0x07060504【解析】本题考察小端模式下的指令操作。在小端模式下,32位数据字的高字节存放在高地址,而低字节存放在低地址,这与通用微型计算机的存储器的信息存放格式相同。题中是块拷贝寻址,又称为多寄存器寻址。LDM是加载多个寄存器指令,后缀IA表示在每次执行完加载/存储操作后,R0按字长度增加。
48. 小端模式下ARM指令LDR R1,=0x10000000LDR R0,[R1,#4]!执行后,R0=0x12345678,则内存0x10000004中的值=_R1=_
答案
答:【55】0x78【56】0x10000004 【55】0x78【56】0x10000004【解析】本题考察小端模式下的指令操作。在小端模式下,32位数据字的高字节存放在高地址,而低字节存放在低地址,这与通用微型计算机的存储器的信息存放格式相同。LDR是存储器到寄存器的数据传送指令,题中是基址加变址寻址方式。
49. 下面是嵌入式最小硬件系统组成框图,用于说明嵌入式系统的组成,图中两个框中的①和②应分别填写的是_和_。
答案
答:【57】时钟【58】复位 【57】时钟【58】复位【解析】本题考查对嵌入式最小系统的了解。一个嵌入式处理器自己是不能独立工作的,必须给它供电,加上时钟信号,并提供复位信号,如果芯片没有片内程序存储器,则还要加上存储器系统,然后嵌入式处理器芯片才可能工作。这些提供嵌入式处理器运行所必须的条件的电路与嵌入式处理器共同构成了这个嵌入式处理器的最小系统。
50. 电源电路为整个嵌入式硬件系统提供能量,是整个系统工作的基础。嵌入式系统常用的电源模块主要有:_-DC(交流变直流)(填写用大写英文字母表示的简称)、DC-DC(直流到直流)模块以及LDO(即_的稳压器)。
答案
答:【59】AC【50】低压差 【59】AC【50】低压差【解析】本题考查对嵌入式硬件系统电源模块的了解。嵌入式系统常用的电源模块是交流变直流(AC-DC)模块、直流到直流(DC-DC)模块以及低压差稳压器(LDO)模块。
51. ARM处理器内嵌直接存储器访问控制器,直接存储器访问可用三个大写英文字母简称为_。使用直接存储器访问控制器可将数据块从外设传输至内存、从内存传输至外设或从内存传输至_。
答案
答:【61】DMA【62】内存 【61】DMA【62】内存【解析】本题考查对嵌入式存储器功能的了解。使用直接存储器访问(DMA)控制器可将数据块从外设传输至内存、从内存传输至外设或从内存传输至内存。
52. K9F1208是一种典型的NAND Flash芯片,芯片内部具有26条地址线和8条数据线,该芯片的存储容量为_MB。K9F1216的存储容量与K9F1208相同,但数据线为16条,由此可知K9F1216参与寻址的地址线只需_条。
答案
答:【63】64【64】25 【63】64【64】25【解析】本题考查典型Flash芯片的性能知识。K9F1208是一种典型的NAND Flash芯片,芯片内部具有26条地址线和8条数据线,该芯片的存储容量 = 2^26×8÷8bit = 2^ 26B,因为1MB=2^20B ,则2^26÷2^20=2^6=64MB ,所以 K9F1208 的存储容量是 64MB;K9F1216有16条数据线,已知 K9F1216 存储容量与 K9F1208 相同,为 64MB(即2^26Byte ),其数据线为 16 条,即存储字长为 16 位。根据按字节计算的存储容量公式:存储容量 = 存储单元个数 × 存储字长 / 8 ,可推导出存储单元个数 = 存储容量 ×8÷ 存储字长。将 K9F1216 的存储容量和存储字长代入可得存储单元个数 = 2^26×8÷16=2^25个。又因为存储单元个数 = 2^(地址线数量) ,现在存储单元个数为2^25,所以 K9F1216 参与寻址的地址线数量是 25 条。
53. UART传输一个字符时有固定的格式约定。字符总是以起始位开始,停止位结束,起始位以逻辑_电平为标志,停止位以逻辑_电平为标志,停止位可为1位、1位半和2位。
答案
答:【65】0【66】1 【65】0【66】1【解析】本题考查对UART格式的掌握。UART由发送器、接收器、控制单元、波特率发生器等构成,传输一个字符时有固定的格式约定。字符总是以起始位开始,停止位结束,起始位以逻辑0电平为标志,停止位以逻辑1电平为标志,停止位可为1位、1位半和2位。
54. 在实时系统中,系统运行的正确性是同其响应时限紧密相关的。根据截止时间约束的软硬属性划分,视频播放系统属于_实时系统,自动驾驶系统属于_实时系统。
答案
答:【67】软【68】硬 【67】软【68】硬【解析】本题考查对实时系统的掌握。硬实时(Hard Real-Time)系统的运行正确性是同其响应时限紧密相关的。一旦超过时限将导致严重的负效益后果,如飞机控制器、核反应堆处理装置等。然而,在一个软实时(Soft Real-Time)系统中,虽然也存在时限指标,但是如果输出响应超过时限,一般不会造成严重后果。设计软实时系统时,需要考虑该系统对多少次任务执行超时限和延迟是可接受的。常见的实时系统大多是软实时系统。
55. 在μC/OS-II系统中,可以采用的任务间通信机制有_、_、信号量、互斥信号量和事件标志组等。
答案
答:【69】消息队列【70】消息邮箱 【69】消息队列【70】消息邮箱【解析】本题考察嵌入式操作系统μC/OS-II中的任务间通信机制。在μC/OS-II系统中,可以采用的任务间通信机制有信号量、消息队列、消息邮箱、互斥信号量和事件标志组等。
56. 微软公司在Windows 95代码基础上开发的嵌入式操作系统名为_,iPhone、iPad等苹果产品上使用的操作系统名为_。
答案
答:【71】WinCE【72】iOS 【71】WinCE【72】iOS【解析】本题考查对嵌入式操作系统的了解。微软公司在Windows 95代码基础上开发的嵌入式操作系统名为WinCE,iPhone、iPad等苹果产品上使用的操作系统名为iOS。
57. 按照内核结构分类,VxWorks属于_内核操作系统,这类内核的特点包括:功能扩充方便,各个功能之间因切换而引起的开销比较_。
答案
答:【73】微【74】大 【73】微【74】大【解析】本题考查对嵌入式系统分类的掌握。嵌入式操作系统按照内核结构可分为单内核和微内核操作系统。VxWorks属于微内核操作系统,这类内核的特点包括:功能扩充方便,各个功能之间因切换而引起的开销比较大。
58. IEEE(美国电气电子工程师协会)给出的实时系统定义是:那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统。因此,实时系统对外界的响应是否正确不仅取决于_正确性,而且取决于_正确性。
答案
答:【75】功能【76】时间 【75】功能【76】时间【解析】本题考查对实时系统定义的掌握。IEEE(美国电气电子工程师协会)给出的实时系统定义是:那些正确性不仅取决于计算的逻辑结果,也取决于产生结果所花费的时间的系统。因此,实时系统对外界的响应是否正确不仅取决于功能正确性,而且取决于时间正确性。
59. 设计基于嵌入式Web服务器的应用系统时,需设计能够支持以太网连接的电路。若选用AX88796以太网控制器芯片,电路设计时使其片选信号CS引脚(低电平有效)连到S3C2410芯片的nGCS3上,那么,读写该芯片内部寄存器的首地址是_。用户通过连接在因特网上客户机(PC机)中的_软件来访问嵌入式Web服务器,从而远程操控设备。
答案
答:【77】0x18000000【78】浏览器 【77】0x18000000【78】浏览器【解析】本题考查基于Web的嵌入式系统的设计。控制芯片AX88796的数据总线宽度为16位,其片选信号CS引脚链接到S3C2410芯片的nGCS3上,则读写该芯片内部寄存器的首地址是0x18000000。客户机一般用浏览器访问因特网。
60. GNU是一种开发工具套件,它包括_、连接器、调试器、文本编辑器、语法除错等工具。利用GNU中的调试器GDB进行程序调试时,用命令_来装载需要进行调试的可执行代码文件。
答案
答:【79】编译器【80】file 【79】编译器【80】file【解析】本题考查开发工具GNU的使用。GNU包括编译器、连接器、调试器、文本编辑器、语法除错等工具。利用GNU中的调试器GDB进行程序调试时,用命令file来装载需要进行调试的可执行代码文件。
三、综合题(每空1分,共20分)
61. 【综合应用题】
智能吸尘器(示意图如图所示)是家居环境下进行吸尘的智能家电,若以S3C2410芯片为核心来设计其控制系统,该系统的基本功能描述如下:a.在家居环境中可以自主行走并进行吸尘。在行走中可以探测前方是否有障碍物,若有障碍物时,可以转向或后退,然后再行走。b.智能吸尘器行走的轨迹可以事先存储。即事先通过遥控器来控制智能吸尘器进行行走,然后把刚才行走的轨迹信息存储在智能吸尘器中。使用时,智能吸尘器按照存储的轨迹信息进行自主行走并进行吸尘。遥控器与智能吸尘器之间通过WiFi通信。c.需要4个共阴极的8段LED组成的显示器,用来显示计时信息。即智能吸尘器开始工作后,显示器需要显示到计时的时间信息。到计时的时间是事先设定的,到计时时间到时,无论是否设定的轨迹行走完,均停止工作根据上述功能要求的描述,请完善下面的叙述(程序)和回答有关的问题。(完善程序或回答问题所需的寄存器格式见题后的附录)。(1)若智能吸尘器的应用软件基于μC/OS-II操作系统上来开发。在软件开发时,若设计者需要对启动引导程序进行设计,那么,根据S3C2410芯片体系结构的要求,其设计的启动引导程序首先需完成异常向量表的设置、并完成关中断和看门狗部件、完成_指针的设置等,然后,用指令来引导应用程序(注:应用程序的主函数名为main())。按照S3C2410芯片体系结构的规定,复位异常的向量地址是_,各异常向量地址之间相差_个字节。因此,智能吸尘器开机或复位后,首先从复位异常向量地址处运行启动引导程序,然后引导应用程序主函数运行,并在主函数中启动μC/OS-II。(2)若在启动引导程序中直接引导了用户应用程序的主函数,那么,通常需在应用程序主函数中初始化μC/OS-II操作系统,并创建_,建立消息队列,启动任务调度。若用户应用程序的主函数main()的代码设计如下,请补充完善之。int main( void){ARMTargetInit() ; // 初始化目标系统的相关硬件(); //初始化μC/OS-II的函数OSTaskCreate( Main_Task, ( void * ) 0, ( OS_STK * ) &Main_Stack[4095] ,21) ;OSTaskCreate( Com_RS232, ( void * ) 0, ( OS_STK * ) &Com_Stack[4095] , 22);OSTaskCreate(Infra_Red, ( void * ) 0, ( OS_STK * ) Red_Stack[4095], 23) ;msgqueue = OSQCreate(&msgqueueTbl[0],MSG_QUEUE_SIZE);//建立消息队列函数_(); //启动任务调度return 0;}上述的main()函数中任务名为的任务优先级最高,任务名为_的任务优先级最低。(3)main()函数中的ARMTargetInit()函数,是完成对目标系统上一些硬件进行初始化。若硬件设计时,WiFi模块通过串口与S3C2410芯片的UART0部件连接,那么,该函数中需要用下面一组语句来初始化相关的硬件部件。 rGPHCON=(rGPHCON & 0xFFFFFF00); //rGPHCON是端口H的控制寄存器 rUFCON0=0x0; //FIFO disable rUMCON0=0x0; rULCON0=(_<<3)|(0<<2)|(); //设置线路控制寄存器:偶校验,1位停止位,8位数据位 rUCON0=0x245; //设置控制寄存器 //设置波特率,小数采用四舍五入 rUBRDIV0=((int)(PCLK/(115200×_)+ 0.5) -1); //设置波特率为115200bps若硬件设计时,4个8段LED选用共阴极的(如图61-2),通过S3C2410芯片端口C的GPC7~GPC0引脚外加同向驱动来控制LED的段信号,GPC11~GPC8引脚外加同向驱动来控制LED的位信号。那么,在ARMTargetInit( )函数中还需用下面语句来初始化相关的硬件部件。 rGPCCON=((rGPCCON|0x00FFFFFF)&); // rGPCCON是端口C的控制寄存器并且用下面语句来初始化LED显示器,使得初始时候4个LED组成的显示器上均不显示字符。 rGPCDAT = rGPCDAT |_; //4个8段LED的位信号线输出“1”,则共阴的LED不显示字符(4)软件系统中任务之间通过消息队列来传递数据。μC/OS-II用函数来等待并获得消息,用函数_来发送消息(注:{1.1.16}和{1.1.17}空仅填出函数名即可)。若有多个任务在等待消息队列中的消息时,其中任务优先级_的任务将获得消息。(5)Main_Task任务函数将根据接收到的消息类型,来控制智能吸尘器的动作,并控制LED显示器上的到计时时间显示。假设只在GPC8引脚所控制的LED上显示字符4,那么,在段信号线GPC7~GPC0上输出的数据组合是_,在位信号线GPC11~GPC8上输出的数据组合是。(注:{99}{100}空用二进制形式表示,GPC0对应于a段、GPC1对应于b段、…、依此顺序对应)。说明:下面是试题解答时需要用到的寄存器格式及相关说明:
参考答案
【81】堆栈【82】BL __main 【83】0x00000000 【84】4 【85】任务【86】OSInit【87】OSStart【88】Main_Task【89】Infra_Red【90】0x000000AA (0xAA)【91】5【92】3【93】16【94】0xFF555555【95】0x0F00【96】OSQPend【97】OSQPost【98】最高【99】01100110【100】1110
详细解析: 【解题思路】本题主要考查WiFi遥控下基于S3C2410的智能吸尘器控制系统的开发。包括嵌入式系统无线网络接口配置,系统软件启动引导,GPIO引脚功能及相应初始化设置,GPC端口来控制LED显示器的显示输出,还考察了μC/OS-II操作系统系统配置与使用。【参考答案及解析】(1)【81】堆栈【82】BL main 【83】0x00000000 【84】4 【解析】系统上电或复位后,首先执行的是“B ColdReset”指令,系统跳转到标号为ColdRest处接着执行,在完成了关看门狗定时器、关中断、初始化各模式的堆栈、初始化存储器等功能后,执行指令“BL __main”跳转到C语言的主函数处执行。按照S3C2410芯片体系结构的规定,复位异常的向量地址是0x00000000,各异常向量地址之间相差4个字节。(2)【85】任务【86】OSInit【87】OSStart【88】Main_Task【89】Infra_Red【解析】在应用程序的main()函数中除了完成必要的AEM处理器初始化外,还必须初始化μC/OS-II操作系统、并创建多任务(至少创建一个任务)、启动多任务调度等;初始化μC/OS-II的函数用OSInit();启动多任务调度用OSStart();任务优先级的值越小表示任务优先级越高,反之亦然。(3)【90】0x000000AA 0xAA【91】5【92】3【93】16【94】0xFF555555【95】0x0F00【解析】该题主要是完成对GPH、GPC扣的初始化设置、线路控制器配置、波特率设置以及LED控制输出,此处LED是共阴极接法。对照控制寄存器的格式,设置为相应的输入输出和使能功能。注:【91】前面缺少“|”,考试遇到原题,直接写0x000000AA或0xAA即可(4)【96】OSQPend【97】OSQPost【98】最高【解析】在μC/OS-II操作系统中,一般用OSQPend()函数来等待并获得消息,用函数OSQPost()来发送消息;当有多个任务在等待消息队列中的消息时,其中任务优先级最高的任务将获得消息。(5)【99】01100110【100】1110【解析】题中LED为共阴极接法,要显示4,则b、c、f、g四段需要被点亮,分别对应GPC1、GPC2、GPC5、GPC6设置为1,其他引脚设置为0;那么,在段信号线GPC7~GPC0上输出的数据组合是01100110;又因为只在GPC8引脚所控制的LED上显示字符4,在共阴极数码管位选逻辑为低电平有效(即低电平时选中对应数码管),所以仅需将GPC8置为低电平(选中),其余置高电平(不选中),那么在位信号线GPC11~GPC8上输出的数据组合是1110。