第二章:开发环境搭建——Workbench安装、BSP配置、VxWorks Image生成、目标机连接与调试
好,咱们直接进入正题。
做VxWorks驱动开发,第一步就是把环境搭起来。这一步要是没弄好,后面全是坑。我见过太多新手卡在环境上,代码写了一大堆,结果连目标机都连不上。
今天我就带你走一遍完整流程。从Workbench安装,到BSP配置,再到Image生成,最后连上目标机调试。每一步我都会告诉你:哪些地方容易翻车,哪些地方可以偷懒。
2.1 Workbench安装——别选错版本
Workbench是Wind River的IDE,说白了就是咱们写代码、编译、调试的“大本营”。
安装前你要确认三件事:
- 操作系统兼容性:Workbench 3.x 支持 Windows 7/10,Workbench 4.x 开始偏向 Linux。我个人习惯用 Windows 10 + Workbench 3.3,稳定,少折腾。
- 许可证(License):这玩意儿必须提前配好。我记得第一次装的时候,忘了配License,折腾了一下午才发现是这问题。
- 磁盘空间:至少留 20GB。别问我怎么知道的——装到一半磁盘满了,那叫一个尴尬。
安装步骤(精简版):
- 双击 setup.exe,选择“Install Wind River Workbench”。
- 选择安装路径。建议不要有中文和空格。
- 选择组件:至少勾选“VxWorks 6.x/7.x Support”和“Target OS Support”。
- 配置 License Server 或导入 License 文件。
- 完成安装,重启。
⚠️ 注意:如果你用的是 Workbench 4.x,记得先装好 Java 8。Workbench 4.x 对 Java 版本很敏感,版本不对直接闪退。我曾经因为这个重装了三次系统……后来才发现是 Java 版本问题。
2.2 BSP配置——选对板子,少走弯路
BSP(Board Support Package)就是板级支持包。它负责把VxWorks内核和你的硬件板子“牵线搭桥”。
BSP里都有啥?
| 文件/目录 | 作用 |
|---|---|
| config.h | 板级配置,比如内存大小、时钟频率 |
| makefile | 编译规则 |
| sysLib.c | 系统初始化函数 |
| romInit.s | 启动汇编代码 |
配置BSP的步骤:
- 找到对应BSP:在 Workbench 里,File → New → VxWorks Image Project,选择你的板子型号。如果没有,就去 Wind River 官网下载。
- 修改 config.h:这是最核心的一步。你需要配置:
RAM_HIGH_ADRS和RAM_LOW_ADRS:内存地址范围。CLOCK_RATE:系统时钟频率。INCLUDE_xxx:需要包含的组件,比如网络、文件系统。
- 编译BSP:右键项目 → Build Project。如果报错,先看是不是路径有中文。
💡 我的经验:配置BSP时,config.h 里的 INCLUDE_END 一定要打开。否则你的网卡驱动根本跑不起来。我有个项目,调试了三天才发现是这玩意儿没开……
2.3 VxWorks Image生成——选对类型,事半功倍
VxWorks Image 就是最终烧到板子上的那个二进制文件。根据你的需求,有三种常见类型:
| Image类型 | 适用场景 | 特点 |
|---|---|---|
| vxWorks(RAM型) | 调试阶段 | 通过网线或串口加载,方便修改 |
| vxWorks_rom(ROM型) | 产品发布 | 直接烧到Flash,上电就跑 |
| vxWorks_romCompress(压缩ROM型) | Flash空间紧张 | 启动时自解压,稍慢但省空间 |
生成步骤:
- 在 Workbench 里,右键你的 Image 项目 → Build Project。
- 选择 Build Spec:比如
vxWorks或vxWorks_rom。 - 点击 Build。等待编译完成。
- 在
default/目录下找到生成的vxWorks文件。
🔧 调试阶段我建议:先用 RAM 型 Image。这样每次修改代码后,只需要重新编译,然后通过网络加载到板子上,不用反复烧写 Flash。省时间,也省 Flash 寿命。
2.4 目标机连接与调试——连不上?先查这三样
Image 生成好了,接下来就是连目标机。这一步最容易出问题。我总结了一个“三板斧”排查法:
- 网络通不通?在主机上 ping 目标机的 IP。如果不通,先查网线、IP 地址、子网掩码。
- Target Server 配对了没?在 Workbench 里,Window → Show View → Target Management。右键 → New Target Server。配置:
- Back End:选择
wdbrpc(网络调试)或wdbcom(串口调试)。 - Target Name/IP:填目标机的 IP 地址。
- Image File:选择你刚才生成的
vxWorks文件。
- Back End:选择
- WDB Agent 启动了没?目标机上的 VxWorks 必须包含
INCLUDE_WDB组件。否则 Target Server 连不上。
⚠️ 避坑指南:我曾经遇到一个情况——Target Server 显示“Connected”,但一调试就断。查了半天,发现是目标机的防火墙把 WDB 端口(默认 17185)给封了。关掉防火墙,问题解决。
调试操作:
- 连接成功后,在 Workbench 里打开 Debug 视图。
- 可以设置断点、单步执行、查看变量。
- 用
WindSh命令行工具,直接输入 C 函数名就能调用。比如taskShow()查看所有任务。
💡 小技巧:调试时如果发现代码修改后没生效,先检查 Image 文件有没有更新。有时候 Workbench 缓存了旧文件,需要手动 Clean 一下再 Build。
2.5 总结——环境搭好了,后面就顺了
嗯,到这里,你的开发环境就搭好了。Workbench 装好了,BSP 配好了,Image 生成了,目标机也连上了。
说实话,环境搭建这一步确实有点繁琐。但只要你按我上面说的来,基本不会出大问题。如果真遇到奇怪的问题,别慌——先查网络,再查配置,最后查组件。
下一章,咱们就开始写第一个驱动了。到时候你会发现,环境搭好了,写代码其实挺爽的。
公众号:蓝海资料掘金营,微信deep3321