交谊舞嵌入式系统期末复习汇总
1.简述bootloader的概念?
答:简单地说,BootLoader就是在操作系统内核或用户应用程序运行之前运行的一段小程序。通过这段小程序,我们可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核或用户应用程序准备好正确的环境。对于一个嵌入式系统来说,可能有的包括操作系统,有的小型系统也可以只包括应用程序,但是在这之前都需要BootLoader为它准备一个正确的环境。
2.在Linux系统中,驱动程序可以采用哪种方式加载?
答:在Linux系统中,驱动程序可以采用两种方式进行加载。
1) 可以和内核一起编译,在内核启动时自动加载该驱动;
2) 驱动程序模块动态加载方式,使用insmod和rmmod加载和卸载驱动程序模块。
3.与通用计算机相比,嵌入式系统有哪些特点?
外阴湿痒答:与通用计算机相比,嵌入式系统有以下特点:
(1)嵌入式系统通常是面向特定应用的;
(2)嵌入式系统的硬件和软件必须高效率地设计,做到量体裁衣、去除冗余;
(3)有实时操作系统的支持;
(4)嵌入式系统具有较长的生命周期;
(5)嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存储在磁盘等载体中;
(6)具有专门的开发工具支持。
4.试比较单一内核和微内核的异同?
答:单一内核是指操作系统中所有的系统相关功能都被封装在内核中,它们与外部程序处在不同的内存地址空间中,并通过各种方式防止外部程序直接访问内核中的数据结构,程序只有通过一套称作系统调用(System Call)的界面访问内核结构。
而在微内核结构中,操作系统的内核只需要提供最基本、最核心的一部分操作(如创建和删除任务、内存管理、中断管理等)即可,而其他管理程序(如文件系统、网络协议栈等)则尽可能放在内核以外,这些外部程序可以独立运行,并对外部用户程序提供操作系统服务,服务之间使用进程间通信机制(高音炮IPC)进行交互。微内核使操作系统内部结构变得简单清晰,在内核以外的外部程序分别独立运行,其间并不互相关联,从而能方便地实现维护和拆装。
5.简述Linux操作系统的特点。
答:Linux操作系统具有以下特点:
(1)开放性;
(2)多用户;
(3)多任务;
(4)稳定性强;
(5)设备独立性;
(6)提供了丰富的网络功能;
(7)可靠的系统安全;
(8)良好的可移植性;
(9)应用软件多。
6.ARM7TDMI是目前使用最广泛的32位嵌入式RISC处理器,请说明其中TDMI的基本含义?
答:TDMI的基本含义为:T表示支持16位压缩指令集Thumb,D表示支持片上Debug,M表示内嵌硬件乘法器Multiplier,I表示嵌入式ICE、支持片上断点和调试点。
7.田福军原型简述BootLoader中stage1通常包含的主要步骤?
答:BootLoader的stage1通常包含以下步骤:
(1)硬件设备初始化;
(2)为加载BootLoader中stage2准备RAM空间;
(3)复制BootLoader中stage2到RAM空间;
(4)设置好堆栈;
(5)跳转到stage2的C入口点。
8.简述ARM和THUMB状态的区别及如何进行状态转换。
答:从编程的角度看,ARM微处理器的工作状态一般有两种,并可在两种状态之间切换:
(1)ARM状态,此时处理器执行32位的字对齐的ARM指令;
(2)Thumb状态,此时处理器执行16位的、半字对齐的Thumb指令。
ARM处理器在两种工作状态之间可以切换:
(1)当操作数寄存器的状态位(位[0])为l时,执行BX指令进入Thumb状态。
(2)当操作数寄存器的状态位(位[0])为0时,执行BX指令进入ARM状态。
9.简述嵌入式系统的开发特点?
答:嵌入式系统开发的目标环境针对特定的应用领域,而且出于对系统成本的考虑,嵌入式软件功能比较专一,只完成预期要完成的功能。与传统的软件开发相比,嵌入式软件有其自身的特点,具体如下:
(1)采用宿主机/目标机方式;
(2)为了保证稳定性和实时性,选用RTOS开发平台;
(3)生成的代码需要固态化存储;
(4)软件代码具有高质量、高可靠性。
10.简述BSP的概念及作用?
答: 嵌入式微处理器系统一般由硬件层、中间层、软件层和功能层组成,其中硬件层和软
件层之间的为中间层,也称为BSP(板级支持包),它将系统软件与底层硬件部分隔离,使得系统的底层设备驱动程序与硬件无关,一般应具有相关硬件的初始化、数据的输入输出操作和硬件设备的配置等功能。BSP是主板硬件环境和操作系统的中间接口,是软件平台中具有硬件依赖性的那一部分,主要目的是为了支持操作系统,使之能够更好地运行于硬件主板上。纯粹的BSP所包含的内容一般来说是与系统有关的驱动程序,如网络驱动程序和系统中的网络协议有关等,离开这些驱动程序系统就不能正常工作。
11.简述交叉编译的概念,并说明为什么要进行交叉编译?
答:通常,程序是在一台计算机上编译,然后再分布到将要使用的其他计算机上。当主机系统(运行编译器的系统)和目标系统(产生的程序将在其上运行的系统)不兼容时,该过程就叫做交叉编译。
除了兼容性这个明显的好处之外,交叉编译还由于以下两个原因而非常重要:
1) 当目标系统对其可用的编译工具没有本地设置时;
2) 当主机系统比目标系统要快得多,或者具有多得多的可用资源时。
12.在Linux操作系统下字符设备和块设备的主要区别是什么?
答:在对字符设备发出读/写请求时,实际的硬件I/O一般就紧接着发生了,块设备则不然,它利用一块系统内存作缓冲区,当用户进程对设备请求能满足用户的要求,就返回请求的数据,如果不能,就调用请求函数来进行实际的I/O操作。块设备是主要针对磁盘等慢速设备设计的,以免耗费过多的CPU时间来等待。
13.在嵌入式Linux开发过程中,bootloader的主要作用是什么?
答:(1)初始化硬件,尤其是内存控制器;
(2)提供Linux内核的启动参数;
(3)启动Linux内核。
14.简述U-boot的主要特点?
答:U-boot的主要特点如下:
(1)开放源码;
(2)支持多种嵌入式操作系统内核;
(3)支持多个处理器系列;
(4)较高的可靠性和稳定性;
(5)高度灵活的功能设置;
(6)丰富的设备驱动源码;
(7)较为丰富的开发调试文档以及强大的网络技术支持。
15.简述进程和程序之间的关系?
进程是一个动态的概念,而程序则是一个静态的概念。程序是指令的有序集合,没有任何执行的含义。而进程则强调执行过程,它动态地被创建,并被调度执行后消亡。举例来说,程序好比是曲谱,而进程就像是按照曲谱演奏音乐。
进程具有并发特征,而程序没有。进程的并发特征有两个方面:独立性和异步性。即并发各进程的执行是独立的,执行速度是异步的。程序不是执行过程,所以不具备并发性。
进程是操作系统中基本的并行单位、资源分配单位和调度单位。通常,进程可分为用户进程和系统进程两类,前者控制用户作业的运行,后者完成系统内部分工的管理工作。
从静态的角度看,进程由程序、数据和进程控制块(JCB)组成;从动态的角度看,
进程是计算机状态的一个有序集合。
进程是一个具有一定独立功能的程序在某个数据集合上的一次运行,其中可能要涉及多个程序;而一个程序的运行过程中可能有若干进程依次或并行活动。
16.简述NOR Flash和NAND Flash两者之间的异同?
答:Flash Memory(闪存)是嵌入式系统中重要的组成部分,用来存储程序和数据,掉电后数据不会丢失。但在使用Flash Memory时,必须根据其自身特性,对存储系统进行特殊设计,以保证系统的性能达到最优。根据结构的不同,可以将其分为NOR Flash和NAND Flash两种,其主要区别如下:
(1)NOR Flash鱼肉乡里把整个存储区分成若干个扇区(ctor),而NAND Flash把整个存储区分成若干个块(block),可以对以块或扇区为单位的内存单元进行擦写和再编程。
(2)NOR Flash型内存要求在擦除之前先要将目标块内所有的位都写为0,而NAND Flash在擦除时则没有这样的限制。
空将汉月出宫门(3)NOR Flash的读速度比NAND Flash稍快一些,NAND Flash的写入速度比NOR Flash快很多。
(4)NOR Flash带有SRAM接口,有足够的地址引脚来寻址,可以很容易地存取其内部的每一个字节。NAND Flash地址、数据和命令共用8位总线/16位总线,每次读/写都要使用复杂的I/O接口串行地存取数据。
(5)NOR Flash容量通常在1~8MB之间,而NAND Flash用在8MB以上的产品当中。NOR Flash主要应用在代码存储介质中,NAND Flash适用于资料存储。
17.简述进程和程序之间的异同?
答:进程是在描述多道系统中并发活动过程引入的一个概念。进程和程序是两个既有联系又有区别的概念,两者不能混为一谈。从用户角度来看,进程是应用程序的一个执行过程。从操作系统核心角度来看,进程代表的是操作系统分配的内存、CPU时间片等资源的
基本单位,是为正在运行的程序提供的运行环境。两者的区别主要表现在以下几个方面:
(1)进程是动态的,而程序是静态的。
(2NCIE)进程有一定的生命期,而程序是指令的集合,本身无“运行”的含义。
(3)进程和程序并不是一一对应的,1个程序可以对应多个进程,但1个进程只能对应1个程序。
(4)进程还具有并发性和独立性,这也与程序的封闭性不同。
18.简述嵌入式系统的开发特点?
答:与传统的软件开发相比,嵌入式软件开发有其自身的特点,主要体现在以下几个方面。
(1)通常是面向特定应用系统的;
(2)嵌入式系统需提供强大的硬件开发工具和软件包支持;
(3)需要交叉开发环境(采用宿主机/目标机方式);
(4)选用RTOS开发平台;
(5)生成代码需要固态化存储;
(6)嵌入式系统的软件和硬件必须高效地设计。
19.简述ARM处理器支持的运行模式?
答:ARM920T处理器支持7种运行模式:(1)用户模式usr;(2)快速中断模式fiq;(3)外部中断模式irq;(4)管理模式svc恐惊天上人;(5)数据访问终止模式abt;(6)系统模式sys;(7)未定义指令中止模式und。