BSP与HAL关系(转)

Posted lemaden

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BSP与HAL关系(转)相关的知识,希望对你有一定的参考价值。

板级支持包(BSP)(Board Support Package)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。

硬件抽象层是位于操作系统 内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。

 

就我跟人理解而言BSP就是硬件驱动程序,它包含了操控硬件的必要函数,单片机系统使用BSP可以直接进行应用开发,这时候应用开发的hierarchy如下图所示:

技术图片

但是由于日益增长的芯片种类和芯片复杂度,直接使用BSP进行应用开发将会受到巨大的挑战,因此为了程序的可阅读性以及可移植性提出了硬件抽象层HAL这一个概念。引入HAl之后的系统hierarchy如下图所示:

技术图片

引入HAL之后操作系统将会使用相对更为统一的HAL接口来实现对硬件的操作,而不是直接使用BSP库。当然,HAL库的实现是基于BSP库的,只是将其进一步封装,形成统一的标准。因此一个完整、强健的嵌入式系统的系统hierarchy应该为:

hardware –> board support package –> hardware abstract layer –> driver –> operating system –> application

当然嵌入式系统中操作系统并不是必须的,并且在操作系统和应用程序之间可以在有一层中间件Middleware层,用于提供更多的系统功能,这个中间件Middleware层也被称作SDK。

 

原文入口:https://blog.csdn.net/qq_38500662/article/details/80965774

以上是关于BSP与HAL关系(转)的主要内容,如果未能解决你的问题,请参考以下文章

HAL和HATEOAS的关系和区别

Android 图像格式HAL_PIXEL_FORMAT_* vs ImageFormt.*对应关系

hal库中中断服务函数和回调函数是啥意思,他们的的关系是啥呢?

Android深度探索与HAL驱动开发(卷1)-- 第七章随笔

嵌入式系统硬件抽象层(HAL & BSP)的设计思想--第二部分

安富莱V6,V5开发板用户手册,重在BSP驱动包设计方法,HAL库的框架学习,授人以渔(2019-07-21)