一、BSP是什么

板级支持包(BSP)是介于主板硬件和操作系统中驱动层程序之间的一层,一般认为它属于操作系统一部分,主要是实现对操作系统的支持,为上层的驱动程序提供访问硬件设备寄存器的函数包,使之能够更好的运行于硬件主板。在嵌入式系统软件的组成中,就有BSP。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。

纯粹的BSP所包含的内容一般说来是和系统有关的驱动和程序,如网络驱动和系统中网络协议有关,串口驱动和系统下载调试有关等等。离开这些驱动系统就不能正常工作。

二、BSP的主要功能

BSP主要功能为屏蔽硬件,提供操作系统及硬件驱动,具体功能包括:

1. 单板硬件初始化,主要是CPU的初始化,为整个软件系统提供底层硬件支持

2. 为操作系统提供设备驱动程序和系统中断服务程序

3. 定制操作系统的功能,为软件系统提供一个实时多任务的运行环境

4. 初始化操作系统,为操作系统的正常运行做好准备。

三、BSP的作用

建立让操作系统运行的基本环境

1、初始化CPU内部寄存器

2、设定RAM工作时序

3、时钟驱动及中断控制器驱动

4、串口驱动

完善操作系统运行的环境

1、完善高速缓存和内存管理单元的驱动

2、指定程序起始运行位置

3、完善中断管理

4、完善系统总线驱动

四、BSP在应用中的的区别

BSP在嵌入式系统和Windows系统中的不同

其实运行与PC机上的windows或linux系统也是有BSP的。只是PC机均采用统一的X86体系架构,这样一定操作系统(windows,linux.。)的BSP相对x86架构是单一确定的,不需要做任何修改就可以很容易支持OS在x86上正常运行,所以在PC机上谈论BSP这个概念也没什么意义了。

而对嵌入式系统来说情况则完全不同,目前市场上多种结构的嵌入式CPU(RISC)并存(PPC,ARM,MIPS.。。。),为了性能的需要,外围设备也会有不同的选择和定义。一个嵌入式操作系统针对不同的CPU,会有不同的BSP,即使同一种CPU,由于外设的一点差别(如外部扩展DRAM的大小,类型改变),BSP相应的部分也不一样。

所以根据硬件设计编写和修改BSP,保证系统正常的运行是非常重要的。

BSP和PC机主板上的BIOS区别

BSP和PC机主板上的BIOS区别很大,BIOS主要是负责在电脑开启时检测、初始化系统设备(设置栈指针,中断分配,内存初始化。。)、装入操作系统并调度操作系统向硬件发出的指令,它的Firmware代码是在芯片生产过程中固化的,一般来说用户是无法修改。其实是为下载运行操作系统做准备,把操作系统由硬盘加载到内存,并传递一些硬件接口设置给系统。在OS正常运行后,BIOS的作用基本上也就完成了,这就是为什么更改BIOS一定要从新关机开机。

BSP是和操作系统绑在一起运行在主板上的,尽管BSP的开始部分和BIOS所做的工作类似,可是大部分和BIOS不同,作用也完全不同。此外BSP还包含和系统有关的基本驱动(串口,网口。。.),此外程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中。

而BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置。更不会包含一些基本的硬件驱动

BSP在嵌入式开发中的位置和作用

BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能够正常运行的保证。

大概步骤如下:

1.硬件主板研制,测试。

2.操作系统的选定,BSP编程。

3.上层应用程序的开发。

BSP部分在硬件和操作系统,上层应用程序之间。所以这就要求BSP程序员对硬件,软件和操作系统都要有一定的了解。这样才能做好BSP编程。

五、BSP的开发流程

1、验证硬件

了解上电后的电压和电流,连接调试器读写CPU内部寄存器,控制处理器的输出端口(GPIO)观察输出。以及检验时钟设置。

2、配置RAM

这一步包括RAM的初始化和测试。在初始化RAM的过程中需要填写与RAM相关的CPU寄存器。在测试过程中可分为:单元测试,整体测试,噪声测试三部分。

3、内存管理

需要规划内存的使用方法,开MMU等。

计算机应用bsp什么意思,bsp是什么相关推荐

  1. 什么是BSP票和BSP电子票

    BSP( Billing and Settlement Plan,简称BSP,即开账与结算计划,它是国际航协根据运输代理业的发展和需要而建立,供航空公司和代理人之间使用的销售结算系统.BSP票由代理人 ...

  2. android bsp学习_Android BSP成长计划随笔之虚拟设备搭建和input系统

    由于工作关系,对Android关注将从FWK(Framework)转向BSP,也就是Linux Kernel.在工作的5年中,曾经数次研究过kernel,但一直没有合适的机会或者说推动力去深入研究.这 ...

  3. android bsp学习_android BSP与硬件相关子系统读书笔记(1)android BSP移植综述

    从linux驱动转行至Android驱动开发大半年了,一开始就产生了一个很纠结目标和问题,就是不停的google如何porting android!这个问题得到的结果对于初出茅庐的我,感到迷惘.随着工 ...

  4. 《精通Unreal游戏引擎》一第4步 使用BSP创建地图

    本节书摘来异步社区<精通Unreal游戏引擎>一书中的第4步,作者: [英]Ryan Shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区&qu ...

  5. 嵌入式Linux系统BSP的设计与实现

    1. 引言     嵌入式系统由硬件环境.嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求.硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操 ...

  6. BSP细分时代即将来临

    /*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ author:张俊林                                   timestamp:2007/6 ...

  7. ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)

    参考:Linux之ARM(IMX6U)裸机按键输入实验(GPIO的输出与输入) 作者:一只青木呀 发布时间: 2020-08-17 21:43:37 网址:https://blog.csdn.net/ ...

  8. ARM(IMX6U)裸机C语言蜂鸣器驱动实验(BSP+SDK)

    参考:Linux之ARM(IMX6U)裸机C语言蜂鸣器驱动实验–驱动编写,编译 作者:一只青木呀 发布时间: 2020-08-16 14:47:23 网址:https://blog.csdn.net/ ...

  9. ARM(IMX6U)BSP工程文件管理(分文件编程)

    参考:Linux之ARM(IMX6U)BSP工程管理实验 作者:一只青木呀 发布时间: 2020-08-15 23:41:37 网址:https://blog.csdn.net/weixin_4530 ...

最新文章

  1. 使用Docx4j操作PPT指南系列(附一)
  2. SAP CRM WebClient UI上文本是否可编辑,取决于哪些条件
  3. 【IDEA】IDEA中使用git将项目上传到码云上
  4. Linq 三表 left join 的实现
  5. POJ 2104 K-th Number 主席树(区间第k大)
  6. 零基础入门学习汇编语言~基础知识~机器语言与汇编语言的产生及组成
  7. Google Chrome Your browser is not compatible with FlexPaper问题解决
  8. win10虚拟服务器安装xp,xp mode for windows10虚拟机安装教程(详细)
  9. html盒子边框怎么颜色渐变,css边框颜色渐变
  10. Linux(CentOS7)中如何安装QQ
  11. 2019年第十届蓝桥杯A组国赛(C/C++)
  12. 小程序---验证input输入不能为空
  13. 程序员未来职业规划分析
  14. 大事发生,程序员一直在守护世界
  15. HTTP错误代码 404 503 500
  16. jmeter辅助功能详解(http请求默认值,断言)
  17. 如何将caj转换成word
  18. python中for无限循环_关于循环:在Python中从1循环到无穷大
  19. 使用zepto.js完成的手机相册
  20. 计算机专业对口的教资,对教师资格证的这些认知误区,你有吗?

热门文章

  1. Git——eclipse中冲突的解决
  2. spring boot 外部容器tomat、jboss部署
  3. xware for linux,Linux版迅雷(Xware)安装配置方法
  4. ping 丢包 网络摄像头_用ping ,mtr ,traceroute 进行网络丢包分析
  5. Kanzi学习之路(1):Kanzi的简介和安装
  6. #VERDI# 关于 实用Verdi 的使用技巧
  7. Jsp+Ssm+Mysql实现图书馆预约占座管理系统项目源码
  8. 汇编quad_ARM汇编(2)(指令)
  9. PHP+Mysql—苹果购物商城管理系统网站(前端+后端、整套源码)
  10. Pr入门系列之八:添加过渡