1. 搭建VxWorks 7开发环境并创建首个BSP项目

任务目标

在Workbench中创建基于VxWorks 7的BSP项目,配置交叉编译工具链,生成基础VxWorks镜像并成功启动到shell。

环境与依赖

  • VxWorks 7(含VSB、VIP)及Workbench 4或以上版本,安装于Windows或Linux主机
  • 目标机:x86 64位(如QEMU或真实PC),需支持UEFI启动
  • 串口线或虚拟串口用于观察启动输出

实现步骤

1. 创建VSB(VxWorks Source Build)项目

VSB是VxWorks 7的源码构建环境,必须先于VIP创建。

  1. 打开Workbench,选择 File > New > VxWorks Source Build Project
  2. 项目名称:myVSB,选择BSP:qemu-x86_64(或目标板对应BSP)
  3. 工具链选择:GNU x86_64-linux(Linux主机)或GNU x86_64-w64-mingw32(Windows主机)
  4. 点击 Finish,等待构建完成

2. 创建VIP(VxWorks Image Project)项目

  1. 选择 File > New > VxWorks Image Project
  2. 项目名称:myVIP,关联已创建的VSB项目myVSB
  3. 选择镜像类型:UEFI boot(用于QEMU或UEFI目标机)
  4. 点击 Finish

3. 配置内核组件

在VIP的 Project Explorer 中双击 project.vip,打开组件配置界面:

  • 确认 INCLUDE_SHELL 已勾选(默认包含)
  • 确认 INCLUDE_STANDALONE_SHELL 已勾选,使shell作为独立任务运行
  • 确认串口驱动组件(如 INCLUDE_NS16550 或目标板对应驱动)已包含

4. 构建镜像

  1. 右键点击VIP项目,选择 Build Project
  2. 构建完成后,镜像文件位于 myVIP/default/vxWorks(ELF格式)或 vxWorks.bin(UEFI可执行文件)

5. 启动到shell

使用QEMU验证(无需真实硬件):

qemu-system-x86_64 -m 512 -kernel vxWorks.bin -serial stdio -no-reboot

若使用真实UEFI目标机,将 vxWorks.bin 复制到FAT32格式的启动U盘,命名为 EFI/BOOT/BOOTX64.EFI,从U盘启动。

验证方法与判定标准

  • 串口输出中出现VxWorks启动横幅,包含版本号与BSP名称
  • 启动日志末尾出现 Starting kernel... 后进入shell提示符 ->
  • 在shell中输入 i 并回车,能列出系统任务列表,说明shell交互正常

预期输出(关键部分):

VxWorks 7 Kernel: 7.0.0.0
BSP: qemu-x86_64
...
Starting kernel...
-> i
  NAME      ENTRY       TID    PRI   STATUS   PC       SP     ERRNO  DELAY
  tShell    shellTask   ...    0     READY    ...      ...    0      0
->

常见问题

  • 串口无输出:检查VIP中串口组件是否包含,QEMU命令是否使用 -serial stdio
  • 构建报错缺少工具链:确认Workbench首选项中交叉编译工具链路径已正确设置
  • UEFI启动失败:确认镜像类型选择UEFI boot,且启动介质为FAT32格式