BSP是啥?

2021-11-12 18:33:34 浏览数 (1)

欢迎关注VxWorks567

如转发 请标明出处!

BSP,全称是Board Support Package,其主要功能是:

  • 发现硬件
  • 提供初始化Board和控制Board的方法
  • 准备操作系统运行时环境 主要由以下部分组成:
  • 硬件配置数据
  • 解析这些配置的代码
  • 引导程序和操作系统的接口

对于Vx5和Vx6来说,这个Package通常包含了一堆C文件、几个汇编文件、几个cdf文件、一些头文件、一个makefile文件、一个readme文件(版本信息),和一个target.ref文件(这个BSP的专属文档)。到了Vx7,BSP被大大简化,主要成分就是cdf和dts文件了

BSP的目的就是为了在特定的Board上更轻松地配置OS的Kernel。有了BSP这个硬件相关层,就可以相对容易的在不同硬件之间进行OS的移植了。这个移植能力是通过定义一个统一的引导流程、一组标准的系统函数来实现的

WindRiver在发布VxWorks的每个版本之前,都会在若干Board上进行验证,因此在每个版本的VxWorks都会自带若干现成的BSP

Vx5/6: $(WIND_BASE)/target/config

Vx7: (WIND_BASE)/(WIND_PKGS_DIR_NAME)/os/board

VxWorks的版本越高,支持的CPU越新,支持的Board也可能越多一些。但世界上的设备千千万,再庞大的OS也不可能支持所有Board。因此,这才有了BSP工程师(底层工程师/驱动工程师)这个职位存在的必要

而要开发一个新的BSP,最重要的一点,是在已有BSP中找到一个接近的做为起点。如果当前版本里,根本就没有与新Board相同CPU的BSP,那就得考虑换一个高版本的VxWorks了

一个好的BSP应该具有以下特性:

  • 将特定于某个Board的代码与该处理器系列的所有Board之间共享的代码分开
  • 将设备驱动与启动/控制处理器核心(MMU、L1 Cache等)的代码分离
  • 对引导程序不做任何假设
  • 移植到同一处理器系列的其它Board只需很少的调整
  • 可通过可读的text文件而非code进行配置
  • 在操作系统和硬件之间提供了高性能接口

我是泰山 专注VX好多年

一起学习 共同进步

0 人点赞