1、在此处键入参考答案第一章 一、填空题。1、嵌入式系统主要融合了计算机软硬件技术、通信技术和微电子技术,它是将计算机直接嵌入到应用系统中,利用计算机的高速处理能力以实现某些特定的功能。2、目前国内对嵌入式系统普遍认同的定义是:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。3、嵌入式系统一般由嵌入式计算机和执行部件组成,其中嵌入式计算机主要由四个部分组成,它们分别是:硬件层、中间层、系统软件层以及应用软件层。4、嵌入式处理器目前主要有 ARM、MIPS、Power PC、68K 等,其中 arm 处理器有三大特点:体积小、低功
2、耗、的成本和高性能,16/32 位双指令集,全球合作伙伴众多。5、常见的嵌入式操作系统有:Linux、Vxworks、WinCE、Palm、uc/OS-II 和eCOS。6、嵌入式系统开发的一般流程主要包括系统需求分析、体系结构设计、软硬件及机械系统设计、系统集成、系统测试,最后得到最终产品。二、选择题1、嵌入式系统中硬件层主要包含了嵌入式系统重要的硬件设备: 、存储器(SDRAM、ROM 等)、设备 I/O 接口等。(A)A、嵌入式处理器 B、嵌入式控制器 C、单片机 D、集成芯片2、20 世纪 90 年代以后,随着系统应用对实时性要求的提高,系统软件规模不断上升,实时核逐渐发展为 ,并作为
3、一种软件平台逐步成为目前国际嵌入式系统的主流。(D)A、分时多任务操作系统 B、多任务操作系统C、实时操作系统 D、实时多任务操作系统3、由于其高可靠性,在美国的火星表面登陆的火星探测器上也使用的嵌入式操作系统是 。(B)A、Palm B、VxWorksC、Linux D、WinCE4、嵌入式系统设计过程中一般需要考虑的因素不包括:(D)A、性能 B、功耗C、价格 D、大小5、在嵌入式系统中比较流行的主流程序有:(A)A、Angel B、BlobC、Red Boot D、U-Boot三、叙述题1、举例说明身边常用的嵌入式系统。生活中最常见的嵌入式系统恐怕要数智能手机了,包括 Symbian、W
4、indows Mobile、Android 等手机嵌入式系统。还有,如路由器也是一个典型的嵌入式系统。2、如何理解嵌入式系统,谈谈自己的理解。嵌入式系统是指:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。他具有如下特点: 1、嵌入式系统是面向产品、面向用户、面向应用的。2、嵌入式系统是一个技术密集、集成度高、需要不断创新的集成系统。3、嵌入式系统必须根据应用场合对软硬件进行必要的裁剪已实现需要的功能。3、简述嵌入式系统的开发方法有哪几种。目前,嵌入式系统的开发有模拟开发调试、嵌入式在线仿真和远程调试等几种方法。4、结合当前
5、嵌入式系统的发展,想象一下嵌入式系统的应用前景。嵌入式系统技术有着非常广泛的应用前景,其领域包括:工业控制领域、信息家电领域、机器人领域、POS 网络及电子商务领域、家庭智能管理系统、交通管理领域、环境工程与自然领域等。第二章一、填空题。1、Linux 具有 UNIX 的所有特性并且具有自己独特的魅力,主要表现在:开放性、多用户、多任务、友好的用户界面、设备独立性、丰富的网络功能、文件传输、远程访问、可靠的安全性、良好的可移植性、X Window 系统、内存保护模式。2、Linux 一般包括四个主要部分:内核(Kernel)、命令解释层(Shell 或其他操作环境)、文件结构(File Str
6、ucture)和实用工具。 2 3、目前几乎所有的 Linux 发行版本中都包含了 Gnome 和 KDE 两种图形操作环境。4、在当前目录下建立目录,应使用命令:mkdir linux;查看当前路径应使用命令:pwd;chmod 765 linux.tar.gz 的作用是:使 linux.tar.gz 文件的拥有者权限、文件组权限和其他用户拥有相应的权限。5、Linux 内核主要由:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信五个子系统组成。二、选择题1、下列(D)系列处理器是 Ubuntu 不支持的。A、ARM B、AMDC、X86 D、51 单片机2、启动 shell 环境时,
7、屏幕上显示“armwww home$”,其中的 arm 的意义是(B)。A、arm 架构 B、用户名C、文件夹 D、路径3、使用 ls 命令时,如果想对文件名中的不可显示字符用八进制逃逸字符显示,则应该选用的参数是(A)。A、-b B、-aC、-l D、-R4、解压文件 linux.tar.gz 可使用命令(C)。A、tar jxvf linux.tar.gz B、tar jxvf linux.tar.gzC、tar zxvf linux.tar.gz D、tar czvf linux.tar.gz5、下列不属于 Linux 用的文件系统是(D)。A、ext2 B、ext3C、nfs D、nt
8、fs三、叙述题1、简述 linux 与 windows 的主要异同。Windows 操作系统是在个人计算机上发展起来的,在许多方面受到个人计算机硬件条件的限制,这些操作系统必须不断地升级才能跟上个人计算机硬件的进步;而 Linux 操作系统却是以另外一种形式发展起来的,Linux是 UNIX 操作系统用于个人计算机上的一个版本,UNIX 操作系统已经在大型机和小型机上使用了几十年,直到现在仍然是工作站操作系统的首选平台。Linux 给个人计算机带来了能够与 UNIX 系统相比的速度、效率和灵活性,使个人计算机所具有的潜力得到了充分发挥。Linux 与 Windows 工作方式存在一些根本的区别
9、,这些区别只有在用户对两者都很熟悉之后才能体会到,但它们却是 Linux 思想的核心。2、目前主流的图形界面环境有哪些?它们各有什么有缺点?目前主流的图形界面环境有 KDE 和 GNOME 两种图形环境。KDE 与 GNOME 项目拥有相同的目标,就是为 Linux 开发一套高价值的图形操作环境,两者都采用 GPL 公约发行,不同之处在于 KDE 基于双重授权的Qt,而 GNOME 采用遵循 GPL 的 GTK 库开发后者拥有更广泛的支持。不同的基础决定两者不同的形态:KDE 包含大量的应用软件、项目规模庞大,因为没有太多的第三方开发者为 KDE 开发重量级软件;由于自带软件众多,KDE 比G
10、NOME 丰富多彩,加上使用习惯接近 Windows,会更容易上手一些。但 KDE 的毛病在于运行速度 相对较慢,且部分程序容易崩溃(当然整个 KDE 崩溃的情况极少出现)。GNOME 项目专注于桌面环境本身,由于软件较少、运行速度快,且稳定性相当出色, 完全遵循 GPL 公约的属性让它赢得重量级厂商的支持。从当前的情况来看,GNOME 已经成为 Novell、RedHat 企业发行版的默认桌面,更偏向于商 务领域;而丰富多彩的 KDE 有朝向家用和娱乐方向发展的趋势,它比 GNOME 显然更有趣味性一些。3、在 linux 中如何使用 mount 命令挂载 U 盘?首先使用 fdisk -l
11、 查看一下磁盘分区情况:然后使用命令:mount t vfat /dev/sdb1 /mnt/USB4、如何设置 linux 操作系统的网络参数?使用类似的命令:ifconfig eth0:192.168.1.15 netmask 255.255.255.0其中 192.168.1.15 为 ip,255.255.255.0 为子网掩码。5、简要分析 linux 内核的各个组成部分。Linux 内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口,进程间通信。其中,进程调度(SCHED)控制进程对 CPU 的访问;内存管理(MM)允许多个进程安全的共享主内存区域;虚拟文件系统(
12、VirtualFileSystem,VFS)隐藏了各种硬件的具体细节,为所有的设备提供了统一的接口,VFS 提供了多达数十种不同的文件系统;进程间通讯(IPC)支持进程间各种通信机制。 第三章一、填空题。1、ARM9 系列微处理器在高性能和低功耗方面提供最佳的性能:它具有 3 级整数流水线,指令执行效率更高;提供 1.1MIPS/MHz 的哈佛总线结构;支持 32位 ARM 指令集和 16 位 Thumb 指令集;支持 32 位的高速 AMBA 总线接口。 4 2、ARM 芯片的内核一般包括以下几个单元:ARM9TDMI32RISC 处理器、数据缓存器(Data Cache)、指令缓存(Ins
13、truction Cache)、指令存储管理单元(Instruction MMU)、数据存储管理单元(Data MMU)、写缓冲(Write Buffer)和回写存储单元(Write Back PA TAG RAM)。3、ARM 处理器共有 37 个寄存器,其中 31 为通用寄存器,6 个状态寄存器,这些寄存器都是 32 位。4、ARM 系统中寻址方式主要有立即寻址、寄存器寻址、寄存器间接寻址、基址变址寻址、多寄存器寻址、相对寻址和堆栈寻址。5、ARM 微处理器的指令集可以分为以下六大类:跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储(Load/Store)指令、协处理器
14、指令和异常中断产生指令。二、选择题1指令 ADD R0,R0,#1 第三个操作数得寻址方式是(A)A立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址2指令 LER R3,R4第二个操作数的寻址方式是(C)A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址3.LDR R0,R1,#4 第二个操作数的寻址方式是(D)A. 立即寻址 B. 寄存器寻址 C. 寄存器间接寻址 D. 基址变址寻址4.假设 R0 和 R1 寄存器中的值分别为 8 和 6,执行指令:LDR R0,R1,#8!,则寄存器 R0 和 R1 中的值分别为(B)A. 8,6 B. 14,6
15、 C. 14,14 D. 16,145.栈是一种数据结构,本质上是内存中一段连续的地址,对其最常见的操作为“压栈”(PUSH)和“出栈”(POP),以临时保存数据。其出入栈规则是(B)。A. 先进先出 B. 先进后出 C. 只进不出 D. 只出不进三、叙述题1、ARM 处理器的运行模式有哪几种,各有什么特点?ARM 微处理器的运行模式有 7 种,分别为:用户模式(User,usr):正常程序执行时,ARM 处理器所处的状态。快速中断模式(FIQ,fiq):用于快速数据传输和通道处理。外部中断模式(IRQ,irq):用于通常的中断处理。特权模式(Supervisor,sve):供操作系统使用的一
16、种保护模式。数据访问中止模式(Abort,abt):当数据或指令预取终止时进入该模式,用于虚拟存储及存储保护。未定义指令终止模式(Undefined,und):用于支持硬件协处理器软件仿真。系统模式(System,sys):用于运行特权级的操作系统任务。2、ARM 存储器的组织主要有哪些类型,各有什么特点?ARM 储存器的组织最要有 2 大类型,分别为小端格式和大端格式,也称为小端次序(Little endian)和大端次序(Big endian)的字节序(byte order)。两种储存类的区别在于一个 32 位的数据存放到储存器中的时候,到底是高位字节放在高地址还是低地址的区别。3、ARM
17、 微处理器选型时应注意:1、ARM 微处理器内核的选择2、系统的工作频率3、芯片内存储器的容量4、片内外围电路的选择第四章 0一、填空题。1、在 ARM/Thumb 汇编语言程序中,程序是以程序段的形式呈现的。程序段是具有特有名称的相对独立的指令或数据序号。程序段有两大类型代码段、数据段。2、基于 linux 下 GCC 汇编语言,代码表号必须在一行的顶端,后面要加上 :,注释的内容可以在前面加上。3、在 ARM 的汇编程序中,伪指令种类繁多,可以细分为以下几种伪指令:符号定义伪指令(Symbol Definition)、数据定义伪指令(Data Definition)、汇编控制伪指令(Ass
18、embly Control)、宏指令4、linux 下的嵌入式程序开发,主要需要的代码编辑器,如 vi 和 gedit,另外还需要编译器 gcc、调试器 gdb 以及项目管理器 make。5、Vi 编辑器基本上有三种基本状态,分别是:命令模式(command mode)、插入模式(insert mode)和底行模式(last line mode)。6、使用 gcc 编译文件生成可执行文件要经历四个相互关联的步骤:预处理(也称预编译,Preprocessing)、编译(Compilation)、汇编(Assembly)和连接(Linking)。二、选择题1、1.假如使用伪指令定义一个局部的数据量
19、,变量名为 temp,然后给其赋值为 8,汇编代码为(A)A. LCLA temp;temp SETA 0x08; B. LCLA temp;temp SETL 0x08; C. GBLA temp;temp SETA 0x08; D. GBLA temp;temp SETL 0x08; 2、在 vi 处于命令行模式时,如果需要对文本进行修改,欲在光标所在位置的下一个位置开始输入文字,则(B)A、按下字母“i”进入插入模式 B、按下字母“a”进入插入模式C、按下字母“o”进入插入模式 D、按下字母“n”进入插入模式 6 3、当前 vi 处于插入模式,先放弃对文本的修改,即不保存退出 vi,则(
20、C)。A、使用“:q!”命令 B、使用“:wq!”命令C、先按下“ESC”后,再使用“:q!”命令D、先按“ESC”后,再使用“:wq!”命令4、经过汇编之后,生成的目标文件的后缀名为(C)。A、.c B、.sC、.o D、.exe5、对代码文件 code.c 进行调试的命令为(A)。A、$gcc g code.c o code B、$gcc code.c o codeC、$gcc g code.c code D、$gcc g code三、叙述题1、汇编语言和 C 的混合编程通常有以下几种方式,各有什么特点?汇编语言与 C 的混合编程通常有以下几种方式:在 C 代码中嵌入汇编指令;在汇编程序和
21、 C 的程序之间进行变量的互访;汇编程序、C 程序间的相互调用。2、如何使用调试器 gdb 进行代码调试,具体的调试方法有哪些?查看文件、设置和查看断点、运行代码、查看变量值、单步运行、恢复程序运行。3、项目管理器的作用主要是什么?make 就是实现这样的功能:它读入一个文件,叫 makefile,这个文件不仅决定了源文件之间的依赖关系,而且还决定了源文件什么时候该编译什么时候不应该编译。第五章一、填空题。1、SMDK2440 平台的开发板采用的处理器是 S3C2440,其主频一般为 400M。2、windows 软件环境的设置一般包括以下几部分:超级终端的设置、DNW 设置、GIVEIO 驱
22、动的设置和 USB 驱动3、在 windows 系统上建立基于 linux 嵌入式开发环境一般有三种方案可以选择分别是 Windows 系统下安装虚拟机 Vmware、Windows+Linux 双系统安装、基于 Windows 操作系统下的 Cygwin4、UBUNTU 的网络设置可以采用命令行方式、也可以采用图形界面操作方式来配置。5、开发板硬件平台是基于三星 S3C2440 的 SMDK2440 平台的目标板,使用的刻录软件为 SJF2440。二、选择题1、为了通过 PC 的串口和开发板进行交互,需要使用(C)。A、USB 设置 B、同步C、超级终端 D、网络连接2、在嵌入式 linux
23、 的开发中,能实现上传下载文件、刻录文件、运行映像等功能工具是(D)。A、DNS B、FTPC、Telnet D、DNW3、由普通用户账户转为管理员账户登录,使用的命令为(D)。A、$sudo root B、$sudo administratorC、$su administrator D、$su root4、安装 FTP 服务器时,在终端输入的命令为(B)。A、$apt-get install vsftpd B、$sudo apt-get install vsftpdC、$apt-get install ftp D、$sudo apt-get install ftp5、安装 Telnet 服务
24、时,在终端输入的命令为(A)。A、$sudo apt-get install xinetd telnetd B、$apt-get install xinetd telnetdC、$apt-get install telnetd D、$sudo apt-get install telnetd三、叙述题1、建立基于 Linux 嵌入式开发环境一般有三种方案可以选择:一是在Windows 系统下安装虚拟机 Vmware。二是 Windows 系统和 Linux 系统同时安装。三是基于 Windows 操作系统下的 Cygwin。2、参看教材 5.3。3、参看教材 5.4。第六章一、填空题。()1、交
25、叉开发工具链就是为了编译、链接、处理和调试跨平台体系结构的程序代码。每次执行工具链软件,通过带有不同的参数,可以实现编译、链接、处理、调试等不同的功能。2、linux 经常使用的工具链软件有 Binutils、Gcc、Glibc 和 Gdb。3、分布构建交叉编译工具链的制作过程需要以下几步:编译 binutils、编译辅助 gcc 编译器、编译 glibc 库、重新编译完整的 gcc。4、使用 crosstool 构建交叉编译工具链的制作过程需要以下几步:准备工作、建立脚本文件、建立配置文件、执行脚本文件和编译 gdb 调试器。5、使用 crosstool 构建交叉编译工具链的制作过程中需要的
26、配置文件,其主要作用是定义配置文件、定义生成编译工具链的名称、定义编译选项等。 8 二、选择题1. (B) 是二进制程序处理工具,包括连接器,汇编器等目标程序处理的工具。A. Gcc B. Binutils C. Glibc D. Gdb2.构建交叉编译器的第一个步骤是(D)。A. 下载工具 B. 编译所需文件 C.实现平台连接 D. 确定目标平台3、分析以下代码#export PRJROOT=/home/arm/armlinux#export TARGET=arm-linux#export PREFIX=$PRJROOT/$TARGET其中,变量 PREFIX 代表的路径为(B)。A、/ho
27、me/arm/armlinux B、/home/arm/armlinux/arm-linuxC、/home/arm/arm-linux D、/home/arm/arm-linux/armlinux4. Binutils 是 gnu 工具之一,他包括连接器、汇编器和其他用于目标文件和档案的工具,特使二进制代码的处理维护工具。其中包括(A)命令,他是把一些目标和归档文件结合在一起,重定位数据,并连接符号引用。A. ld B. gprof C. arc D. as5.分布构建交叉编译链的过程有两次变异 gcc,其中第二次进行编译的作用是(获得 glibc 库的支持)A.获得 newlib 库的支持
28、B. 获得 glibe 库的支持C. 获得 uClibe 库的支持 D. 获得 c 库的支持三、叙述题1、构建交叉工具链有那几种方法?通常构建交叉工具链有三种方法:方法一、分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具链。方法二、通过 Crosstool 脚本工具来实现一次编译生成交叉编译工具链,该方法相对于方法一要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建交叉编译工具链;方法三、直接通过网上下载已经制作好的交叉编译工具链。第七章一、填空题。1、Bootloader,亦称引导加载程序,是系统加电后运行的第一段软件代码。2、一般 Bootloader
29、包含两种不同的操作模式:启动加载模式(Bootloading)和下载模式(Downloading)。3、Bootloader 的主要功能是引导操作系统启动,它的启动方式有网络启动、磁盘启动和 Flash 启动三种。4、Vivi 运行的第一阶段主要完成以下工作:屏蔽所有中断、设置 CPU 的速度和时钟频率、RAM 初始化、初始化 LED 和关闭 CPU 内部指令数据 cache。二、选择题1、在 Bootloader 的启动方式中,Flash 启动方式通常有两种,一种是可以直接从 Flash 启动,另一种时可以将压缩的内存映像文件从 Flash 中复制、解压到 C ,再从中启动。A、ROM B、
30、SDRAM C、RAM D、Flash2、在各种 Bootloader 中, B 是以 PPCBoot 和 ARMBoot 为基础的通用加载程序,并且在 ARM、PowerPC 以及 MIPS 等多种平台上运行。A、Vivi B、U-boot C、RedBoot D、s-hboot3、在编译 Vivi 之前将 Vivi 里所有的“*.o”和“*.o.flag”文件删除,以确保文件编译时没有错误或者警告发生,使用的命令格式为(D)。A、make distclean B、make clean C、make menuconfig D、make config4、编译 Vivi 时,如果编译成功,在/v
31、ivi 里面会生成三个 vivi 文件,其中不包括文件(D)。A、vivi B、vivi.map C、vivi-elf D、vivi.exe5、把二进制文件载入 Flash 或 RAM 使用的命令是(A)。A、load B、part C、boot D、bon三、叙述题1、简述 Bootloader 的主要功能。BootLoader,亦称引导加载程序,是系统加电后运行的第一段软件代码。它是整个系统执行的第一步,所以它的地位在整个嵌入式软件系统中是非常重要的。2、Vivi 作为一种 Bootloader,其运行过程分成两个阶段,第一阶段的代码在 Vivi/arch/s3c2440/head.s 中
32、定义,大小不超过 10 KB,它包括从系统上电后在 0x00000000 地址开始执行的部分。这部分代码运行在 Flash 中,它包括对 S3C2440 的一些寄存器、时钟等的初始化,然后跳转到第二阶段执行;第二阶段的代码在 Viviinitmain.c 中,主要进行一些开发板初始化、内存映射和内存管理单元初始化等工作,最后会跳转到 boot_or_Vivi()函数中,接收命令并进行处理。需要注意的是在 Flash 中执行完内存映射后,会将Vivi 代码拷贝到 SDRAM 中执行。3、U-Boot 则支持大多 CPU,可以烧写 EXT2、JFFS2 文件系统映象,支持串口下载、网络下载,并提供了大量的命令。相对于 Vivi,它的使用更复杂,但