bsp与hal关系(转)

lemaden lemaden     2023-03-09     482

关键词:

板级支持包(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

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

嵌入式系统硬件抽象层(HAL&BSP)的设计思想--第二部分1BSP设计实例(以STM32硬件平台为例)2硬件抽象层设计总结2.1模块头文件设计要点2.2模块源文件设计要点1BSP设计实例(以STM32硬件平台为例)2硬件抽... 查看详情

HAL和HATEOAS的关系和区别

】HAL和HATEOAS的关系和区别【英文标题】:RelationshipanddifferencebetweenHALandHATEOAS【发布时间】:2014-11-0707:02:21【问题描述】:HATEOAS(超媒体作为应用程序状态的引擎)和HAL(超文本应用程序语言)似乎相关但并不完全相同。HATEOAS和... 查看详情

bsp视频教程bsp视频教程第20期:串口专题之玩转hal库,ll库和寄存器方式实现方法以及参考手册几个关键时序图学习(2022-07-16)

...续更新,DSP更新到第9期,ThreadX更新到第5期,BSP驱动更新到第20期2022-07-16-STM32F429-硬汉嵌入式论坛-PoweredbyDiscuz!本期开始录制串口专题视频教程。像bootloader专题一样,这个专 查看详情

转----操作系统与应用程序的关系

操作系统与应用程序的关系             ——原博地址:http://blog.csdn.net/maochengtao/article/details/8943284操作系统与应用程序的关系:    操作系统主要可以分为两大部分:内核... 查看详情

greenplum与hadoop什么关系?(转)

没关系.gp可以处理大量数据,hadoop可以处理海量.gp只能处理湖量,或者河量.无法处理海量. 作者:SallyLeo链接:https://www.zhihu.com/question/36935504/answer/109882162来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转... 查看详情

uboot和bsp有啥关系?如vxworks下按tornado建立的bsp模板开发后是不是就是uboot了?

应该不是吧,bsp是板级支持包,相当于系统、硬件驱动配置的一个工具,配置完成后编译成镜像,下载到板子上,开机时通过uboot引导启动起来,我是这样理解的。另外,你有tornado和bsp么,能否发给我一份,网上很难下到,我最... 查看详情

bsp

1       BSP概述BSP即BoardSupportPackage,板级支持包。它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中... 查看详情

安卓rk3399编译驱动mpu6050,实现内核层与hal层驱动(代码片段)

...过):1.什么是设备树(.dts)2.内核驱动与安卓HAL的关系:开始适配MPU6050驱动:1.先打通内核层,修改DTS,挂载MPU60502.调整kernel下的make文件配置(makemenuconfig)3.HAL层驱动测试安卓驱动开发常用知识(非新手... 查看详情

转:llvm与clang的概述及关系

转:http://www.cnblogs.com/saintlas/p/5738739.html   LLVM是构架编译器(compiler)的框架系统,以C++编写而成,用于优化以任意程序语言编写的程序的编译时间(compile-time)、链接时间(link-time)、运行时间(run-time)以及空闲时间(idle-time)... 查看详情

java线程与linux内核线程的映射关系(转)(代码片段)

Java线程与Linux内核线程的映射关系Java线程与Linux内核线程的映射关系Linux从内核2.6开始使用NPTL(NativePOSIXThreadLibrary)支持,但这时线程本质上还轻量级进程。 Java里的线程是由JVM来管理的,它如何对应到操作系统的线程是由JV... 查看详情

hal之定时器

一首先得对定时器的时钟与系统时钟的关系搞清楚,基本定时器的时钟来自APB1最大36MHZ.(定时器倍频值为1)二在STM32CubeMX中打开外设功能,时钟源选择内部;然后在配置定时器3中的参数设定中设定参数:预分频值:N-1计数周期... 查看详情

[转]计算机视觉与图像处理模式识别机器学习学科之间的关系

...一个重要分支,人工智能与机器学习密不可分。纵观一切关系,发现计算机视觉的应用服务于机器学习。各个环节缺一不可,相辅相成。计算机视觉(computervision),用计算机来模拟人的视觉机理获取和处理信息的能力。就是是... 查看详情

cubemx移植野火ili9341触摸画板笔记

...TM32HAL库开发实战指南》教程中第29个案例触摸画板的相关bsp取出,移植到刚用CubeMX创建的工程中。前期准备CubeMX配置1.配置系统时钟如图:2.配置Debug如图:3.工程设置如图:4.最后点击生成工程文件移植1.移植的文... 查看详情

android深度探索(卷一)hal与驱动开发第九章

通过学习Android深度探索(卷一)HAL与驱动开发的第九章让我知道了HAL硬件抽象层,为什么要在Android中加入HAL和AndroidHAL架构。HAL是建立在Linux驱动之上的一套程序库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用... 查看详情

FreeRTOS:osDelay 与 HAL_delay

】FreeRTOS:osDelay与HAL_delay【英文标题】:FreeRTOS:osDelayvsHAL_delay【发布时间】:2017-07-0516:53:24【问题描述】:在使用STM32CubeMx创建FreeRTOS应用项目时,您可以使用两种方法来引入延迟,即osDelay和HAL_Delay。它们之间有什么区别,应该... 查看详情

STM32 SPI 与 HAL 通信

】STM32SPI与HAL通信【英文标题】:STM32SPIcommunicationwithHAL【发布时间】:2021-08-2713:34:29【问题描述】:我刚开始对STM32进行编程,并使用CubeMX生成了一个代码,用于与陀螺仪(L3GD20)进行SPI通信我对HAL_SPI命令有疑问。我首先尝试读取... 查看详情

stm32f4hal库开发--spiflash(代码片段)

一、驱动bsp_spi_flash.c#include"THC_Board_include_h.h"/*Privatedefine------------------------------------------------------------*/#defineW25X_WriteEnable0x06//写使能#defineW25X_WriteDisable0x04//写失能 查看详情

《android深度探索》(卷1)hal与驱动开发读后感

第9章:硬件抽象层HAL1.HAL(HardwareAbstractionLayer,硬件抽象层)是建立在Linux驱动之上的一套翻字库。这套程序库并不属于Linux内核,而是属于Linux内核层之上的应用层。2.编写一款支持HAL的Linux驱动程序的步骤编写一款支持HAL的Linux驱... 查看详情