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的编译依赖关系:汇编启动文件与C初始化文件经风河编译器编译后,链接生成vxWorks镜像,config.h提供编译期配置参数。