您的当前位置:首页正文

上海交大--嵌入式系统及应用所有章节单元自测

2020-12-29 来源:易榕旅网
第一章

1. 下列哪个不是嵌入式系统的特点:( D )。 A. 专用性 B. 资源受限

C. 功耗约束

D. 常由外接交流电电源供电

2. 下列哪些不是嵌入式系统:( D )。 A. 移动电话、手机

B. MP3

C. MID

D. 深蓝超级计算机

3. 关于嵌入式组成,下面说法错误的是:( A )。 A. 嵌入式系统的中间层是位于操作系统与应用程序之间。 C. 嵌入式系统包含了一个计算机系统基本部件 第二章

1. 指令和数据共享同一总线的体系结构是( A )。 A. 冯•诺依曼结构

B. 哈佛结构

C. RISC

D. CISC

B. 嵌入式系统包括硬件和软件

D. 并不是每个嵌入式系统都拥有独立的操作系统

2. 下面不属于嵌入式处理器的是:( A )。 A. Intel Core(酷睿)处理器

B. Intel Atom处理器

C. MCS-51单片机

D. ARM处理器

3. 在嵌入式处理器与外部设备接口中,使用2根线实现多对多双向收发的是:( B )。 A. UART

B. I2C

C. SPI

D. USB

4. 假设使用奇偶校验位,UART发送一个字节的数据,从idle状态开始(及数据线为高),到允许进行下一次发送动作态为止,至少需要( D )个时钟节拍。 A. 8 第三章

1. 关于嵌入式处理器内核性能,下面说法正确的是:( C ) A. DMIPS反映处理器内核的功耗性能。

B. DMIPS越高反映处理器内核架构的越先进。

B. 9

C. 10

D. 11

C. “DMIPS/主频”越高反映处理器内核架构的越先进。 D. 内核的动态功耗性能一般用mW来衡量。 2. 关于体系结构与实现结构,下面说法正确的是:( C ) A. x86是一种实现结构。

B. x86架构处理器的实现结构都是一样的。

C. 体系结构相同的处理器器其指令集是相同或兼容的。

D. 不同处理器要想拥有相同或兼容的指令集,其实现结构也必须一样。 3. 关于SIMD说法错误的是:( B )。

A. SIMD通过复制ALU和寄存器组,共享取值、译码单元来获得计算并行。 B. SIMD是通过增加寄存器个数来提高数据处理的宽度。 C. SIMD中多个运算单元运行的是相同的指令。

D. Intel Atom的SSE指令属于SIMD指令

4. 关于跳转代码问题,下面说法正确的是:( D ) A. 任何处理器都会有跳转代码问题。

B. 处理器流水线深度越浅,跳转指令的影响越大。

C. 跳转代码问题就是处理器执行跳转指令时跳转目标地址错误导致运行错误问题。 D. 跳转代码问题就是跳转指令导致处理器处理速度下降的问题。

5. ARM7中如果需要实现形如 R0=R1+(R2<<3)的操作,最少可以用( A )条指令。 A. 1 第四章

1. 交叉开发形成的可执行文件( B )。 A. 直接在宿主机上运行 B. 下载到目标机上运行

C. 上载到宿主机上运行

D. 在宿主机和目标机任选一处运行

B. 2

C. 3

D. 4

2. ____需要操作系统或加载程序将其加载到内存中才能执行,____加载器只能把它加载到固定的地址运行。( B ) A. 可重定位执行文件,可重定位执行文件 C. 不可重定位执行文件,可重定位执行文件

B. 可重定位执行文件,不可重定位执行文件 D. 不可重定位执行文件,不可重定位执行文件

3. 使用GCC将test.c源代码文件编译、链接成名为test可供gdb调试使用的可执行文件的命令为( B )。 A. gcc test.c –c –o test C. gcc test.c –pg –o test

B. gcc test.c –g –o test D. gcc test.c –o test -static

4. ELF文件的.bss section一般是用来存储:( C )。 A. 堆栈

B. 寄存器

C. 未初始化的全局变量

D. 局部变量

5. 假设一个软件工程包含一个如下的Makefile,且已经用make命令进行了一次成功的编译。 myprog: data.o main.o io.o

cc data.o main.o io.o -o myprog data.o: data.c data.h cc -c data.c

main.o: data.h io.h main.c cc -c main.c io.o: io.h io.c cc -c io.c clean:

rm *.o myprog

假设我们又修改了main.c文件,当执行make命令时会( C )。 A. 无动作

B. 删除所有.o目标文件和myprog可执行文件

D. 编译所有的.o文件,然后链接myprog可执行文件

C. 只编译main.o,然后链接myprog可执行文件

6. 上题中(同样假设我们修改了main.c文件),当执行make clean命令时会( B )。 A. 无动作

B. 删除所有.o目标文件和myprog可执行文件

D. 编译所有的.o文件,然后链接myprog可执行文件

C. 只编译main.o,然后链接myprog可执行文件 第五章

1. 关于嵌入式系统组成,下面说法正确的是( B ) A. 操作系统是嵌入式系统必不可少的部分。

B. 硬件抽象层包括设备驱动、Bootloader与BSP。

D. 操作系统一般直接访问全部的硬件。

C. BSP(板级支持包)位于操作系统与应用程序之间。 2. 关于嵌入式操作系统结构,下面说法正确的是( A ) A. 应用软件可以直接调用操作系统的系统服务。 C. 操作系统内核包括系统库。

B. 设备驱动程序工作在用户态(user mode)。

D. 系统库和应用库属于统一层次的两种不同功能的模块。

3. 关于Bootloader,下面说法正确的是( C ) A. Bootloader是操作系统的一部分。

B. 操作系统运行期间,Bootloader一直被使用。

C. Bootloader的主要任务包括初始化系统硬件,引导和启动操作系统内核。

D. Bootloader向操作系统提供访问硬件的接口,操作系统需要通过Bootloader来访问硬件。 4. 关于BSP,下面说法正确的是( D ) A. BSP是操作系统的一部分。

B. 从功能上说,BSP不包括设备驱动的功能。

D. BSP位于硬件抽象层。

C. BSP(板级支持包)就是向应用提供访问硬件的接口。 5. 下列哪个关于实时系统的说法是不正确的:( A )。 A. 高性能系统一定是实时系统。

B. 实时操作系统需保证最坏情况下系统响应时间的可预测性。

C. 实时操作系统不以提高系统(特别是CPU)的总体利用率为目标。

D. 硬实时系统中,系统的响应时间如果超过允许上限,可能会造成致命影响。 6. 关于实时操作系统的任务调度策略,下面说法正确的是( A ) A. RMS实现上比EDF简单。

B. RMS属于动态优先级策略。

C. EDF属于静态优先级策略。

D. EDF方法可调度的任务集,RMS一定能实现可调度。

7. 关于优先级颠倒问题,下面说法正确的是( B ) A. 优先级顶置和优先级继承都可防止有边际的颠倒。

B. 无边际的颠倒对实时性造成妨害比有边际的颠倒要大

C. 优先级颠倒造成的问题是使操作系统任务调度的效率急速下降。

D. 高优先级任务H和低优先级任务L需要互斥访问一个共享资源R,如果L持有R的过程中,恰好又被一个中间优先级的任务M所抢占,此时称为有边际的优先级颠倒。

8. 关于操作系统的定制与裁剪,下面说法正确的是( A ) A. 操作系统定制与裁剪是一个概念。

B. 操作系统定制在操作系统启动时完成。

C. 操作系统裁剪就要把操作系统从嵌入式系统删除掉。

D. 操作系统裁剪不惜以增加操作系统的存储空间为代价来加快操作系统运行速度。 9. 关于操作系统的合作式多任务和抢占式多任务,下列哪种说法是对的:( B )。 A. Linux不是基于抢占式多任务的。

B. 抢占式多任务很少出现合作式多任务那种被恶意或者出错进程阻塞的情况。 C. 合作式多任务中一个任务执行的最小时间是一个时间片。 10. 关于嵌入式操作系统,下面说法正确的是( B ) A. μClinux是一种实时操作系统。 C. 嵌入式Linux采用了微内核的结构。 第六章

1. 下面说法正确的是( A )。

A. WIMP是由Windows、Icons、Menus以及Pointers为代表的元素组成的图形用户界面。 B. WIMP是起源于嵌入式设备图形用户界面设计形成的模式。 C. WIMP依赖于触摸屏、指示笔、屏幕键盘来完成交互。 2. 下面说法正确的是( D )。

A. 嵌入式系统一般拥有全键盘之类的输入设备。

B. 屏幕键盘是覆盖在屏幕上的半透明的物理键盘。

D. GUI是一种命令行操作界面

B. VxWorks是一种实时操作系统。

D. 在嵌入式Linux、VxWorks、Windows CE、μC/OS-II中所占空间最小的是VxWorks。

D. 合作式还是抢占式的区别在于是不是支持多进程。

C. 嵌入式系统和桌面计算机一样常使用4:3屏幕纵横比的屏幕。

D. 嵌入式系统常采用触摸屏(Touch-screen)和指示笔(Stylus)代替鼠标完成指向输入。

3. 当一个应用从桌面计算机移植到同纵横比的小尺寸触摸屏的嵌入式系统时,引起的问题包括( C )。 ①需正确地解释鼠标移动输入的问题。

②需正确地设置屏幕映射。

③需处理悬停(Hover-Over)问题。 A. ①~③

B. ③④

C. ①③④

D. ①~④

④需提供右击的代替功能。

4. 下面说法正确的是( B )。

A. 在GUI库中,消息/事件模型属于设备模型层次的抽象。

B. 在GUI库中,应用模型的抽象是最高级别的抽象。

C. 在GUI库中,将输入设备被封装成键盘扫描码属于交互(单元)模型层次的抽象。

D. 如果使用第三方的图形界面开发库,开发者也不得不直接访问硬件或者访问Linux下的Frame buffer设备。 5. 常见的嵌入式系统的图形用户界面库包括( B ) ①Micro Windows

②MiniGUI

③Qt/Embedded ④Windows MFC

⑤Java AWT/Swing A. ①~②

B. ①~③

C. ①②③④

D. ①~⑤

第七章

1.嵌入式系统的优化包括:( C )。 ①运行速度优化

②代码尺寸优化

③低功耗优化 A. ①

B. ①②。

C. ①~③。

D. ①~④。

④体积和重量的优化

2. 关于性能优化的方法论,下面说法正确的是( B )。 A. 内存访问方式从SDR换到QDR,体现了优化中并行化的思路。 B. 双缓存(Double buffer )机制体现了优化中流水线化的思路。

C. 并行PCI的速度肯定比串行PCI高,前者替换后者是当今PCI发展的一个趋势。

D. Flash存储Linux内核不应该压缩,因为将其装入RAM运行时需要额外的解压缩时间,与性能优化的方法背道而驰。 3. 性能优化一般都有代价,也就说性能优化带来的副作用,这些副作用包括:( B )。 ①增加了存储空间需求

②使得相关设计复杂化了

③带来功耗的增加 A. ①

B. ①②

C. ①~③

D. ①~④

④削弱了系统的鲁棒性

4. 关于性能优化的层次,下面说法正确的是( D )。 A. 降低算法的计算复杂度属于与平台相关的优化。

B. 向量运算选用SIMD指令完成属于与平台无关的优化。

C. 减少实际的运算次数和数据搬移次数属于系统层次的性能优化。

D. 用户界面层次的优化并没有加快应用的实际运行速度,对应用的实际运行性能没有改善。 5. 关于软件性能优化,下面说法正确的是( A )。

A. 高速缓存优化的原则是尽量减少命中失败(cache miss)率。 B. 向量运算选用SIMD指令完成是遵循提高并行度的优化原则。

C. 在C/C++中,函数的内联(inline)化是遵循选用速度更快的指令的优化原则。 D. 整数乘以4的运算可以变为左移2位来完成是遵循减少指令或执行次数的优化原则。 6. 对于如下C代码片段:

for ( i=0; i<30; i++) a[i] = get_data(i) * 33;

假设:1) get_data函数是别人实现的,它返回一个根据i而定的整数值;2) 编译器不会帮你进行任何优化;3) 目标CPU上乘法需要较多周期。 则以上代码( D )。 A. 不需要进行优化 B. 需要优化,代码为:

for ( i=0; i<30; i++) a[i]=get_data(i)<<5 + get_data(i); C. 需要优化,代码为:

for ( i=0; i<30; i++) a[i]=(get_data(i)<<5) + get_data(i); D. 需要优化,代码为: int j;

for ( i=0; i<30; i++) { j = get_data(i); a[i]=(j<<5) + j; }

7. 对于如下C代码片段: for ( i=0; i<30; i++) a[i] = get_data(i); for ( j=0; j<30;j++)

b[j] = a[j] – 78 + 100;

假设:1) get_data函数是别人实现的,它返回一个根据i而定的整数值;2) 编译器不会帮你进行任何优化; 则以上代码( B )。 A. 不需要进行优化 B. 需要优化,代码为:

for ( i=0; i<30; i++) { a[i] = get_data(i); b[i] = a[i] + 22; } C. 需要优化,代码为:

for ( i=0; i<30; i++) { a[i] = get_data(i); b[i] = a[i] – 78 + 100; } D. 需要优化,代码为:

for ( i=0; i<30; i++) a[i] = get_data(i); for ( j=0; j<30; j++) b[j] = a[j] + 22;

8. 对于如下C代码片段: for ( i=0; i假设:1) get_data和loop_count函数是别人实现的,它返回一个整数值;2) 编译器不会帮你进行任何优化; 则以上代码( C )。 A. 不需要进行优化 B. 需要优化,代码为: int j = get_data(i);

for ( i=0; i< loop_count(); i++) a[i] = j; C. 需要优化,代码为: int j = loop_count();

for ( i=0; ifor ( i=0; i< k; i++) a[i] = j;

9. 关于软件优化的工具,下面说法正确的是( C )。

A. 简档(Profiling)工具可以自己实现对用户程序的修改、优化。 B. 将归并排序改为快速排序是编译器能自动完成的优化。

C. 当gcc编译、链接程序时,使用-O3参数得到可执行文件的长度可能比-O2要大。 D. 在ARM架构机器上使用IPP库完成计算可以收到缩短运行时间的效果。

第八章

1. 下面说法正确的是:( B )。

A. 基于CMOS工艺的处理器内核的动态功耗与供电电压成正比

B. 基于CMOS工艺的处理器内核可支持的工作频率一定范围内随着供电电压升高而升高 C. 目前的笔记本中,CPU功耗在整体系统功耗中占了绝对的大头 D. 基于CMOS工艺的处理器内核的动态功耗与工作频率的平方成正比 2. CPU节流(CPU throttling)采用的是( B )功耗控制技术。

A. APM、ACPI标准 B. 动态电压/频率放缩技术 C. 节能的电路设计和制造工艺 D. 时钟门控(Clock Gating)技术 3. Intel EIST采用的是( B )功耗控制技术。

A. APM、ACPI标准 B. 动态电压/频率放缩技术 C. 节能的电路设计和制造工艺 D. 时钟门控(Clock Gating)技术 4. 操作系统的各种睡眠状态中,必须保持对内存供电的是( A )。 A. 待机(Standby)

B. 休眠(Hibernate)

C. 睡眠(Sleep)

D. 关机

5. 下面不符合低功耗设计原则的行为是( B )。 A. 在循环控制变量前加register关键词。

B. 一个要求持续一段时间的Windows程序的实现思路是,不停地将系统时间比对截止时间,大于等于时结束程序。

C. 一个要求持续一段时间的Windows程序的实现思路是,用开始程序开始启动一个系统定时器,将时间到消息(Message)的响应动作设置为结束应用。

D. 一个要求持续一段时间的Windows程序的实现思路是,调用操作系统Sleep函数睡眠指定时间后结束应用。 6. 关于Linux的功耗控制技术,下面说法正确的是( C )。

A. PowerTop可以降低Linux内核运行的功率消耗。 B. PowerTop可以自动修改程序代码,将其改为符合低功耗原则的代码。 C. Tickless Idle降低了Linux内核运行的功率消耗,特别是系统轻负载时的功率消耗。 D. Tickless Idle通过将Linux内核定时循环的周期延长的方式来降低内核的功率消耗。 试验基础:嵌入式Linux和Linux

1. 关于嵌入式Linux,下面说法正确的是( D )

A. 嵌入式Linux通用采用了桌面Linux的图形用户界面(GUI)。 B. 不同Linux发行版本(Linux distribution)的Linux内核不同。 C. 嵌入式Linux的内核与通用Linux的内核完全属于两个不同的体系。

D. 嵌入式Linux在通用Linux上经过裁剪、定制和修改后得到的,它拥有更小的ROM空间要求、更快的启动速度。 2. 关于Linux内核,下面说法错误的是( A ) A. Linux采用了微内核结构。

B. Linux支持虚拟地址模式。

D. Linux的驱动程序可以动态加载和卸载。

C. Linux是一种抢占式多任务操作系统。

3. 关于Linux设备驱动,下面说法正确的是( D ) A. 硬盘属于字符设备。

B. Linux设备驱动工作在用户态。

C. Linux设备文件对应着磁盘中占一定容量空间的数据,自然可以用cp命令来拷贝。

D. 用户可以选择将Linux设备驱动直接编译到kernel中,或者编译成独立的可动态加载的模块(loadable module)。 4. 关于Linux文件的链接,下面说法正确的是( A ) A. 无法创建到一个目录的硬链接。 C. 无法创建到一个目录的软链接。

B. 当移动了原路径后,硬链接就失效(orphaned)了。 D. 软链接就是多个不同的文件路径名指向同一个inode。

5. 关于嵌入式Linux文件系统,下面说法正确的是( D ) A. JFFS2中每次修改都是修改原来的数据节点。

B. ext2、ext3是适用于Flash存储介质的文件系统。

C. CRAMFS是可读和写的,并对文件内容进行了压缩的文件系统。

D. Tmpfs、Ramdisk、Initrd都是以内存为存储介质的文件系统,如果系统掉电就会丢失全部的数据。

6. 关于嵌入式Linux移植,下面说法正确的是( B ) A. 嵌入式Linux移植仅仅包括内核的编译与移植。 C. Linux移植最后得到的FLASH中不包括Bootloader。

D. Linux移植最后得到的FLASH中仅仅包括Linux内核和根文件系统。 7. 显示当前目录的路径的命令是( D ) A. cd

B. cd /

C. cd $HOME

D. pwd

B. 嵌入式Linux移植包括驱动的开发、移植工作。

8. 在整个文件系统搜索hello.c文件所在的位置,可以使用( D )命令。 A. ls -l hello.c

B. cat \"hello.c\"

C. grep -i hello.c

D. find / -name hello.

因篇幅问题不能全部显示,请点此查看更多更全内容