什么是BSP
BSP(Board Support Package)概念解析 BSP是板级支持包,是介于主板硬件和操作系统之间的一层,应该说是属于操作系统的一部分,主要目的是为了支持操作系统,使之能够更好的运行于硬件主板。BSP是相对于操作系统而言的,不同的操作系统对应于不同定义形式的BSP,例如VxWorks的BSP和Linux的BSP相对于某一CPU来说尽管实现的功能一样,可是写法和接口定义是完全不同的,所以写BSP一定要按照该系统BSP的定义形式来写(BSP的编程过程大多数是在某一个成型的BSP模板上进行修改)。这样才能与上层OS保持正确的接口,良好的支持上层OS。 例如: 在VxWorks中的网卡驱动,首先在config.h中包含该网卡,然后将网卡含网卡的信息的参数放入数组 END_TBL_ENTRY endDevTbl [] 中,系统通过函数muxDevLoad( )调用这个数组来安装网卡驱动。 而在Linux中的网卡驱动,是在space.c中声明该网络设备,再把网卡驱动的一些函数加到dev结构中,由函数ether_setup()来完成网卡驱动的安装。 纯粹的BSP所包含的内容一般说来是和系统有关的驱动和程序,如网络驱动和系统中网络协议有关,串口驱动和系统下载调试有关等等。离开这些驱动系统就不能正常工作。 Tornado中BSP的编译和上层应用程序不同,用命令行或直接在Tornado环境下Build,在Tornado下不能跟踪调试。 用户也可以添加自己的程序到BSP中,但严格来说不应该算BSP.一般来说这种做法不建议。因为一旦操作系统能良好运行于最终的主板硬件后,BSP也就固定了,不需要做任何改动。而用户自己在BSP中的程序还会不断的升级更新,这样势必对BSP有不好的影响,对系统造成影响,同时由于BSP调试编译环境较差,也不利于程序的编译调试。 上层程序 Tools - Applications
I/O System
VxWorks Libraries TCP/IP Wind Kernel 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一定要从新关机开机。 PC机BIOS的作用更象嵌入式系统中的Bootloader(最底层的引导软件,初始化主板的基本设置,为接收外部程序做硬件上的准备)。与Bootloader不同的是BIOS在装载OS系统的同时,还传递一些参数设置(中断端口定义,...),而Bootloader只是简单的装载系统。 BSP是和操作系统绑在一起运行在主板上的,尽管BSP的开始部分和BIOS所做的工作类似,可是大部分和BIOS不同,作用也完全不同。此外BSP还包含和系统有关的基本驱动(串口,网口...),此外程序员还可以编程修改BSP,在BSP中任意添加一些和系统无关的驱动或程序,甚至可以把上层开发的统统放到BSP中。 而BIOS程序是用户不能更改,编译编程的,只能对参数进行修改设置。更不会包含一些基本的硬件驱动。 BSP在嵌入式开发中的位置和作用 BSP开发处于整个嵌入式开发的前期,是后面系统上应用程序能够正常运行的保证。 大概步骤如下: 1.硬件主板研制,测试。 2.操作系统的选定,BSP编程。 3.上层应用程序的开发。 BSP部分在硬件和操作系统,上层应用程序之间。所以这就要求BSP程序员对硬件,软件和操作系统都要有一定的了解。这样才能做好BSP编程。 熟悉工具方面:电表,示波器,逻辑分析仪。硬件仿真器,仿真调试环境。
BSP和DD(Device Driver)都是作为OS跟H/W之间的层次而存在的。
|
本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u/11176/showart_198807.html
分享到:
相关推荐
基于MPC讲解了什么是BSP,不错的资料,适合初学者。
收集各种开发板wince BSP资源: 6410 sd启动裸跑 mini2440 Android系统 WINCE6 VMWARE BSP 三星CPU资料 三星S3C2416 三星S3C2440A 三星S3C2443 三星S3C6410 优龙开发板wince5.0 BSP和资料 友善之臂Micro2440、...
Quake3 BSP 技术简析 关于bsp技术的论文,喜欢游戏制作或者想了解bsp的可以下载看看 相关技术可以去搜索更多专业论文
SAP BSP使用前的必要配置 内有截图 详细步骤
本文档概括地描述了构成板级支持包(BSP)的元素,VxWorks BSP的要求以及引导过程中BSP的一般行为。 本文档概述了将现有BSP移植到新硬件平台或使用参考BSP或模板BSP作为起点为自定义硬件编写新的VxWorks BSP所需的...
1、创建BSP树。 此BSP树为满树,即所有节点/叶子全部创建。 用户可以自定义此BSP树的深度和所处的三维场景中的位置。 注a:由于创建树时为满树创建,故层数太大时创建时间可能会比较久,请耐心等待。 注b:创建顺序...
8.BSP开发 BSP开发
RT-Thread的BSP制作文档,转成pdf方便大家阅读 源连接 github.com/RT-Thread/rt-thread/blame/master/bsp/stm32/docs/STM32系列BSP制作教程.md
嵌入式BSP开发所包含的范围,开发流程,BSP在整个嵌入式系统中所提供的服务。BSP与bios和driver两者在概念上的区别。BSP在常用操作系统中开发方式,常用用的开发模板等。
WinCE4.2BSP BSP WinCE4.2 mini2440 2440 win ce 2440 BSP包
Wince 开发之BSP指南 初学者的好帮手
ldd6410 bsp uart, hope it will help
BSP宝典.pdf bsp原理详细说明
T2080 VXworks bsp,应用于T2080 VXWORKS的底层开发和镜像生成。
课件来的 BSP开发 详细教程 有用的话自己下来看看吧
BSP原理介绍,bsp的构造,遍历! BSP原理介绍,bsp的构造,遍历!
BSP ( Bu lk Synch ronou s Paral2 lel) 是一种独立于体系结构且具有可预测性的并行 模型, 它既是算法理论分析模型, 也是一种并行程序 设计的规范 . 由于BSP 模型对并行程序设计没有过 多的限制, 程序员在编程方法 ...
简要介绍vxworks和BSP,对初学这很有帮助
mstone开发板的bsp源码包(pxa310的wince bsp包),包括开发板上外围设备驱动。
bsp开发演示,对于新手可以了解一下何为bsp,给以一个直观的映象