BSP即Board Support Package,板级支持包。它来源于嵌入式操作系统与硬件无关的设计思想,操作系统被设计为运行在虚拟的硬件平台上。对于具体的硬件平台,与硬件相关的代码都被封装在BSP中,由BSP向上提供虚拟的硬件平台,BSP与操作系统通过定义好的接口进行交互。BSP是所有与硬件相关的代码体的集合。

BSP在嵌入式系统中的角色,很相似于在PC系统中的BIOS和驱动程序的地位。

BSP就看成BIOS+驱动或者bootloader+驱动

BSP和驱动的区别:bsp还包括了bootloader,或者bsp是包含了cpu、电源管理这些比驱动更深层次的硬件支持包。

驱动的话,一般岗位要求你熟悉IIC、SPI等通信协议呀什么的,让你驱动某个外设,某个芯片。

1、BSP是一般是芯片原厂提供的,驱动是自己写的。

2、bsp是保证os启动前所作的必须工作,包括初始化工作,引导os启动起来,也包括一些用户的配置信息。 os启动后,可以认为bsp已经不再起作用了,os会调相应的驱动来重新初始化系统。驱动可以认为是os内核中的一部分。

3、 BSP是嵌入式系统中介于硬件平台和操作系统之间的中间层软件,主要目的是为了屏蔽底层硬件的多样性,根据操作系统的要求完成对硬件的直接操作,向操作系统提供底层硬件信息并最终启动操作系统。BSP具有硬件相关性和操作系统相关性的特点,其主要作用包括:
(1)初始化底层硬件,为操作系统提供底层硬件信息;
(2)初始化相关硬件设备,主要是存储设备、通信设备;
(3)检测系统硬件是否正常;
(4)加载操作系统并启动系统运行。

4、BSP(Board Support Package),板级支持包,也称为硬件抽象层HAL或者中间层。

它将系统上层软件和底层硬件分离开来,使系统上层软件开发人员无需关系底层硬件的具体情况,根据BSP层提供的接口开发即可。

BSP是相对于操作系统而言的,不同的操作系统有不同定义形式的BSP,要求BSP所实现的功能也有所不同。

在嵌入式Linux系统中,主要是初始化底层硬件并引导操作系统;同时,BSP又是和硬件相关的,还要考虑对硬件的初始化操作。这些初始化操作主要是对CPU、内存、中断等相关的寄存器及协处理器进行正确的配置。

在不同的开发阶段,因为核心和文件系统所处的位置不同,BSP所要完成的工 作也有所不同;在开发调试阶段,BSP要能够与主机通信并从主机下载核心;在目标产品中,BSP要能够从非易失存储设备中加载核心。

举例

BSP驱动开发岗位职责

岗位职责:

负责Linux内核与驱动程序的开发维护工作,包括:

1、为新的硬件平台开发bootloader和firmware;

2、为新的硬件设计、开发和测试设备驱动,并撰写文档;

3、编写、调试和测试设备驱动、各种协议栈(例如,USB,SATA,network,Wi-Fi,Streaming);

4、分析和解决在系统集成期间发现的问题;

5、优化Linux内核和驱动;

6、熟悉高通平台者优先

任职要求:

1、本科及以上学历,计算机科学或相关专业;

2、 2年以上LINUX驱动经验,熟悉嵌入式软件调试实时操作系统;拥有丰富的ASM/C/C++开发经验;熟悉ARM架构,ARM汇编,仿真器/ JTAG调试器;

3、熟悉LINUX和android体系架构者优先;

4、具备良好的职业素养和团队协作精神,较强的学习和沟通能力。

参考:

https://blog.csdn.net/qsj8362234/article/details/6325761

关于驱动程序与BSP的区别相关推荐

  1. VxWorks的移植和BSP定制过程

    BSP(Board Support Package,板级支持包)的作用是针对特殊的硬件平台,为操作系统内核提供操作接口,使操作系统能够独立于底层硬件.对上层应用屏蔽具体硬件,VxWorks的高可移植性 ...

  2. VxWorks驱动程序开发指南--驱动程序的组织结构

    8D Spaces Reliability & Stability & Efficiency 目录视图 摘要视图 订阅 VxWorks驱动程序开发指南(四)--驱动程序的组织结构 20 ...

  3. 嵌入式系统HAL原理与BSP的实现方法

    随着计算机软硬件技术的快速发展,出现了越来越多的便携设备和智能设备.这些设备中通常包含控制用的CPU和相应的操作系统;这类特殊的计算机系统叫做嵌入式实时系统.嵌入式实时系统以其简洁高效等特点在计算机. ...

  4. 编写通用 Hello World 驱动程序 (KMDF)

    2019独角兽企业重金招聘Python工程师标准>>> 本主题介绍了如何使用内核模式驱动程序框架 (KMDF) 编写非常小的通用 Windows 驱动程序. 若要开始操作,请确保你已 ...

  5. 友善mini2440终于发布CE6.0的BSP了!

    去年就开始买板子了,当时就把mini2440玩了一遍,说实话,没有什么感觉,后来才知道原来就是4.2的BSP包,但是当时主要想学习LINUX,可是今年年初,老板却由于项目的需要让我研究WINCE,由于 ...

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

    嵌入式系统硬件抽象层(HAL & BSP)的设计思想--第一部分 1 前言 特点 1.1 层次化思想 1.2 模块化思想 1.3 对象化思想 2 板级支持包(BSP) 3 嵌入式系统硬件抽象层 ...

  7. 嵌入式Linux学习(一)

    嵌入式系统 嵌入式系统是一种专用的计算机系统,作为装置或设备的一部分.通常,嵌入式系统是一个控制程序存储在ROM中的嵌入式处理器控制板.事实上,所有带有数字接口的设备,如手表.微波炉.录像机.汽车等, ...

  8. 基本概念学习(1003)---嵌入式系统

    嵌入式系统(Embedded system),是一种"完全嵌入受控器件内部,为特定应用而设计的专用计算机系统",根据英国电气工程师协会( U.K. Institution of E ...

  9. 如何搭建个人独立博客

    如何搭建个人独立博客 最近一些朋友问起怎样搭建独立博客,想到以前自己折腾时的迷茫和走过的一些弯路,觉得有必要稍微总结一下.这里简单描述一下整体上的步骤吧. 严正声明:由于文章的特殊性,其中难免会涉及到 ...

  10. uC/OS-II系统开发笔记

    uC/OS-II是一个简洁.易用的基于优先级的嵌入式抢占式多任务实时内核.尽管它非常简单,但是它的确在很大程度上解放了我的嵌入式开发工作.既然是一个操作系统内核,那么一旦使用它,就会涉及到如何基于操作 ...

最新文章

  1. 二、数据库的基本操作
  2. important meeting with friends
  3. DCMTK:类DcmVR:值表示
  4. go语音protobuf_golang 使用 protobuf 的教程
  5. 数据保护伞—为MaxCompute平台数据安全保驾护航
  6. 蓝桥杯 历届试题 剪格子
  7. Spring 使用事务
  8. 对软件测试团队“核心价值”的思考
  9. 来自内部的XSS攻击的防范
  10. c语言中调用平均成绩,C语言、用调用函数、输入3个学生5门课程的成绩分别用函数求每个学生平均分每门课的平均分...
  11. chmod 777命令_Linux shell命令总结
  12. html文件怎么兼容浏览器,如何扫描HTML和跨浏览器兼容的JavaScript文件?
  13. 爱普生Epson L1118/1119打印机清零步骤
  14. vue-router 三级路由
  15. 开发者必看的免费资源分享网站,让开发更简单!
  16. Java对上传的图片进行格式校验以及安全性校验
  17. clustalw序列比对_几个多序列比对软件:Muscle,ClustalW和T
  18. 有没有便宜一点的网站服务器,有便宜一点的云服务器卖吗
  19. 【Matlab】帮助文档打不开
  20. BZOJ 2277 Poi2011 Strongbox 数论

热门文章

  1. DateTime类型的12小时制与24小时制
  2. android 播放gif方案集合
  3. 训练创新思维的方法:曼陀罗思考法
  4. 植物大战僵尸修改金币以及关卡
  5. 植物大战僵尸 修改存档和金钱
  6. Canvas—绘画圆弧
  7. error C2144: syntax error: 'int' should be preceded by ';'
  8. Word文档人民币符号怎么打出来
  9. 丙二硫醇/鸟嘌呤(BG)/Mn配合物修饰BODIPY氟化硼二吡咯荧光探针
  10. 剑与家园服务器维护,《剑与家园》杀鸡取卵式运营 如何拯救短命的区服?