bsp是什么(bsp和bst有什么区别)
bsp是什么(bsp和bst有什么区别)
BSP是板级支持包,(board support package)是介于主板硬件和操作系统之间的一层,应该说是属于操作系统。的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。
嵌入式计算机系统主要由硬件层、中间层、系统软件层和应用软件层四层组成。
硬件层:包含CPU、存储器(SDRAM、ROM、Flash等)、通用设备接口和 I/O接口(A/D、D/A、I/O等)。其中操作系统和应用程序都可以固化在ROM中。
中间层:硬件层与软件层之间称为中间层,可以称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP)。
系统软件层:系统软件层由操作系统(RTOS、LINUX、VxWorks等)、文件系统、网络系统及通用组件模块组成。
应用软件层:应用软件层是由操作系统开发的应用程序组成,用来实现某种功能或者业务。
BSP定义
硬件层与软件层之间为中间层,也称为硬件抽象层(Hardware Abstract Layer,HAL)或板级支持包(Board Support Package,BSP),它将系统上层软件与底层硬件分离开来,使系统的底层驱动程序与硬件无关,上层软件开发人员无需关心底层硬件的具体情况,根据 BSP 层提供的接口即可进行开发。该层一般包含相关底层硬件的初始化、数据的输入/输出操作和硬件设备的配置功能。
应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP。
BSP特点
BSP具有以下两个特点
硬件相关性:
因为嵌入式实时系统的硬件环境具有应用相关性,而作为上层软件与硬件平台之间的接口,BSP需要为操作系统提供操作和控制具体硬件的方法。
操作系统相关性:
不同的操作系统具有各自的软件层次结构,因此,不同的操作系统具有特定的硬件接口形式。实际上,BSP是一个介于操作系统和底层硬件之间的软件层次,包括了系统中大部分与硬件联系紧密的软件模块。
BSP的主要工作
设计一个完整的BSP需要完成两部分工作:嵌入式系统的硬件初始化以及设计硬件相关的设备驱动程序。
(1)嵌入式系统硬件初始化
从硬件到软件的次序,可以将硬件初始化分为3个部分,分别为片级初始化、板级初始化和系统级初始化。
片级初始化
主要工作是完成嵌入式微处理器的初始化,即ARM、PowerPC等CPU的初始化。包括设置微处理器的核心寄存器和控制寄存器、微处理器核心工作模式和微处理器的局部总线模式等。片级初始化把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态,这是一个纯硬件的初始化过程。
板级初始化
主要工作是完成嵌入式微处理器以外的其他硬件设备的初始化,即外围电路的初始化。另外,还需设置某些软件的数据结构和参数,为随后的系统级初始化和应用程序的运行建立硬件和软件环境。这是一个同时包含软硬件两部分在内的初始化过程。
系统级初始化
主要工作是进行操作系统的初始化。BSP将对嵌入式微处理器的控制权转交给嵌入式操作系统,由操作系统完成余下的初始化操作。包含加载和初始化与硬件无关的设备驱动程序,建立系统内存区;加载并初始化其他系统软件模块,如网络系统、文件系统等。最后,操作系统创建应用程序环境,并将控制权交给应用程序的入口。
(2)设计硬件相关的设备驱动程序
BSP的另一个主要功能是硬件相关的设备驱动。硬件相关的设备驱动程序的初始化通常是一个从高到低的过程。尽管BSP中包含硬件相关的设备驱动程序,但是这些设备驱动程序通常不直接由BSP使用,而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来,并在随后的应用中由通用的设备驱动程序调用,实现对硬件设备的操作。与硬件相关的驱动程序是BSP设计与开发中另一个非常关键的环节。
免责声明:本文内容由互联网用户贡献,不作为任何投资建议。投资决策需建立在独立思考之上,本文内容仅供参考,风险自担!如有侵权请联系我们删除,本文链接:http://www.panmou.com/shuzi/3814.html。