欢迎关注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好多年
一起学习 共同进步