计算机应用bsp什么意思,bsp是什么
一、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是什么相关推荐
- 什么是BSP票和BSP电子票
BSP( Billing and Settlement Plan,简称BSP,即开账与结算计划,它是国际航协根据运输代理业的发展和需要而建立,供航空公司和代理人之间使用的销售结算系统.BSP票由代理人 ...
- android bsp学习_Android BSP成长计划随笔之虚拟设备搭建和input系统
由于工作关系,对Android关注将从FWK(Framework)转向BSP,也就是Linux Kernel.在工作的5年中,曾经数次研究过kernel,但一直没有合适的机会或者说推动力去深入研究.这 ...
- android bsp学习_android BSP与硬件相关子系统读书笔记(1)android BSP移植综述
从linux驱动转行至Android驱动开发大半年了,一开始就产生了一个很纠结目标和问题,就是不停的google如何porting android!这个问题得到的结果对于初出茅庐的我,感到迷惘.随着工 ...
- 《精通Unreal游戏引擎》一第4步 使用BSP创建地图
本节书摘来异步社区<精通Unreal游戏引擎>一书中的第4步,作者: [英]Ryan Shah(沙哈)译者: 王晓慧 责编: 陈冀康,更多章节内容可以访问云栖社区"异步社区&qu ...
- 嵌入式Linux系统BSP的设计与实现
1. 引言 嵌入式系统由硬件环境.嵌入式操作系统和应用程序组成,硬件环境是操作系统和应用程序运行的硬件平台,它随应用的不同而有不同的要求.硬件平台的多样性是嵌入式系统的主要特点,如何使嵌入式操 ...
- BSP细分时代即将来临
/*版权声明:可以任意转载,转载时请务必标明文章原始出处和作者信息 .*/ author:张俊林 timestamp:2007/6 ...
- ARM(IMX6U)裸机按键输入实验(BSP+SDK、GPIO输入与输出、按键消抖)
参考:Linux之ARM(IMX6U)裸机按键输入实验(GPIO的输出与输入) 作者:一只青木呀 发布时间: 2020-08-17 21:43:37 网址:https://blog.csdn.net/ ...
- ARM(IMX6U)裸机C语言蜂鸣器驱动实验(BSP+SDK)
参考:Linux之ARM(IMX6U)裸机C语言蜂鸣器驱动实验–驱动编写,编译 作者:一只青木呀 发布时间: 2020-08-16 14:47:23 网址:https://blog.csdn.net/ ...
- ARM(IMX6U)BSP工程文件管理(分文件编程)
参考:Linux之ARM(IMX6U)BSP工程管理实验 作者:一只青木呀 发布时间: 2020-08-15 23:41:37 网址:https://blog.csdn.net/weixin_4530 ...
最新文章
- 使用Docx4j操作PPT指南系列(附一)
- SAP CRM WebClient UI上文本是否可编辑,取决于哪些条件
- 【IDEA】IDEA中使用git将项目上传到码云上
- Linq 三表 left join 的实现
- POJ 2104 K-th Number 主席树(区间第k大)
- 零基础入门学习汇编语言~基础知识~机器语言与汇编语言的产生及组成
- Google Chrome Your browser is not compatible with FlexPaper问题解决
- win10虚拟服务器安装xp,xp mode for windows10虚拟机安装教程(详细)
- html盒子边框怎么颜色渐变,css边框颜色渐变
- Linux(CentOS7)中如何安装QQ
- 2019年第十届蓝桥杯A组国赛(C/C++)
- 小程序---验证input输入不能为空
- 程序员未来职业规划分析
- 大事发生,程序员一直在守护世界
- HTTP错误代码 404 503 500
- jmeter辅助功能详解(http请求默认值,断言)
- 如何将caj转换成word
- python中for无限循环_关于循环:在Python中从1循环到无穷大
- 使用zepto.js完成的手机相册
- 计算机专业对口的教资,对教师资格证的这些认知误区,你有吗?
热门文章
- Git——eclipse中冲突的解决
- spring boot 外部容器tomat、jboss部署
- xware for linux,Linux版迅雷(Xware)安装配置方法
- ping 丢包 网络摄像头_用ping ,mtr ,traceroute 进行网络丢包分析
- Kanzi学习之路(1):Kanzi的简介和安装
- #VERDI# 关于 实用Verdi 的使用技巧
- Jsp+Ssm+Mysql实现图书馆预约占座管理系统项目源码
- 汇编quad_ARM汇编(2)(指令)
- PHP+Mysql—苹果购物商城管理系统网站(前端+后端、整套源码)
- Pr入门系列之八:添加过渡