2. 创建最小VxWorks镜像
任务说明
本案例目标:在Workbench中基于PowerPC BSP创建最小VxWorks镜像,包含内核与基本驱动,并启动到shell提示符。最终交付物为一个可烧写到目标板并进入->shell的VxWorks镜像文件。
环境准备
- Wind River Workbench 3.x(含VxWorks 6.8/6.9)
- PowerPC BSP包(如
wrSbc8349或目标板对应BSP) - 目标板串口线(用于shell交互)与网络连接(可选)
创建最小镜像步骤
- 启动Workbench,选择File > New > VxWorks Image Project。
- Project name输入
minimal_vx,BSP选择目标板对应PowerPC BSP(如wrSbc8349)。 - Image type选择Bootable image,工具链保持默认(gnu或diab)。
- 在Kernel Configuration页中,仅保留以下组件(其余全部移除):
INCLUDE_SHELL(shell支持)INCLUDE_STORAGE(基础存储驱动)INCLUDE_TTY(串口终端)INCLUDE_SERIAL(串口驱动)
- 点击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
镜像烧写与启动验证
- 将生成的
vxWorks.bin通过JTAG或BootROM烧写到目标板Flash起始地址(如0xFFF00000,具体见BSP手册)。 - 连接串口线到目标板Console口,主机侧打开串口终端(波特率9600或BSP默认值,8N1)。
- 目标板上电或复位,观察串口输出。
通过判定标准
- 串口输出中出现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,可作为后续驱动开发与功能扩展的基础。