1. 搭建VxWorks BSP开发环境

任务说明

本案例目标是在Workbench中配置风河编译器,创建一个最小BSP工程并编译通过。最小BSP工程仅包含启动入口和必要的CPU初始化桩代码,用于验证工具链与工程配置正确性,不涉及具体板级驱动。

环境依赖

  • Wind River Workbench 3.3及以上(含VxWorks 6.9或7.0)
  • 目标架构:x86(Pentium及以上),其他架构需替换编译器前缀
  • 已安装对应架构的风河编译器(如ccpentium)

创建最小BSP工程

在Workbench中通过File > New > VxWorks Image Project创建工程,选择BSP类型并指定BSP源码目录。工程创建完成后,在Project Properties > Build Properties中确认编译器前缀为ccpentium,优化级别设为-O2,并确保_WRS_KERNEL宏已定义。

最小BSP源码

在工程bsp目录下创建以下两个文件,构成可编译的最小BSP核心:

// bspStart.s - 启动入口
    .text
    .globl _sysInit
_sysInit:
    cli
    xor %eax, %eax
    mov %eax, %esp
    call _usrInit
    hlt

// bspInit.c - 初始化桩
#include <vxWorks.h>
#include <config.h>

void usrInit(int arg1, int arg2, int arg3, int arg4)
{
    /* 关闭中断,设置栈顶 */
    intSave();
    /* 最小初始化:仅设置栈指针并返回 */
    USER_STACK_SIZE = 0x4000;
    return;
}

void _usrInit(void)
{
    usrInit(0, 0, 0, 0);
}

同时需在BSP目录下提供config.h,至少包含以下内容:

#ifndef CONFIG_H
#define CONFIG_H

#define USER_STACK_SIZE 0x4000
#define CPU  PENTIUM
#define TOOL_FAMILY  GNU
#define TOOL  GNU

#endif

编译与验证

在Workbench中右键工程选择Build Project,或使用命令行:

cd $WIND_BASE/target/config/myBSP
make clean
make

编译成功应生成vxWorks可执行文件及vxWorks.sym符号表。验证通过条件:

  • 编译过程无错误,仅有与未解析外部符号无关的警告
  • 生成的vxWorks文件存在且大小非零
  • 在Workbench的Console视图中能看到Build Finished状态

若编译失败,优先检查config.h中CPU宏是否与所选架构匹配,以及编译器前缀是否在Workbench的Build Properties > Toolchain中正确设置为ccpentium。

最小BSP编译流程 bspStart.s bspInit.c config.h ccpentium vxWorks

上图展示了最小BSP的编译依赖关系:汇编启动文件与C初始化文件经风河编译器编译后,链接生成vxWorks镜像,config.h提供编译期配置参数。