2. 创建最小VxWorks镜像

任务说明

本案例目标:在Workbench中基于PowerPC BSP创建最小VxWorks镜像,包含内核与基本驱动,并启动到shell提示符。最终交付物为一个可烧写到目标板并进入->shell的VxWorks镜像文件。

环境准备

  • Wind River Workbench 3.x(含VxWorks 6.8/6.9)
  • PowerPC BSP包(如wrSbc8349或目标板对应BSP)
  • 目标板串口线(用于shell交互)与网络连接(可选)

创建最小镜像步骤

  1. 启动Workbench,选择File > New > VxWorks Image Project。
  2. Project name输入minimal_vx,BSP选择目标板对应PowerPC BSP(如wrSbc8349)。
  3. Image type选择Bootable image,工具链保持默认(gnu或diab)。
  4. 在Kernel Configuration页中,仅保留以下组件(其余全部移除):
    • INCLUDE_SHELL(shell支持)
    • INCLUDE_STORAGE(基础存储驱动)
    • INCLUDE_TTY(串口终端)
    • INCLUDE_SERIAL(串口驱动)
  5. 点击Build生成镜像,默认输出文件为vxWorks(ELF格式)及vxWorks.bin(裸二进制)。

关键配置说明

最小镜像的核心是裁剪不必要的组件。在project.vxwp文件中,通过PRJ_OBJ宏控制包含项。以下为最小配置对应的关键宏定义(在Workbench图形界面中操作等效):

// 在 project.vxwp 中确认以下宏为1,其余组件宏为0
#define INCLUDE_SHELL      1
#define INCLUDE_STORAGE    1
#define INCLUDE_TTY        1
#define INCLUDE_SERIAL     1
#define INCLUDE_NETWORK    0   // 本案例不需要网络
#define INCLUDE_DEBUG      0   // 移除调试代理以减小体积

若使用命令行构建,可在BSP目录下执行:

make clean
make CPU=PPC32 TOOL=gnu 1> build.log 2>&1

镜像烧写与启动验证

  1. 将生成的vxWorks.bin通过JTAG或BootROM烧写到目标板Flash起始地址(如0xFFF00000,具体见BSP手册)。
  2. 连接串口线到目标板Console口,主机侧打开串口终端(波特率9600或BSP默认值,8N1)。
  3. 目标板上电或复位,观察串口输出。

通过判定标准

  • 串口输出中出现VxWorks启动横幅,包含版本号与BSP名称。
  • 启动过程无致命错误(如PANIC或FATAL)。
  • 最终出现shell提示符->,输入i命令能列出任务列表(至少包含tShell任务)。
  • 输入devs命令能看到/tyCo/0(串口设备)与/bd(块设备)节点。

常见问题排查

  • 启动后无输出:检查串口波特率是否与BSP默认一致;确认INCLUDE_SERIAL已包含且控制台设备映射正确(CONSOLE_TTY为0)。
  • 镜像过大无法烧写:确认未包含调试符号(编译时加-DNDEBUG),并检查Flash空间是否满足BSP要求。
  • shell无响应:确认INCLUDE_SHELL已包含,且启动参数中boot device配置正确(通常为fei或mot,取决于BSP)。

完成以上步骤并观察到shell提示符,即表示最小VxWorks镜像创建成功。该镜像仅包含内核、串口驱动与shell,可作为后续驱动开发与功能扩展的基础。