- UID
- 872238
|
BSP是Board Support Package的缩写。该术语通常用于嵌入式领域,主要指在开发嵌人式应用时系统开发商提供的各种粗动支持库。在嵌人式领域人们对BSP有各种不同的理解:
(1) 操作系统的驱动程序。嵌人式系统提供商的权威— WindRiver公司对BSP的理解偏向于是OS的驱动程序(从其BSP的文档中可以看出),因为嵌人式系统中的各种设备的确名目挤多,因此将BSP定位于OS的驱动的确有一定的道理.
(2) 驱动程序。对于认为BSP就是驱动程序的人来讲,他们通常接触的是嵌人式系统提供商提供的某种应用解决方案的应用系统(total solution)。在这种开发系统中,BSP完全有理由被认为是所有驱动程序,因为开发人员没有必要自己去开发驱动程序,而只是验证驱动程序在自己的系统中是否正确即可.
(3) HAL(HardwareA bstractL ayer)。对于开发嵌人式OS的人来讲,倾向于将BSP看成是对硬件平台的抽象层(HAW和处理器的驭动程序更恰当.
实际上各种理解都只是侧重于某个方面。由于每个嵌人式系统提供商都根据自己的操作系统而提出对BSP的不同理解,因此,在涉及到BSP的具体涵义时,人们往往有一种似是而非的感觉.实际是各种理解都有其道理,但由于出发点不同,对BSP的理解都有失全面甚至有错误的地方,这也是初学者容易混淆的原因。对于进行硬件和软件开发的人员,第三种理解比较合适,后面的分析也是建立在这个基础之上的。这里通过 BSP(BoardS upport Package)和BIOS(BasicI nputa ndO utputS ystem)的对比,来说明板级支持包的功能。BSP说得简单一点,就是一段启动代码,与计算机主板的BIOS差不多.提供的功能却有较大的差别。我们都知道,在通用8051等系列单片机开发的过程中,要有小段程序设堆栈指针、软复位和中断屏蔽等等可以把这短程序称为它的BSP,实时操作系统的BSP相对复杂一点,但通常也是设t堆栈指针,建立中断向量表,初始化寄存器(控制外围器件如DRAM和EDO RAM条,控制I/O Q的寄存器、片选信号等),配里地址空间以及系统启动方式。BIOS是微机的基本输人输出系统,其内容集成在微机主板上的一个ROM芯片上,主要保存着有关微机系统最重要的基本输入输出程序,如系统设置信息、开机上电自检程序和系统启动自举程序等。BIOS中断服务程序实质上是微机系统中软件与硬件之间的一个可编程接口,主要用于程序软件功能与微机硬件之间的连接。例如,Wind-98 对软驱、光驱和硬盘等管理及中断的设置等服务和程序。BIOS系统设置程序,微机部件配置记录是放在一块可的CMOS RAM芯片中的,主要保存着系统的基本悄况、CPU特性和软硬盘驱动器等部件的信息,可以对其各项参数进行设It. BIOS系统启动自举程序,系统完成POST自检后,ROM BIOS就首先按照系统CMOS设置中保存的启动顺序搜索软硬盘驱动器及CD-ROM。网络服务器等有效地启动驱动器,读人操作系统引导记录然后将系统控制权交给引导记录,并由引导记录来完成系统的顺序启动,实时操作系统的BSP就相当于PC的BIOS一般来说,对不同的微处理器板以及不同的RTOS时,就应该配置不同的BSP, BSP可以是已经做好了的,不需要开发人员去关心寄存器设置的细节。当然根据实际的要求用户也可以改写BSP来加人自己的特定功能o BSP可针对不同的硬件做不同的调整,相应于PC的BIOS.它完成对硬件的初始化工作,执行完后再将执行权交给RTOS。在BSP中,只需要对与硬件相关的寄存器(主要是DRAM,SD RAM和片选)及与中断相关的寄存器进行正确配Y即可.BSP程序越简单越好,能放在主程序中初始化的功能尽A不要放在其中,BSP配I程序只要能保证系统正常启动即可.大部分RTOS带有针对不同徽处理器的BSP程序,用户只要稍做修改即可移植到自己的开发应用中设备驱动程序(Drivers)指用于处理、管理硬件控制(controller)的代码。设备驭动程序是将基础建立在具体的操作系统之上,而不是某种类型的处理器(CPU)(这很重要)。实际运用中,人们可能选择不同的目标硬件(CPU),如PowerPC,A RM,X 86,并且配f不同的操作系统.即使对于同一种类型的目标硬件,不同的操作系统也要编写不同的BSP。对于驱动程序,实际上是在操作系统的层次上对不同的设备控制器所写的代码。 |
|