嵌入式培训 百分网手机站

嵌入式助理工程师认证考试题库(6)

时间:2018-05-02 11:47:41 嵌入式培训 我要投稿

嵌入式助理工程师认证考试题库

  5、什么是BootLoader?主要有几种工作模式及主要功能是什么?

  答:

  简单说来,Bootloader就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,包括CPU、SDRRAM、Flash、串口等初始化,时钟的设置、存储器的映射。(2分)

  分为启动加载模式和下载模式。

  (1) 启动加载模式

  启动加载(Boot laoding)模式又称为“自主”(Autonomous)模式,是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。(2分)

  (2) 下载模式

  在下载模式下,目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主机下载文件。(2分)

  6、 简述Bootloader有何作用?

  答案要点:(1)首先,bootloader是在特定硬件平台运行的程序,严重依赖于硬件平台,需要移植;(2)是系统上电之后,第一个运行的程序,系统在上电或复位时通常都从地址 0x0 处开始执行,而在这个地址处安排的通常就是系统的 Boot Loader 程序;(3)bootloader程序的设计目标是启动嵌入式操作系统,嵌入式操作系统的启动需要一定的条件,这些条件由bootloader来满足;(4)Bootloader一般具有对存储器和网络接口操作的功能;如擦除、读写Flash,通过USB、串口下载文件等

  7、 程序、进程、线程有何区别?

  答案要点:程序是编译后形成的可执行代码,是静止的。进程是程序的一次执行,是活动的。线程是进程的可执行单元,同一进程的不同线程共享进程的资源和地址空间。

  8、 简述嵌入式系统的几个重要特征?

  答案要点:系统内核小 ;专用性强 ;系统精简 ;高实时性的系统软件;多任务的操作系统 ;需要专用的开发工具和环境。 答出上述4个并适当阐述的即可给满分。

  9、 什么是程序的局部性原理?

  答案要点:程序的局部性原理是指程序在执行过程中的一个较短时期内,它所执行的指令和访问的存储空间分别局限在一定的区域内。具体表现在时间局部性和空间局部性。时间局部性是指一条指令的一次执行和下一次执行、一个数据的一次访问和下一次访问,都集中在一个较短的时间内。空间局部性是指程序执行了某条指令,则它相邻的几条指令也可能马上执行。

  10、Linux作为嵌入式操作系统的优势?

  答:

  Linux作为嵌入式操作系统的优势主要有以下几点:

  1. 可应用于多种硬件平台。Linux已经被移植到多种硬件平台,这对于经费,时间受限制的研究与开发项目是很有吸引力的。原型可以在标准平台上开发后移植到具体的硬件上,加快了软件与硬件的开发过程。Linux采用一个统一的框架对硬件进行管理,从一个硬件平台到另一个硬件平台的改动与上层应用无关。(1分)

  2. Linux的高度模块化使添加部件非常容易。本身内置网络支持,而目前嵌入式系统对网络支持要求越来越高。(1分)

  3. Linux是一个和Unix相似、以内核为基础的、具有完全的内存访问控制,支持大量硬件(包括X86,Alpha、ARM和Motorola等现有的大 部分芯片)等特性的一种通用操作系统。(1分)

  4. Linux可以随意地配置,不需要任何的许可证或商家的合作关系。其程序源码全部公开,任何人可以修改并在GUN通用公共许可证(GNU General Public License)下发行。这样,开发人员可以对操作系统进行定制,适应其特殊需要。(1分)

  5. Linux带有Unix用户熟悉的完善的开发工具,几乎所有的Unix系统的应用软件都已移植到了Linux上。其强大的语言编译器GCC,C++等也可以很容易得到,不但成熟完善,而且使用方便。(分)

  11、简述网络文件系统NFS,并说明其作用。

  答:

  NFS即网络文件系统,是主机通过网络进行文件共享的协议(2分)。通常用于UNIX或类UNIX系统中。NFS服务器的共享目录可以被NFS客户端作为文件系统挂载到本地中(1分)。它的作用是通常用于局域网中用于文件共享(1分)。它的特点是不想http和ftp要把文件下载到本地才能够被访问,NFS不需要下载到本地即可访问(1分)。

  12、简述Boot Loader 的两种操作模式 (Operation Mode)?

  答:

  启动加载(Boot loading)模式:这种模式也称为"自主"(Autonomous)模式。也即 Boot Loader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。这种模式是 Boot Loader 的正常工作模式,因此在嵌入式产品发布的时侯,Boot Loader 显然必须工作在这种模式下。 (2.5分)

  下载(Downloading)模式:在这种模式下,目标机上的 Boot Loader 将通过串口连接或网络连接等通信手段从主机(Host)下载文件,比如:下载内核映像和根文件系统映像等。从主机下载的文件通常首先被 Boot Loader 保存到目标机的 RAM 中,然后再被 Boot Loader 写到目标机上的FLASH 类固态存储设备中。Boot Loader 的这种模式通常在第一次安装内核与根文件系统时被使用;此外,以后的系统更新也会使用 Boot Loader 的这种工作模式。工作于这种模式下的 Boot Loader 通常都会向它的终端用户提供一个简单的命令行接口。(2.5分)

  13、简述嵌入式系统设计过程。

  答;每条1分

  (1)需求分析 (4)设计硬件构件和软件构件

  (2)规格说明 (5)系统集成

  (3)体系结构设计 (6)系统测试

  14、ARM启动代码是系统加电后运行的第一段软件代码,由于这类代码直接面对处理器内核和硬件控制器进行编程,一般都是用汇编语言。一般通用的内容主要包括?

  答:每条1分

  中断向量表

  初始化存储器系统

  初始化堆栈

  初始化有特殊要求的断口,设备

  初始化用户程序执行环境

  改变处理器模式

  呼叫主应用程序

  15、什么是符号链接,什么是硬链接?符号链接与硬链接的区别是什么?

  答:

  链接分硬链接和符号链接。

  符号链接可以建立对于文件和目录的链接。符号链接可以跨文件系统,即可以跨磁盘分区。符号链接的文件类型位是l,链接文件具有新的i节点。

  硬链接不可以跨文件系统。它只能建立对文件的链接,硬链接的文件类型位是-,且硬链接文件的i节点同被链接文件的i节点相同。

  16、进程的查看和调度分别使用什么命令?

  答:

  进程查看的命令是ps和top。

  进程调度的命令有at,crontab,batch,kill。

  17、简述嵌入式系统中非占先式与占先式调度法的区别有哪些。

  答:

  非占先式调度法也称作合作型多任务(cooperative multitasking),各个任务彼此合作共享一个CPU。中断服务可以使一个高优先级的任务由挂起状态变为就绪状态。(1分)但中断服务以后控制权还是回到原来被中断了的那个任务,直到该任务主动放弃CPU的使用权时,那个高优先级的任务才能获得CPU的使用权。(2分)

  当系统响应时间很重要时,要使用占先式(preemptive)内核。(1分)最高优先级的任务一旦就绪,总能得到CPU的控制权。当一个运行着的任务使一个比它优先级高的任务进入了就绪态,当前任务的CPU使用权就被剥夺了,或者说被挂起了,那个高优先级的任务立刻得到了CPU的控制权。(2分)

  18、什么是BootLoader,其主要功能是什么?

  答:Boot Loader相当于普通pc机的BIOS,是在系统复位后执行的第一段代码。因此,整个系统的加载启动任务就完全由Boot Loader来完成。它首先完成系统硬件的初始化,包括时钟的设置、存储器的映射等。并设置堆栈指针,然后跳转到操作系统内核入口,如系统在加电或复位时通常从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的Boot Loader程序。这样,将系统的软硬件环境带到一个合适的状态,以便为最终调用操作系统内核准备好正确的环境。在此之后,系统的运行在操作系统的控制下了。通常,Boot Loader 是严重地依赖于硬件而实现的,特别是在嵌入式世界。因此,在嵌入式世界里建立一个通用的 Boot Loader 几乎是不可能的。尽管如此,我们仍然可以对 Boot Loader 归纳出一些通用的概念来,以指导用户特定的 Boot Loader 设计与实现。

  不同的嵌入式系统其Boot Loader一般是不同的。从操作系统的角度来看, Boot Loader的总目标就是正确地调用内核来执行。

  另外,由于大多数Boot Loader都分为阶段1和阶段2两部分。依赖于CPU的体系结构的代码,比如设备初始化代码等,通常都放在阶段1中,而且通常用汇编语言来实现,以达到短小精悍的目的。而阶段2通常用C语言来实现,这样可以实现一些复杂的功能,而且代码会具有更好的可读性和移植性。

  19、什么是硬实时操作系统、软实时操作系统以及二者的区别?

  答:

  在实时系统中,如果系统在指定的时间内未能实现某个确定的任务,会导致系统的全面失败,这样的系统被称为强实时系统或硬实时系统。(1分)强实时系统响应时间一般在毫秒或微秒级。(1分)

  在弱实时系统中,虽然响应时间同样重要,但是超时却不会发生致命的错误。(1分)

  其系统响应时间在毫秒至秒的数量级上,(1分)其实时性的要求比强实时系统要差一些。(2分)

  20、多线程有几种实现方法,线程间同步有几种实现方法,都是什么?

  答:

  两种实现方法,一种是继承Thread,另外一种是实现接口Runnable。

  同步的实现方法有两种,分别是synchronized, wait与notify。用synchronized可以对一段代码、一个对象及一个方法进行加锁。用wait与notify可以使对象处于等待及唤醒方式导致同步,因为每个对象都直接或间接的继承了Object类。

  21、介绍一下嵌入式系统的设计步骤有哪些?各部分主要工作是什么?

  答:

  (1)需求分析阶段,罗列出用户的需求;(1分)

  (2)体系结构设计阶段,描述系统的功能如何实现;(1分)

  (3)详细设计阶段,进行硬件系统与软件系统的分类划分,以决定哪些功能用硬件实现,哪些用软件实现;(1分)

  (4)系统集成,把系统的软件、硬件和执行装置集成在一起,(1分)进行调试,发现并改进在设计过程中的错误;(1分)

  (5)系统测试,对设计好的系统进行测试,看其是否满足给定的要求。(1分)

  22、某/etc/fstab文件中的某行如下:

  /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2

  请解释其含义。

  答:

  (1)第一列:将被加载的文件系统名;

  (2)第二列:该文件系统的安装点;

  (3)第三列:文件系统的类型;

  (4)第四列:设置参数;

  (5)第五列:供备份程序确定上次备份距现在的天数;

  (6)第六列:在系统引导时检测文件系统的顺序。

  23、ARM支持哪两种数据存储格式,简单描述各自特点。

  答:

  分为大端格式和小端格式。(2分)

  大端格式:被存放字数据的高字节存储在存储系统的低地址中,而被存放的字数据的低字节则存放在存储系统的高地址中。(2分)

  小端格式:与大端存储格式相反,在小端存储格式中,存储系统的低地址中存放的是被放字数据中的低字节内容,存储系统的高地址存放的是被存字数据中的高字节内容。(2分)

  25、什么是BootLoader?主要有几种工作模式及主要功能是什么?

  答:

  简单说来,Bootloader就是操作系统内核运行的一段小程序,完成进行初始化系统硬件设置的任务,包括CPU、SDRRAM、Flash、串口等初始化,时钟的设置、存储器的映射。(2分)

  分为启动加载模式和下载模式。

  (3) 启动加载模式

  启动加载(Boot laoding)模式又称为“自主”(Autonomous)模式,是指 Bootloader 从目标机上的某个固态存储设备上将操作系统加载到 RAM 中运行,整个过程并没有用户的介入。(2分)

  (4) 下载模式

  在下载模式下,目标机上的 Bootloader 将先通过串口连接或网络连接等通信手段从宿主机下载文件。(2分)