BSP和Driver的区别

BSP( Board Support Package)是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。

1)BSP是你的板子相关的代码,比如GPIO的配置,I2C连接的设备。同一款CPU,不同的板子也会因为引脚的接法不同,设备上从属设备不一样导致BSP不一样;

2)Driver,也就是我们常说的驱动,它和你的子设备是密切相关的,相同设备在相同软件平台下驱动基本是可以通用的,和板子的关系不是很大的。

在OS上的driver一般都是可动态加载的,当然嵌入OS里头直接编进去也就行了,对于一个最小的可运行OS核心来说,BSP是必不可少的,但driver不是。

总结一下:

从系统分层的角度来说,有必要将驱动开发和BSP开发分离开来。

它们都是属于内核范畴,一个内核的组成部分:

  • 子系统,抽象出来的一些框架
  • 驱动, 基于子系统提供的接口开发出来的,针对具体设备,考虑到具体的功能需求实现的软件程序,可以静态链接入内核,也可以模块的方式游离于内核之外,在必要的时候再动态的加载,甚至可以动态的卸载。
  • BSP,内核中针对具体的一款电路板和元器件所添加的代码,可以认为所有针对设备的代码都是驱动,但上下两层,上层的更关注设备的功能实现,具备一定的通用性,也就是我们前面说的驱动。下层就是BSP,这部分代码都是完全依附于某一款特定的电路板和元器件,不可以在不同板子之间通用。BSP的开发也要依赖具体的操作系统类型,为具体某款内核操作系统的子系统服务,适配具体的硬件体系架构。BSP作为内核能够运行于一款特定的硬件设备板子的支撑是必不可少的,必须和内核子系统静态链接。

转载自”Blog of UnicornX” (http://unicornx.github.io/)

  • 13
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值