嵌入式Linux试题答案 下载本文

内容发布更新时间 : 2024/11/21 0:20:07星期一 下面是文章的全部内容请认真阅读。

.

《嵌入式开发》期中试卷

试卷适用范围:2011级计算机科学与技术(本)1、2班 一、填空题(每空1分,共46分) 习 题 1

1.填空题

(1)嵌入式系统是以应用为中心、以 计算机技术 为基础,软、硬件可裁剪,适应于应用系统对功能、可靠性、成本、体积、功耗等方面有特殊要求的专用计算机系统。

(2)嵌入到对象体系中的专用计算机系统。 嵌入性 、 专用性 与 计算机系统 是嵌入式系统的三个基本要素。 对象系统 是指嵌入式系统所嵌入的宿主系统。

(3)嵌入式系统按形态可分为设备级(工控机)、板级(单板、模块)、 芯片级(MCU、SOC)。

(4)嵌入式系统由 硬件 和 软件 两大部分组成,硬件一般由高性能微处理器和外围接口电路组成,软件一般由操作系统和应用程序构成,软件和硬件之间由所谓的中间层(BSP层,板级支持包)连接。

(5)嵌入式系统从组织层次上看,嵌入式系统一般由 硬件层 、 中间层 、 软件层 和功能层组成。

(6)在专用的嵌入式板子上面运行GNU/Linux系统已经变得越来越流行。一个嵌入式Linux系统从软件的角度看通常可以分为四个层次: 引导加载程序 、 Linux内核 、 文件系统 、用户应用程序。

(7)嵌入式系统硬件的核心部件是各种类型的 嵌入式处理器 。

(8)嵌入式系统的核心部件是嵌入式处理器,一般把嵌入式处理器分成4类,即 微处理器 、 微控制器 、 数字信号处理器 、和嵌入式片上系统。

(9)ARM公司首创了 chipless 的生产模式,专门从事基于RISC技术芯片的设计开发,公司本身并不生产芯片,而是设计出高效的IP内核,授权给半导体公司使用。

(10)ARM7TDMI中,T表示 支持Thump指令集 。D表示支持片上调试(Debug)。M表示内嵌硬件乘法器(Multiplier)。I表示支持片上断点和调试点。

(11)ARM9系列微处理器包含 ARM920T 、ARM922T和ARM940T三种类型,以适用于不同的应用场合。

(12)ARM微处理器有两种工作状态: Thump状态 、 ARM状态 。 (13)通用寄存器分为三类:未分组寄存器、 分组寄存器 、 程序计数器(PC) 。

(14) 异常 是由内/外部源引起的需要处理器干预的一个事件。

(15)精简指令集计算机RISC(Reduced Instruction Set Computer)和 复杂指令集计算机CISC 是当前CPU的两种架构。

(16)ARM微处理器的在较新的体系结构中支持两种指令集: ARM指令集 、 Thump指令集 。

(17)MMU的作用有两个: 将虚拟地址转化为物理地址 、 对存储器访问的控制 。

..

.

习 题 2

1.填空题

(1) 交叉开发环境 是由开发主机和目标板两套计算机系统构成的。

(2)OK2440-II开发板采用 核心板 + 底板 的模式,核心板为6层,底板为2层。

(3)交叉编译的主要特征是某机器中执行的程序代码不是在本机编译生成,而是由另一台机器编译生成的,一般把前者称为 目标机 ,后者称为 宿主机 。

(4)基于ARM平台的交叉编译工具链主要有: arm-linux-* 和 arm-elf-* 。

(5)arm-linux-*是针对 linux程序 的开发环境的 (6)arm-elf-*是针对 uCLinux程序 的开发环境

(7)2002年11月,清华大学计算机系的博士后 陈渝 提出了用软件实现嵌入式开发板硬件模拟器的想法,在模拟器上可以运行各种操作系统,这样就可以在没有开发板的情况下学习和研究操作系统。于是借鉴了ARMulator的实现,提出了 SkyEye 项目。

(8)SkyEye是一个 指令级 模拟器,可以模拟多种嵌入式开发板,可支持多种CPU指令集,在SkyEye上运行的操作系统意识不到它是在一个虚拟的环境中运行,而且开发人员可以通过SkyEye调试操作系统和系统软件。

(9)SkyEye模拟的硬件配置和模拟执行行为由配置文件 skyeye.conf 中的选项确定。

(10)skyeye.conf的选项主要由两种组成: 单参数选项行 、 多参数选项行 。

(11) TFTP 是TCP/IP协议族中的一个用来在客户机与服务器之间进行文件传输的简单协议,主要基于UDP协议来实现。

(12) NFS 是由Sun开发并发展起来的文件系统,用于在不同机器,不同操作系统之间通过网络互相分享各自的文件。

习 题 3

1.填空题

(1)目前,在嵌入式系统开发中,使用的主要编程语言是 C 和 汇编 。

(2)从程序员的角度看, 函数库 实际上就是一些头文件(.h)和库文件(.so或.a)的集合。

(3)Linux下大多数函数默认将头文件放到 /usr/include 目录下,而库文件放到 /usr/lib 目录下。

(4) 静态库 也叫做档案(archive),可以认为是一些目标代码的集合,静态库的文件名按惯例以“.a”作为文件后缀名。

(5) 共享库 是在程序启动时被加载到执行程序中的,并且可以被多个执行程序共享使用。

(6)GCC(GNU Compiler Collection)是 一组编译工具 的总称,主要的任务是预处理和编译,并且提供了与编译器紧密相关的运行库(libgcc_s.so、libstdc++.so等)的支持。

..

.

(7)Makefile文件规则包含两个部分: 依赖关系 和 生成目标的方法 。 (8) 编程库 是指始终可以被多个Linux软件项目重复使用的代码集。

(9)在汇编语言中,用 助记符 代替操作码,用 地址符号 代替地址码。

(10)PC机上,对于x86系列的处理器,有 AT&T 和 Inter 两种语法格式。

(11)目前常用的ARM编译环境有2种: ARM ASM 、GNU ARM ASM。 。

(12) 伪操作 是ARM汇编语言源程序里的一些特殊助记符,其作用主要是为完成汇编程序做各种准备工作,在源程序汇编期间由 汇编程序 处理。

(13) 宏指令 是由用户按照宏定义格式编写的一段程序,其中语句可以是指令、伪操作、伪指令,甚至是已定义的宏指令。

(14)用户可以通过 AREA 伪操作来定义一个段。

(15)汇编源程序的缺省入口是 —start 标号,用户也可以在链接脚本文件中用 ENTRY 标志指明其它入口点。

(16)为了使C语言程序和汇编程序之间能够互相调用,必须为子程序间的调用制定规则,在ARM处理器中,这个规则被称为 ATPCS规则 。

(17)一般地,当参数个数不超过4个时,使用 R0-R3 这4个寄存器来传递参数。 (18)在ARM处理器平台上的底层驱动开发,通常会有两种方式:一种是脱离操作系统的裸机驱动设计方法,这与以前在8位机和16位机上的常用开发方式类同。另一种就是 基于____操作系统的底层驱动设计方法 。

(19) —asm 用来声明一个内联汇编表达式,所以任何一个内联汇编表达式都是以它开头的,是必不可少的。

(20)在ARM汇编语言程序中,子程序的调用一般是通过 BL 指令实现。

(21)ELF格式文件有3类:可重定位的目标文件、 可执行文件 、共享库。 (22)可从两个视角了解ELF文件格式:程序链接的视角、 程序执行的视角 。

(23)每一个链接过程都由 链接脚本 控制。

二、简答题(共54分)

(13)简述ARM指令集和Thumb指令集各自的特点。 ? ARM指令集和Thumb指令集具有以下共同点: ⒈较多的寄存器,可以用于多种用途。

⒉对存储器的访问只能通过Load/Store指令。 项目 ARM指令 Thumb指令 指令工作标CPSR的T位=0 CPSR的T位=1 志 操作数寻址大多数指令为3大多数指令为2地址 方式 地址 ..