logo资料库

嵌入式课后习题答案.doc

第1页 / 共9页
第2页 / 共9页
第3页 / 共9页
第4页 / 共9页
第5页 / 共9页
第6页 / 共9页
第7页 / 共9页
第8页 / 共9页
资料共9页,剩余部分请下载后查看
参考答案
参考答案 第一章 一、填空题。 计算机软硬件技术、通信技术和微电子技术 应用、计算机技术… 硬件层、中间层、系统软件层以及应用软件层 ARM、MIPS、Power PC Linux、Vxworks、WinCE、Palm 体系结构设计、软硬件及机械系统设计、系统测试 二、选择题 A D B D A 三、叙述题 1、生活中最常见的嵌入式系统恐怕要数智能手机了,包括 Symbian、Windows Mobile、 Android 等手机嵌入式系统。还有,如路由器也是一个典型的嵌入式系统。 2、嵌入式系统是指:以应用为中心、以计算机技术为基础、软硬件可裁剪、适应应用 系统对功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。他具有如下特点: 1、嵌入式系统是面向产品、面向用户、面向应用的。2、嵌入式系统是一个技术密集、 集成度高、需要不断创新的集成系统。3、嵌入式系统必须根据应用场合对软硬件进行 必要的裁剪已实现需要的功能。 3、目前,嵌入式系统的开发有模拟开发调试、嵌入式在线仿真和远程调试等几种方法。 4、嵌入式系统技术有着非常广泛的应用前景,其领域包括:工业控制领域、信息家电 领域、机器人领域、POS 网络及电子商务领域、家庭智能管理系统、交通管理领域、环 境工程与自然领域等。 第二章 一、填空题。 1、多任务、友好的用户界面、设备独立性、文件传输、远程访问、可靠的安全性、良 好的可移植性、X Window 系统、内存保护模式。 2、内核(Kernel)、命令解释层(Shell 或其他操作环境)、文件结构(File Structure) 和实用工具。 3、Gnome、KDE 4、mkdir linux、pwd、使 linux.tar.gz 文件的拥有者权限、文件组权限和其他用户拥有相 应的权限 5、进程调度,内存管理,虚拟文件系统,网络接口,进程间通信
ASP.NET 简明教程 • 2 • 二、选择题 B B B C D 三、叙述题 1、Windows 操作系统是在个人计算机上发展起来的,在许多方面受到个人计算机 硬件条件的限制,这些操作系统必须不断地升级才能跟上个人计算机硬件的进步;而 Linux 操作系统却是以另外一种形式发展起来的,Linux 是 UNIX 操作系统用于个人计 算机上的一个版本,UNIX 操作系统已经在大型机和小型机上使用了几十年,直到现 在仍然是工作站操作系统的首选平台。 Linux 给个人计算机带来了能够与 UNIX 系统相比的速度、效率和灵活性,使个人计算 机所具有的潜力得到了充分发挥。Linux 与 Windows 工作方式存在一些根本的区别,这 些区别只有在用户对两者都很熟悉之后才能体会到,但它们却是 Linux 思想的核心。 2、目前主流的图形界面环境有 KDE 和 GNOME 两种图形环境。 3、首先使用 fdisk -l 查看一下磁盘分区情况: 然后使用命令:mount –t vfat /dev/sdb1 /mnt/USB 4、使用类似的命令: ifconfig eth0:192.168.1.15 netmask 255.255.255.0 其中 192.168.1.15 为 ip,255.255.255.0 为子网掩码。 5、Linux 内核主要由五个子系统组成:进程调度,内存管理,虚拟文件系统,网络接口, 进程间通信。其中,进程调度(SCHED)控制进程对 CPU 的访问;内存管理(MM) 允许多个进程安全的共享主内存区域;虚拟文件系统(VirtualFileSystem,VFS)隐藏了 各种硬件的具体细节,为所有的设备提供了统一的接口,VFS 提供了多达数十种不同的 文件系统;进程间通讯(IPC) 支持进程间各种通信机制。 第三章 一、填空题。 1、3、1.1、ARM 指令集、16 为 Thumb 指令集、32 2、数据缓存器(Data Cache)、指令缓存(Instruction Cache)、指令存储管理单元(Instruction MMU)、数据存储管理单元(Data MMU)、写缓冲(Write Buffer)和回写存储单元(Write Back PA TAG RAM) 3、37、31、6、32 4、立即寻址、寄存器寻址、寄存器间接寻址、基址变址寻址 5、跳转指令、数据处理指令、程序状态寄存器(PSR)处理指令、加载/存储(Load/Store) 指令、协处理器指令 二、选择题 A C D D A
第 1 章 ASP.NET 概述 • 3 • 三、叙述题 1、ARM 微处理器的运行模式有 7 种,分别为: 用户模式(User,usr):正常程序执行时,ARM 处理器所处的状态。 快速中断模式(FIQ,fiq):用于快速数据传输和通道处理。 外部中断模式(IRQ,irq):用于通常的中断处理。 特权模式(Supervisor,sve):供操作系统使用的一种保护模式。 数据访问中止模式(Abort,abt):当数据或指令预取终止时进入该模式,用于虚 拟存储及存储保护。 未定义指令终止模式(Undefined,und):用于支持硬件协处理器软件仿真。 系统模式(System,sys):用于运行特权级的操作系统任务。 2、ARM 储存器的组织最要有 2 大类型,分别为小端格式和大端格式,也称为小端次序 (Little endian)和大端次序(Big endian)的字节序(byte order)。两种储存类的区别在于一 个 32 位的数据存放到储存器中的时候,到底是高位字节放在高地址还是低地址的区别。 3、ARM 微处理器选型时应注意: 1、ARM 微处理器内核的选择 2、系统的工作频率 3、芯片内存储器的容量 4、片内外围电路的选择 第四章 一、填空题。 1、程序段(Section)、代码段(Code Section)、数据段(Data Section) 2、:、@ 3、符号定义伪指令(Symbol Definition)、数据定义伪指令(Data Definition)、汇编控 制伪指令(Assembly Control)、宏指令 4、vi、gedit、gcc、gdb、make 5、命令模式(command mode)、插入模式(insert mode)、底行模式(last line mode) 6、 预 处 理(也 称 预编 译 ,Preprocessing) 、 编 译(Compilation)、 汇 编(Assembly) 和 连 接 (Linking)。 二、选择题 C B C C A 三、叙述题 1、汇编语言与 C 的混合编程通常有以下几种方式:在 C 代码中嵌入汇编指令;在汇编
ASP.NET 简明教程 • 4 • 程序和 C 的程序之间进行变量的互访;汇编程序、C 程序间的相互调用。 2、参看教材 4.2.6。 3、make 就是实现这样的功能:它读入一个文件,叫 makefile,这个文件不仅决定了源 文件之间的依赖关系,而且还决定了源文件什么时候该编译什么时候不应该编译。 第五章 一、填空题。 1、S3C2440、400M 2、DNW 设置、USB 驱动 3、Windows 系统下安装虚拟机 Vmware、Windows+Linux 双系统安装、基于 Windows 操作系统下的 Cygwin 4、命令行方式、图形界面操作方式 5、SJF2440 二、选择题 C D D B A 三、叙述题 1、建立基于 Linux 嵌入式开发环境一般有三种方案可以选择:一是在 Windows 系统下 安装虚拟机 Vmware。二是 Windows 系统和 Linux 系统同时安装。三是基于 Windows 操作系统下的 Cygwin。 2、参看教材 5.3。 3、参看教材 5.4。 第六章 一、填空题。 1、为了编译、链接、处理和调试跨平台体系结构的程序代码、编译、链接、处理、调 试。 2、Binutils、Gcc、Glibc。 3、编译 binutils、编译辅助 gcc 编译器、编译 glibc 库、重新编译完整的 gcc。 4、建立脚本文件、建立配置文件、执行脚本文件。 5、定义生成编译工具链的名称、定义编译选项等。 二、选择题 B D B A B 三、叙述题
第 1 章 ASP.NET 概述 • 5 • 1、通常构建交叉工具链有三种方法: 方法一、分步编译和安装交叉编译工具链所需要的库和源代码,最终生成交叉编译工具 链。方法二、通过 Crosstool 脚本工具来实现一次编译生成交叉编译工具链,该方法相 对于方法一要简单许多,并且出错的机会也非常少,建议大多数情况下使用该方法构建 交叉编译工具链;方法三、直接通过网上下载已经制作好的交叉编译工具链。 2、分布构建交叉编译工具链制作一般分成六步,主要步骤为: 准备工作:下载好所需要的软件包、准备好内核头文件、组织好目录; 编译 binutils:这个软件包的编译相对简单,一般容易实现; 编译辅助 gcc 编译器:对 gcc 进行简单配置后,编译 gcc,使其不依赖 glibc,只对 c 语 言支持,为后面的 glibc 的编译做准备; 编译 glibc 库:在这一步,首先将解压的内核头文件进行配置。在上一步的编译过程中, 已经生成了 arm-linux-gcc 这个工具,利用这个工具去编译 glibc 库; 重新编译完整的 gcc:完整 gcc 的编译需要 glibc 库的支持,在第一步的时候 glibc 还没 有被编译,所以只能简单配置,生成辅助的 gcc,而在这一步,glibc 库已经编译了,可 以使用了,所以,就可以对 gcc 进行完整的编译了; 编译 gdb 调试器:调试器与前面的那些软件包是相互独立的,所以放在最后编译。 3、使用 Crosstool 构建交叉编译工具链制作过程和上一节中分布构建过程原理相似,由 于 Crosstool 是以 shell 的形式编译的,所以只需要以下几步:建立脚本文件、建立配置 文件、执行脚本文件即可。其主要步骤为: 准备工作:下载好所需要的软件包、准备好内核头文件、组织好目录; 建立脚本文件:修改针对 arm9 架构的脚本文件; 建立配置文件:主要用于定义配置文件、定义生成编译工具链的名称以及定义编译选项 等; 执行脚本文件:执行建立好的脚本文件来编译交叉编译工具; 添加环境变量:将生成的编译工具链路径添加到上一节中介绍到的环境变量 PATH 上 去。 第七章 一、填空题。 1、系统加电后运行的第一段软件代码。 2、启动加载模式(Bootloading)、下载模式(Downloading) 3、网络启动、磁盘启动、Flash 启动 4、初始化 LED、关闭 CPU 内部指令/数据 cache 二、选择题 C B A D A
ASP.NET 简明教程 • 6 • 三、叙述题 1、BootLoader,亦称引导加载程序,是系统加电后运行的第一段软件代码。它是整个系 统执行的第一步,所以它的地位在整个嵌入式软件系统中是非常重要的。 2 、 Vivi 作 为 一 种 Bootloader , 其 运 行 过 程 分 成 两 个 阶 段 , 第 一 阶 段 的 代 码 在 Vivi/arch/s3c2440/head.s 中定义,大小不超过 10 KB,它包括从系统上电后在 0x00000000 地址开始执行的部分。这部分代码运行在 Flash 中,它包括对 S3C2440 的一些寄存器、 时钟等的初始化,然后跳转到第二阶段执行; 第二阶段的代码在 Vivi\init\main.c 中,主要进行一些开发板初始化、内存映射和内存管 理单元初始化等工作,最后会跳转到 boot_or_Vivi()函数中,接收命令并进行处理。需要 注意的是在 Flash 中执行完内存映射后,会将 Vivi 代码拷贝到 SDRAM 中执行。 3、U-Boot 则支持大多 CPU,可以烧写 EXT2、JFFS2 文件系统映象,支持串口下载、 网络下载,并提供了大量的命令。相对于 Vivi,它的使用更复杂,但是可以用来更方便 地调试程序; Vivi 是 Mizi 公司针对 SAMSUNG 的 ARM 架构 CPU 专门设计的,基本上可以直接使用, 命令简单方便。不过其初始版本只支持串口下载,速度较慢。在网上出现了各种改进版 本:支持网络功能、USB 功能、烧写 YAFFS 文件系统映象等。 第八章 一、填空题。 1、Makefile、配置文件、配置工具。 2、配置命令解释器、配置用户界面。 3、注释、编译目标定义、适配段。 4、make config、make menuconfig、make xconfig、make config 5、zImage 二、选择题 C A D D B 三、叙述题 1、Linux 内核各个部分与内核源码的各个目录都是对应起来的,比如有关驱动的内容, 内核中就都组织到“drive”这个目录中去,有关网络的代码都集中组织到“net”中。当 然,这里有的目录是包含多个部分的内容。具体各个目录的内容组成如下: arch:arch 目录包括了所有和体系结构相关的核心代码。include:include 目录包括编译 核心所需要的大部分头文件,例如与平台无关的头文件在 include/linux 子目录下; init: init 目录包含核心的初始化代码(不是系统的引导代码),有 main.c 和 Version.c 两个 文件;mm:mm 目录包含了所有的内存管理代码。与具体硬件体系结构相关的内存管 理代码位于 arch/*/mm 目录下;drivers:drivers 目录中是系统中所有的设备驱动程序。 它 又 进 一 步 划 分 成 几 类 设 备 驱 动 , 每 一 种 有 对 应 的 子 目 录 , 如 声 卡 的 驱 动 对 应 于
第 1 章 ASP.NET 概述 • 7 • drivers/sound;ipc:ipc 目录包含了核心进程间的通信代码;modules:modules 目录存 放了已建好的、可动态加载的模块;fs:fs 目录存放 Linux 支持的文件系统代码。不同 的文件系统有不同的子目录对应,如 ext3 文件系统对应的就是 ext3 子目录;Kernel: Kernel 内核管理的核心代码放在这里。同时与处理器结构相关代码都放在 arch/*/kernel 目录下;net:net 目录里是核心的网络部分代码,其每个子目录对应于网络的一个方面; lib:lib 目录包含了核心的库代码,不过与处理器结构相关的库代码被放在 arch/*/lib/ 目录下;scripts:scripts 目录包含用于配置核心的脚本文件;documentation:documentation 目录下是一些文档,是对每个目录作用的具体说明。 2、将自己开发的内核代码加入到 Linux 内核中,需要有三个步骤。首先确定把自己开 发代码放入到内核的位置;其次,把自己开发的功能增加到 Linux 内核的配置选项中, 使用户能够选择此功能;最后,构建子目录 Makefile,根据用户的选择,将相应的代码 编译到最终生成的 Linux 内核中去。主要步骤有:组织目录结构,配置文件,修改 makefile 文件等。 3、Linux 内核的移植过程比较繁琐,具体步骤如下:解压内核文件、修改机器码、修改 内核源码根目录下的 Makefile 文件、修改“arch/arm/plat-s3c24xx/common-smdk.c”文件, 修改 Nand Flash 的分区信息和 Nand Flash 的硬件信息、修改时钟频率、增加 Yaffs2 文 件系统的支持、配置内核、编译内核等。 4、内核裁剪,主要作用就是为了适应嵌入式系统的小体积、小存储的特点,在内核的 大小方面进行裁剪。内核编译之前,通过配置内核的选项参数进行设置,将不需要的功 能删掉,保留系统需要的部分,这样就在一定程序上缩小了生成的镜像文件大小。 第九章 一、填空题。 1、上层用户的应用程序对文件系统的系统调用、虚拟文件系统 VFS、挂载到 VFS 中的 各种实际文件系统。 2、Blkmem 驱动层、RAMdisk 驱动层、MTD 驱动层 3、JFFS2、Yaffs、Romfs 4、Ramdisk、Ramfs/Tmpfs 5、System V init、Busybox init 二、选择题 A B B D B 三、叙述题 1、在 Linxu 根文件系统中,一般包括这样一些子目录:/etc/、/dev/、/usr/、/usr/bin/、/bin/ 等。根文件系统的建立需要遵循一定的规则,包括目录的位置及名字等。用来建立根文 件系统的规则被称作文件系统分类标准(Filesystem Hierarchy Standard,FHS),该规则 定义了在构建 Linux 根文件系统时文件和目录的名字和存放位置的标准。
ASP.NET 简明教程 • 8 • 2、Busybox 能使用户迅速方便的建立一套相对完整、功能丰富的文件系统,其中包括大 量常用的应用程序。Busybox 将许多常用的 UNIX 命令和工具结合到了一个单独的可执 行程序中。它集成压缩了 Linux 的许多工具和命令。虽然与相应的 GNU 工具比较起来, Busybox 所提供的功能和参数略少,但在比较小的系统或者嵌入式系统中,这些已经足 够用了。 3、参考教材 9.3.2。 4、参考教材 9.3.3。 第十章 一、填空题。 1、块设备文件、字符设备文件、网络设备文件、杂项设备文件。 2、主设备号、次设备号 3、file_operations、file、inode 4、mknod 5、ioctl 二、选择题 B D A A D 三、叙述题 1、驱动程序主要提供以下功能:应用程序通过驱动程序安全有效地访问硬件;驱动程 序作为嵌入式系统的中间层软件,它隐藏了底层的细节,从而提高了软件的可移植性和 可复用性;驱动程序文件节点可以方便地提供访问权限控制。从下层驱动开发人员的角 度来看,Linux 驱动程序就是通过直接操控硬件的软件,来完成下面的功能:对设备初 始化和释放;直接读写硬件寄存器来控制硬件;把数据从内核传送到硬件和从硬件读取 数据;操作设备缓冲区设备;操作输入、输出设备,如键盘、打印机等;读取应用程序 传送给设备文件的数据和回送应用程序请求的数据;检测和处理设备出现的错误。 2、块设备文件:通常指一些需要以块(如 512 字节)的方式写入的设备,如 IDE 硬盘、 SCSI 硬盘、光驱等; 字符型设备文件:通常指可以直接读写,没有缓冲区的设备,如 并口、虚拟控制台等; 3、Linux 驱动程序可以通过两种方式集成到内核中去: 一是将其直接编译到内核; 二是将其编写成模块,在需要添加某种硬件的时候,内核可以将其调入。在配置 Linux 内核时,可以选择“Enable loadable module support”选项,来支持可加载内核模块。 4、Linux 设备驱动程序与外界的接口可以分为如下三个部分: 驱动程序与操作系统内核的接口:这是通过数据结构 file_operations 来完成的。 驱动程序与系统引导的接口:这部分利用驱动程序对设备进行初始化。 驱动程序与设备的接口:这部分描述了驱动程序如何与设备进行交互,这与具体设备密 切相关。
分享到:
收藏