VxWorks设备驱动架构与外设集成 - 第2节

2. VxWorks开发环境搭建

Workbench 是 VxWorks 的官方集成开发环境,基于 Eclipse 框架构建,提供项目管理、代码编辑、编译调试、性能分析等全流程支持。本节将引导你完成 Workbench 的安装与初始配置。

2.1.1 安装前准备

项目 要求
操作系统 Windows 10/11 (64-bit) 或 Linux (Ubuntu 20.04+/RHEL 8+)
JDK OpenJDK 11 或 Oracle JDK 11 (64-bit)
磁盘空间 至少 15 GB (含 VSB/VIP 组件)
内存 推荐 16 GB 以上
网络 需访问 Wind River 许可证服务器 (或使用本地浮动许可证)
提示: 建议在安装前关闭杀毒软件实时扫描,避免安装过程中文件被误拦截导致组件缺失。

2.1.2 安装步骤

  1. 获取安装包: 从 Wind River 官网或内部镜像站下载 Workbench 安装程序 (通常为 windriver-workbench-*.exe 或 .bin)。
  2. 运行安装程序: 以管理员身份执行安装程序,选择安装语言为 English(中文界面可能存在翻译不完整)。
  3. 选择组件: 在组件选择界面,至少勾选以下核心组件:
    • Workbench IDE (主程序)
    • VxWorks Source Build (VSB) — 用于构建 VxWorks 内核和驱动
    • VxWorks Image Project (VIP) — 用于生成 VxWorks 镜像
    • VxWorks Simulator — 用于在宿主机上模拟运行
    • 目标架构支持 (如 x86_64、ARM、PPC 等,根据实际硬件选择)
  4. 配置许可证: 安装完成后启动 Workbench,通过 Help → Wind River License Setup 激活许可证。支持三种模式:
    • 节点锁定许可证: 绑定到本机 MAC 地址
    • 浮动许可证: 指向许可证服务器 (格式 port@host)
    • 试用许可证: 30 天评估期
  5. 验证安装: 打开 Workbench,确认菜单栏出现 Wind River 标签,且 Window → Preferences → Wind River 下可看到已安装的 SDK 版本。
常见问题: 若启动后提示 "No Wind River SDK found",请检查安装路径是否包含空格或中文字符,建议使用纯英文路径如 C:\WindRiver\。

2.2 VxWorks Simulator 环境搭建 (VSB/VIP)

VxWorks Simulator 允许你在宿主机上直接运行 VxWorks 内核,无需物理目标板,是驱动开发前期调试的核心工具。搭建流程分为两步:VSB (VxWorks Source Build) 构建内核源码包,VIP (VxWorks Image Project) 生成可启动镜像。

2.2.1 VSB 构建流程

VSB 是 VxWorks 的源码构建系统,用于裁剪和编译内核组件。以下是标准操作步骤:

  1. 创建 VSB 项目: 在 Workbench 中选择 File → New → VxWorks Source Build Project。
  2. 选择 BSP: 对于 Simulator 环境,BSP 选择 simlinux (Linux 宿主机) 或 simwindows (Windows 宿主机)。
  3. 配置内核特性: 在 Kernel Configuration 界面,至少启用以下组件:
    • INCLUDE_IPNET — 网络协议栈
    • INCLUDE_END — 增强型网络驱动
    • INCLUDE_SHELL — 命令行 Shell
    • INCLUDE_LOADER — 模块加载器 (用于加载驱动 .o 文件)
  4. 执行构建: 右键项目 → Build Project。首次构建耗时约 10-20 分钟,生成产物位于 vsb/<project_name>/ 目录下。
注意: 如果构建过程中出现 "undefined reference" 错误,通常是因为未启用依赖组件。请检查 Kernel Configuration 中的依赖关系,或使用 DEFAULT 配置模板重新创建 VSB。

2.2.2 VIP 镜像生成

VIP 项目基于 VSB 产物生成最终的 VxWorks 镜像文件 (vxWorks 或 vxWorks.st)。

  1. 创建 VIP 项目: File → New → VxWorks Image Project。
  2. 关联 VSB: 在向导中指定上一步构建好的 VSB 项目路径。
  3. 配置启动参数: 在 Image Configuration 中设置:
    • 启动脚本: 添加 usrRoot 初始化函数
    • 网络配置: 设置模拟网卡的 IP 地址 (如 192.168.200.1)
    • 内存大小: 建议 64 MB 以上
  4. 生成镜像: 右键项目 → Build Project。成功后会在 default/ 目录下生成 vxWorks 文件。
验证: 在 Workbench 中点击 Run → Run Configurations,选择 VxWorks Simulator 类型,指定 VIP 项目路径,点击 Run 即可启动模拟器。若控制台输出 "Starting at 0x..." 并进入 Shell 提示符 ->,则环境搭建成功。
VSB/VIP 构建与 Simulator 启动流程 1. 创建 VSB 项目 2. 选择 BSP (simlinux) 3. 配置内核组件 4. 构建 VSB 5. 创建 VIP 项目 6. 关联 VSB 产物 7. 配置启动参数 8. 生成 vxWorks 镜像 9. 启动 Simulator 关键产物 VSB: lib*.a, .h VIP: vxWorks Sim: 控制台 Shell

2.3 目标机与宿主机网络连接配置

无论是物理目标板还是 Simulator,驱动开发都需要宿主机与目标机之间的网络通信,用于下载镜像、调试符号、文件传输等。本节以 Simulator 环境为例,讲解网络配置方法。

2.3.1 网络拓扑与地址规划

角色 IP 地址 子网掩码 说明
宿主机 (Host) 192.168.200.10 255.255.255.0 运行 Workbench 的物理机
目标机 (Target) 192.168.200.1 255.255.255.0 Simulator 或物理板卡
网关 192.168.200.254 — 可选,用于跨网段通信
关键原则: 宿主机与目标机必须在同一子网内,且 IP 地址不能冲突。Simulator 默认使用虚拟网卡 vxsim0,其 IP 在 VIP 配置中设定。

2.3.2 宿主机端配置 (Windows 示例)

  1. 安装虚拟网卡: Workbench 安装时可选安装 Wind River Virtual Network Adapter。若未安装,可手动添加:
    # 以管理员身份运行
    C:\WindRiver\setup\vxsim\install_vxsim_net.bat
  2. 配置虚拟网卡 IP:
    • 打开 控制面板 → 网络和共享中心 → 更改适配器设置
    • 找到 Wind River Virtual Ethernet Adapter
    • 右键 → 属性 → IPv4 → 设置 IP 为 192.168.200.10,掩码 255.255.255.0
  3. 关闭防火墙: 为简化调试,建议在专用虚拟网卡上关闭防火墙,或放行以下端口:
    • UDP 17185: Wind River Debugger 通信
    • TCP 1534: FTP 文件传输
    • UDP 69: TFTP 启动

2.3.3 目标机端配置 (Simulator)

在 VIP 项目的启动配置中,通过 bootline 参数设置网络:

# 在 VIP 项目配置中,添加或修改 bootline 参数
bootline = "end(0,0)simlinux:192.168.200.1:192.168.200.10:192.168.200.254:255.255.255.0:vxWorks h=192.168.200.10 e=192.168.200.1 u=target pw=target tn=target"

# 参数说明:
# end(0,0)       — 使用第一个 END 网络接口
# simlinux       — 模拟器类型
# 192.168.200.1  — 目标机 IP
# 192.168.200.10 — 宿主机 IP (FTP/TFTP 服务器)
# 192.168.200.254— 网关
# 255.255.255.0  — 子网掩码
# vxWorks        — 启动镜像文件名
# h=...          — 宿主机地址
# e=...          — 目标机地址
# u=... pw=...   — FTP 登录凭据

2.3.4 连通性测试

启动 Simulator 后,在宿主机终端执行 ping 命令验证连通性:

C:\> ping 192.168.200.1

正在 Ping 192.168.200.1 具有 32 字节的数据:
来自 192.168.200.1 的回复: 字节=32 时间<1ms TTL=64
来自 192.168.200.1 的回复: 字节=32 时间<1ms TTL=64

若 ping 不通,请按以下顺序排查:

  • 确认虚拟网卡已启用且 IP 配置正确
  • 检查 Simulator 是否已启动 (控制台应显示 -> 提示符)
  • 在 Simulator Shell 中执行 ifShow 命令查看网络接口状态
  • 尝试关闭宿主机防火墙临时测试
宿主机 ↔ 目标机网络连接拓扑 宿主机 (Host) Workbench IDE IP: 192.168.200.10 目标机 (Target) VxWorks Simulator IP: 192.168.200.1 通信协议 UDP 17185 (Debug) TCP 1534 (FTP) 同一子网 192.168.200.0/24,通过 Wind River Virtual Ethernet Adapter 桥接 Simulator 启动后自动注册到宿主机,Workbench 通过 UDP 广播发现目标

2.4 开发环境验证

完成上述配置后,通过以下步骤验证整个开发环境是否就绪:

  1. 启动 Simulator: 在 Workbench 中运行 VIP 项目,确认控制台输出正常。
  2. 建立调试连接: 在 Workbench 中打开 Run → Debug Configurations,选择 VxWorks Simulator Debug,点击 Debug。若成功,Workbench 会进入调试透视图,显示目标机内存、寄存器、任务列表等信息。
  3. 执行简单命令: 在 Simulator Shell 中输入 i 查看任务列表,输入 ifShow 查看网络接口。
  4. 下载测试模块: 在 Workbench 中创建一个简单的驱动工程 (如 hello_drv.c),编译生成 .o 文件,通过 ld < hello_drv.o 命令加载到 Simulator 中运行。
成功标志: 能够在 Workbench 的 Target Console 中看到目标机打印信息,且可以通过 Debug 模式设置断点、单步执行驱动代码,说明整个开发环境已完全就绪。
常见陷阱: 如果调试连接时提示 "Target not found",请检查宿主机防火墙是否放行 UDP 17185 端口,以及 Simulator 是否已正确配置 bootline 中的宿主机 IP 地址。