1. 搭建VxWorks交叉编译环境

任务目标

在Linux主机(Ubuntu 20.04 x86_64)上安装Wind River Workbench 3.3(含VxWorks 6.9),配置针对PowerPC(e500v2内核)的交叉编译工具链,并编译一个最小C程序生成PowerPC目标文件,验证工具链可用。

环境与依赖

  • 宿主机:Ubuntu 20.04 LTS x86_64,内核≥4.15
  • 安装包:Wind River Workbench 3.3(VxWorks 6.9)Linux版ISO
  • 磁盘空间:≥20GB(/opt/windriver分区)
  • 内存:≥8GB(推荐16GB)
  • 依赖库:libgtk2.0-0、libxtst6、libxft2、lib32ncurses6(32位兼容库)

安装步骤

  1. 安装依赖:sudo apt install libgtk2.0-0 libxtst6 libxft2 lib32ncurses6
  2. 挂载ISO并运行安装器:sudo mount -o loop wrwb_3.3_linux.iso /mnt,执行/mnt/installer
  3. 选择安装类型为“Custom”,勾选VxWorks 6.9 for PowerPC组件(含交叉编译器powerpc-wrs-vxworks-gcc)
  4. 安装完成后,将工具链路径加入环境变量:
export WIND_BASE=/opt/windriver/vxworks-6.9
export WIND_HOST_TYPE=x86-linux2
export PATH=$WIND_BASE/host/$WIND_HOST_TYPE/bin:$PATH
export PATH=$WIND_BASE/host/$WIND_HOST_TYPE/gnu/3.4.4-x86-linux2/bin:$PATH

验证工具链

确认编译器版本与目标架构:

powerpc-wrs-vxworks-gcc --version
powerpc-wrs-vxworks-gcc -dumpmachine

预期输出(示例):

powerpc-wrs-vxworks-gcc (Wind River Linux 3.0) 3.4.4
powerpc-wrs-vxworks

编译验证程序

创建测试文件 hello_ppc.c:

#include <stdio.h>

int main(void) {
    printf("VxWorks PPC cross-compile OK\n");
    return 0;
}

编译生成PowerPC目标文件:

powerpc-wrs-vxworks-gcc -c hello_ppc.c -o hello_ppc.o

验证目标文件架构:

file hello_ppc.o

预期输出(示例):

hello_ppc.o: ELF 32-bit MSB relocatable, PowerPC or cisco 4500, version 1 (SYSV)

通过判定标准

  • powerpc-wrs-vxworks-gcc -dumpmachine 输出包含 powerpc-wrs-vxworks
  • file hello_ppc.o 显示 ELF 32-bit MSB 且架构为 PowerPC,说明交叉编译环境配置成功,生成的目标文件可在VxWorks PowerPC目标机上进一步链接使用。

常见问题

  • 缺少32位库:安装器报错error while loading shared libraries时,执行sudo apt install lib32ncurses6 lib32z1。
  • License配置:Workbench首次启动需指向License服务器,在/opt/windriver/workspace/.wind/windriver.lic中配置SERVER <ip> <mac> <port>。
  • 环境变量持久化:将export语句追加到~/.bashrc,避免每次手动设置。