寻找郑州网站建设,企业网页制作与网站设计,13315全国征信系统,互联网推广和互联网营销BSP概念总结BSP定义BSP的特点BSP的主要工作BSP在嵌入式系统和Windowsx系统中的不同BSP和PC机主板上的BIOS区别BSP与 HAL关系嵌入式计算机系统主要由 硬件层#xff0c;中间层#xff0c;系统软件层和应用软件层四层组成。硬件层#xff1a;包含CPU#xff0c;存储器(SDRAM中间层系统软件层和应用软件层四层组成。硬件层包含CPU存储器(SDRAMROMFlash等),通用设备接口和I/O接口(A/D、D/A、I/O)其中操作系统和应用程序都可以固话在ROM中。中间层硬件层与软件层之间称为中间层可以称为硬件抽象层(Hardware Abstract Layer , HAL)或板级支持包BSP(Board Support Package)系统软件层系统软件层由操作系统(RTOSLinuxVxWindows)文件系统网络系统及通用组件模块组成。应用软件层应用软件层是由操作系统开发的应用软件程序组成用来实现某种功能或者业务。
BSP定义
硬件层与软件层之间为中间层也称为硬件抽象层(Hardware Abstract Layer HAL)或板级支持包(Board Support Package BSP) 它将系统上层与底层硬件分类开来使系统的底层驱动程序与硬件无关上次软件开发人员无需关心底层硬件的具体情况根据BSP层体用的接口即可进行开发该层一般包含相关底层硬件的初始化数据的输入输出操作和硬件的配置功能。
应该说是属于操作系统的一部分主要目的是为了支持操作系统使之能够更好的运行于硬件主板。
BSP是相对于操作系统而言的不同的操作系统对应于不同定义形式的BSP。 如下图所示 BSP定义。
BSP的特点
硬件相关性 因为嵌入式实时系统的硬件环境具有应用相关性而作为上层软件与硬件平台之间的接口BSP需要为操作系统提供操作和控制具体硬件的方法。操作系统相关性不同的操作系统具有各自的软件层次结构因此不同的操作系统具有特定的硬件接口形式实际上BSP是一个介于操作系统和底层硬件之间的软件层次包括了系统中大部分与硬件联系紧密的软件模块。
BSP的主要工作
设计一个完整的BSP需要完成两部分工作嵌入式系统的硬件初始化以及设计硬件相关的设备驱动程序。
1. 嵌入式系统硬件初始化 从硬件到权健的次序可以将硬件初始化分为3个部分分别为片级初始化板级初始化和系统级初始化。 片级初始化主要工作是完成嵌入式微处理的初始化即 RAMPowerPC等CPU初始化工作包括设置 微处理的核心寄存器和控制寄存器微处理器核心工作模式和微处理的局部总线模式等。片级初始化把微处理器从上电时的默认状态逐步设置成系统所要求的工作状态这是一个纯一年的初始化过程。 板级初始化 主要工作是完成嵌入式微处理器以外的其他硬件设备的初始化即外围电路的初始化另外还需设置某些软件的数据结构和参数为随后的系统级初始化和应用程序的运行建立硬件好软件环境这是一个同时包含软硬件两部分在内的初始化过程。 系统级初始化主要工作是进行操作系统的初始化BSP将对嵌入式微处理的控制权转交给嵌入式操作系统由操作系统完成余下的初始化操作包含加载和初始化与硬件无关的设备驱动程序建立系统内存区加载并初始化其他系统软件模块如网络系统文件系统等。最后操作系统创建应用程序环境并见控制权交给应用程序的入口。 2. 设计硬件相关的设备驱动程序 BSP的另一个主要功能是硬件相关的设备驱动硬件相关的设备驱动程序的初始化通常是一个从 高到低的过程尽管BSP中包含硬件相关的设备驱动程序但是这些设备驱动程序通常不直接由于 BSP使用而是在系统初始化过程中由BSP将他们与操作系统中通用的设备驱动程序关联起来并在随后的应用中由通用的设备驱动程序调用实现对硬件设备的操作与硬件相关的驱动程序 是BSP设计与开发中另一个非常重要的环节
BSP在嵌入式系统和Windowsx系统中的不同
在日常生活使用的PC机上(WIndows或Linux)也是有 BSP的只是PC机均采用的 CPU架构为统一的 x86体系架构因此操作系统的 BSP相对于 x86架构是单一确定的不需要做任何修改就可以很统支持操作系统在 x86上正常运行所以在PC机上谈论 x86这个概念就显得没什么意思了。 但是在嵌入式系统则完全不同目前市场上存在多种架构的嵌入式 CPU(ARMMIPSRISC-V等)同时外围设备也会根据需求有不同的选择和定义一个嵌入式操作系统针对不同的CPU就会有不同的 BSP即使用一种CPU由于外设的差异其BSP也会部分不一样所以根据硬件设计编写和修改BSP保证系统正常的运行工作是非常重要的。
BSP和PC机主板上的BIOS区别
BSP和PC机主板上的BIOS区别很大BIOS主要是负责在电脑开启时检测初始化系统设备(设置栈指针中断分配内存初始化等)装入操作系统并调度操作系统向硬件发出的指令它的 Firmware代码是在芯片生成过程中固话的一般来说用户是无法修改的其实就是为下载运行操作系统做的准备把操作系统由硬盘加载到内存中并传递一些硬件接口设置给系统。 在操作系统运行正常后BIOS的作用基本上也就完成了这就是为什么更改BIOS一定要关机重启。PC机BIOS的作用更像嵌入式系统中的 Bootloader最底层的引导软件初始化主板的基本设置为接收外部程序做硬件上的准备与Bootloader 不同的是 BIOS在装载 OS系统的同时还传递一些参数设置(中断端口定义等)而 Bootloader 只是简单的装载系统。 BSP和操作系统绑在一起运行在主板上尽管BSP的开始部分和 BIOS所做的工作类似可是大部分和BIOS不同作用也完全不同此外BSP还包含和系统有关的基本驱动(串口网口等)此外程序员还可以编程修改 BSP 在BSP中任意添加一些和系统无关的驱动或者程序慎重可以把上次开发的软件放到 BSP中而 BIOS程序用户是不能修改的。
BSP与 HAL关系
硬件的变动将会对 BSP造成大规模的改动这无疑对 BSP的维护是一种巨大的负担。 引入HAL(硬件抽象层)的概念由HAL库 对BSP库进一步的封装形成统一的标准而下次再改动硬件电路部分时只需要改动 BSP库的具体功能函数而不需要对上层进行任何的修改。