免费智能真题库 > 历年试卷 > 系统架构设计师 > 2015年下半年 系统架构设计师 上午试卷 综合知识
  第9题      
  知识点:   板级支持包   操作系统   抽象   嵌入式操作系统   硬件
  关键词:   操作系统   嵌入式   硬件        章/节:   嵌入式系统       

 
在嵌入式操作系统中,板级支持包BSP作为对硬件抽象,实现了( )。
 
 
  A.  硬件无关性,操作系统无关性
 
  B.  硬件有关性,操作系统有关性
 
  C.  硬件无关性,操作系统有关性
 
  D.  硬件有关性,操作系统无关性
 
 
 

 
  第11题    2009年下半年  
   58%
在嵌入式系统设计时,下面几种存储结构中对程序员是透明的是(11)。
  第11题    2012年下半年  
   51%
以下关于嵌入式系统硬件抽象层的叙述,错误的是(11) 。
  第10题    2012年下半年  
   44%
以下关于嵌入式系统开发的叙述,正确的是(10)。
   知识点讲解    
   · 板级支持包    · 操作系统    · 抽象    · 嵌入式操作系统    · 硬件
 
       板级支持包
        设备驱动层也称为板级支持包(Board Support Package,BSP),它包含了嵌入式系统中所有与硬件相关的代码。BSP的基本思想是将嵌入式操作系统与具体的硬件平台隔离开来。也就是说,在BSP当中,把所有与硬件相关的代码都封装起来,并向上提供一个虚拟的硬件平台,而操作系统就运行在这个虚拟的硬件平台上,它使用一组定义好的编程接口来与BSP进行交互,并通过BSP来访问真正的硬件。BSP在嵌入式系统中的角色,类似于PC系统中的BIOS和驱动程序。
        对于一个成熟的商用操作系统而言,为了在业界得到广泛应用,就必须要能够支持种类众多的硬件平台,并实现应用程序的硬件无关性。一般来说,这种无关性是由操作系统来实现的。但是对于嵌入式系统来说,它没有像PC那样具有广泛使用的各种工业标准和统一的硬件结构。变化众多的硬件环境就决定了无法完全由操作系统来实现上层软件与底层硬件之间的无关性。因此各种商用的嵌入式操作系统都采用了分层设计的思想,将系统中与硬件直接相关的一层软件独立出来,称之为板级支持包。
        对于不同的嵌入式操作系统,BSP的具体结构和组成也各不相同。一般来说,BSP主要包括两个方面的内容:引导加载程序BootLoader和设备驱动程序。
               引导加载程序
               引导加载程序BootLoader是嵌入式系统加电后第一时间运行的软件代码。在桌面PC中的引导加载程序是由位于只读存储器ROM中的BIOS和位于硬盘的主引导记录(Master Boot Record,MBR)中的BootLoader引导程序(如LILO和GRUB)两部分代码组成的。BIOS在完成硬件检测和资源分配后,将硬盘MBR中的引导程序读到系统的内存当中,然后由MBR负责启动操作系统。但是在嵌入式系统当中,通常没有像BIOS那样的固件程序,因此整个系统的加载启动任务就完全由BootLoader来完成。例如,在一个基于ARM7TDMI内核的嵌入式系统中,系统在上电或复位时一般都从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。
               简单地说,BootLoader就是在操作系统内核运行之前运行的一小段程序。通过这段程序,可以初始化硬件设备、建立内存空间的映射图,从而将系统的软硬件环境配置为一定的状态,以便为最终调用操作系统内核做好准备。
               在嵌入式系统中,BootLoader的实现高度依赖于具体的硬件平台,对于不同的CPU体系结构和板级设备配置,需要不同的BootLoader。因此,要想建立一个通用的BootLoader几乎是不可能的。但是,一般来说,它主要包含以下基本功能:
               (1)片级初始化。片级初始化主要完成微处理器的初始化,包括设置微处理器的核心寄存器和控制寄存器,微处理器的核心工作模式及其局部总线模式等。片级初始化把微处理器从上电时的缺省状态逐步设置成系统所要求的工作状态。
               (2)板级初始化。通过正确地设置各种寄存器的内容来完成微处理器以外的其他硬件设备的初始化。例如,初始化LCD显示设备,初始化定时器,设置中断控制寄存器等。
               (3)加载内核。将操作系统和应用程序的映像从Flash硬盘拷贝到系统的内存当中,然后跳转到系统内核的第一条指令处继续执行。
               设备驱动程序
               在一个嵌入式系统当中,设备驱动程序是必不可少的。所谓的设备驱动程序,就是一组库函数,用来对硬件进行初始化和管理,并向上层软件提供良好的访问接口。对于不同的硬件设备来说,设备驱动程序也是不一样的。但是一般来说,设备驱动程序都会具备以下的基本功能。
               (1)硬件启动:在开机上电或系统重启的时候,对硬件进行初始化。
               (2)硬件关闭:将硬件设置为关机状态。
               (3)硬件停用:暂停使用这个硬件。
               (4)硬件启用:重新启用这个硬件。
               (5)读操作:从硬件中读取数据。
               (6)写操作:往硬件中写入数据。
               除了以上这些普遍适用的功能之外,设备驱动程序还可能有很多额外的、特定的功能。在具体实现的时候,这些功能一般是用函数的形式来实现的。这些函数主要有两种组织结构,即分层结构和混合结构,如下图所示。
               
               设备驱动程序的结构
               所谓分层结构,就是把设备驱动程序当中的所有函数分为两种类型,一种是直接跟硬件交互,直接去操纵和控制硬件设备的,这些函数称为硬件接口;另一种是跟上层软件交互,作为上层软件的调用接口。分层结构的优点是:把所有与硬件有关的细节都封装在硬件接口当中,硬件升级时,只需要改动硬件接口当中的函数,而上层接口当中的函数不用做任何的修改。
               所谓混合结构,就是在设备驱动程序当中,上层接口和硬件接口的函数是混在一起、相互调用的,它们之间没有明确的层次关系。无论是分层结构还是混合结构,它们给上层软件提供的调用接口都应该是明确而稳定的,即便设备驱动程序的内部有任何的变化,也不会影响到上层软件,这样,在移植操作系统和应用程序的时候,就非常方便。
 
       操作系统
        编写嵌入式软件有两种选择:一是自己编写内核;二是使用现成的操作系统。如果嵌入式软件只需要完成一项非常小的工作,例如在电动玩具、空调中,就不需要一个功能完整的操作系统。但如果系统的规模较大、功能较复杂,那么最好还是使用一个现成的操作系统。可用于嵌入式系统软件开发的操作系统有很多,但关键是如何选择一个适合开发项目的操作系统,可以从以下几点进行考虑:
        (1)操作系统提供的开发工具。有些实时操作系统只支持该系统供应商的开发工具,因此,还必须从操作系统供应商处获得编译器、调试器等;而有的操作系统应用广泛,且有第三方工具可用,因此选择的余地比较大。
        (2)操作系统向硬件接口移植的难度。操作系统到硬件的移植是一个重要的问题,是关系到整个系统能否按期完工的一个关键因素。因此,要选择那些可移植性程度高的操作系统,以避免因移植带来的种种困难。
        (3)操作系统的内存要求,有些操作系统对内存有较大要求。
        (4)操作系统的可剪裁性、实时性能等。
 
       抽象
        抽象是一种设计技术,重点说明一个实体的本质方面,而忽略或者掩盖不很重要或非本质的方面。抽象是一种重要的工具,用来将复杂的现象简化到可以分析、实验或者可以理解的程度。软件工程中从软件定义到软件开发要经历多个阶段,在这个过程中每前进一步都可看作是对软件解法的抽象层次的一次细化。抽象的最低层就是实现该软件的源程序代码。在进行模块化设计时也可以有多个抽象层次,最高抽象层次的模块用概括的方式叙述问题的解法,较低抽象层次的模块是对较高抽象层次模块对问题解法描述的细化。
 
       嵌入式操作系统
               嵌入式操作系统的概念
               嵌入式操作系统是指在嵌入式系统中的操作系统。嵌入式操作系统运行在嵌入式智能芯片环境中,对整个智能芯片以及它所操作、控制的各种部件装置等资源进行统一协调、调度、指挥和控制。
               嵌入式操作系统的特点
               嵌入式操作系统具有占用空间小、执行效率高、方便进行个性化定制和软件要求固化存储等特点。
               (1)微型化。由于硬件平台的局限性,如主存少、字长短、运行速度有限、能源少(用微小型电池)、外部设备和控制对象千变万化,因此,不论从性能还是从成本角度考虑,都不允许它占用很多资源,系统代码量少,应在保证应用功能的前提下,以微型化作为特点来设计嵌入式操作系统的结构与功能。
               (2)可定制。嵌入式操作系统的运行平台多种多样,应用更是千变万化,表现出专业化的特点。从减少成本和缩短研发周期方面考虑,要求它能运行在不同的微处理机平台上,能针对硬件变化进行结构与功能上的配置,以满足不同应用的需要。
               (3)实时性。嵌入式操作系统广泛应用于过程控制、数据采集、传输通信、多媒体信息及一些需要迅速响应的场合,实时响应要求严格,因此实时性是其主要特点之一。
               (4)可靠性。系统构件、模块和体系结构必须达到应有的可靠性,对关键要害应用还要提供容错和防故障措施,以进一步提高可靠性。
               (5)易移植性。为了提高系统的易移植性,通常采用硬件抽象层(Hardware Abstraction Level,HAL)和板级支撑包(Board Support Package,BSP)的底层设计技术。HAL提供了与设备无关的特性,屏蔽了硬件平台的细节和差异,向操作系统上层提供了统一接口,保证了系统的可移植性。
               嵌入式系统开发环境
               嵌入式系统开发环境通常配有源码级可配置的系统模块设计、丰富的同步原语、可选择的调度算法、可选择的主存分配策略、定时器与计数器、多方式中断处理支持、多种异常处理选择、多种通信方式支持、标准C语言库、数学运算库和开放式应用程序接口等。较著名的嵌入式操作系统有Windows CE、VxWorks、pSOS、Palm OS等。
 
       硬件
        硬件是计算机物理设备的总称,也称为硬件设备,通常是电子的、机械的、磁性的或光的元器件或装置,一般分为中央处理器、存储器和输入、输出设备。
   题号导航      2015年下半年 系统架构设计师 上午试卷 综合知识   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
6 /
7 /
8 /
9 /
10 /
11 /
12 /
13 /
14 /
15 /
 
16 /
17 /
18 /
19 /
20 /
21 /
22 /
23 /
24 /
25 /
26 /
27 /
28 /
29 /
30 /
 
31 /
32 /
33 /
34 /
35 /
36 /
37 /
38 /
39 /
40 /
41 /
42 /
43 /
44 /
45 /
 
46 /
47 /
48 /
49 /
50 /
51 /
52 /
53 /
54 /
55 /
56 /
57 /
58 /
59 /
60 /
 
61 /
62 /
63 /
64 /
65 /
66 /
67 /
68 /
69 /
70 /
71 /
72 /
73 /
74 /
75 /
 
第9题    在手机中做本题