第二章 开发环境搭建:Workbench安装、Wind River Linux安装、目标机与主机连接、网络配置
好,咱们正式开始动手。这一章讲的是开发环境搭建,说白了就是把你手里的电脑、开发板和VxWorks系统串起来。我见过不少新手,代码写得挺溜,结果卡在环境搭建上,一卡就是好几天。所以这一章,咱们把每一步都踩实了。
2.1 Workbench安装——IDE的选型与部署
Workbench是Wind River官方的IDE,基于Eclipse。我个人习惯用Workbench 4.0以上版本,对VxWorks 7的支持最稳定。你可能会问,能不能用别的IDE?嗯,理论上可以,但我不建议。因为Workbench集成了内核配置工具、调试器、分析器,这些第三方工具很难完美替代。
安装前检查清单:
- 操作系统:Windows 10 64位或Linux(我推荐Windows,驱动问题少)
- 硬盘空间:至少20GB(实际装完大概8GB,但后续项目会膨胀)
- 内存:8GB起步,16GB更舒服
- Java环境:Workbench自带JRE,不用额外装
安装步骤其实很简单,双击setup.exe,一路Next。但有几个坑我要提醒你:
我曾经遇到过:安装路径带了中文或空格,结果编译时路径解析出错。所以请务必使用纯英文路径,比如 C:\WindRiver\workbench-4.0。
安装完成后,第一次启动Workbench,它会让你选择工作空间(workspace)。我建议单独建一个目录,不要用默认的。比如 D:\VxWorks_Projects。这样重装系统时,项目文件不会丢。
2.2 Wind River Linux安装——为什么需要它?
你可能会想,做VxWorks开发,为什么还要装Linux?其实,Wind River Linux主要用来做两件事:一是编译VxWorks的BSP(有些BSP依赖Linux工具链),二是作为开发主机(尤其是目标机是ARM架构时)。
Wind River Linux本质是一个定制化的Yocto发行版。安装方式有两种:
- 完整ISO安装:适合独立主机,安装过程类似Ubuntu
- 虚拟机安装:我推荐这种方式。在VMware或VirtualBox里跑,快照功能太香了
我的小技巧:虚拟机分配4核CPU、8GB内存、80GB硬盘。网络用桥接模式,这样目标机可以直接访问虚拟机。
安装完成后,记得更新一下包管理器:
sudo apt-get update
sudo apt-get install -y build-essential git wget
为什么要装这些?因为后面编译BSP时,会用到 make、gcc 等工具。有一次我忘了装 build-essential,结果编译到一半报错,查了半天才发现是缺了基础工具链。
2.3 目标机与主机连接——硬件连线与调试接口
目标机就是你的开发板。常见的连接方式有三种:
| 连接方式 | 适用场景 | 速度 | 我的评价 |
|---|---|---|---|
| 串口(RS-232) | 调试输出、早期启动 | 慢(115200bps) | 必备,所有板子都该保留 |
| 以太网 | 文件传输、GDB调试 | 快(100M/1Gbps) | 主力连接方式 |
| JTAG/SWD | 硬件调试、烧写Bootloader | 中等 | 救急用,平时用得少 |
我个人习惯:先用串口看启动日志,等VxWorks跑起来后,切到以太网做后续开发。串口接线很简单:TX接RX,RX接TX,GND接GND。别接反了,接反了没输出,我刚开始就犯过这个错。
串口参数设置(以Tera Term为例):
- 波特率:115200
- 数据位:8
- 停止位:1
- 校验:无
- 流控:无
连上串口后,给开发板上电。如果看到类似 U-Boot 2020.01 的启动信息,说明连接成功了。如果什么也没有,先检查线序,再检查串口驱动是否安装。
2.4 网络配置——让主机和目标机能“说话”
网络配置是环境搭建里最容易出问题的一环。说白了,就是要让主机(你的PC或虚拟机)和目标机(开发板)在同一个网段里,能互相ping通。
我建议用静态IP,别用DHCP。为什么?因为调试时IP地址变了,Workbench里的配置就得跟着改,太麻烦。
假设你的局域网网段是 192.168.1.x,可以这样分配:
- 主机IP:
192.168.1.100 - 目标机IP:
192.168.1.101 - 子网掩码:
255.255.255.0 - 网关:
192.168.1.1(如果不需要上网,可以忽略)
在VxWorks里配置IP,通常是在BSP的 config.h 或 configNet.h 里修改。举个例子:
/* 在 config.h 中 */
#define DEFAULT_BOOT_LINE \
"motetsec(0,0)host:vxWorks h=192.168.1.100 e=192.168.1.101 u=target pw=target o=0x0"
/* 解释一下这行配置:
* motetsec(0,0) —— 使用第0个以太网接口
* host:vxWorks —— 从主机加载vxWorks镜像
* h=192.168.1.100 —— 主机IP
* e=192.168.1.101 —— 目标机IP
*/
我曾经遇到过:配置写对了,但就是ping不通。查了半天,发现是开发板的网口灯没亮——网线没插紧。所以,先检查物理连接,再查软件配置。
配置完成后,在主机上打开命令行,输入:
ping 192.168.1.101
如果通了,恭喜你,环境搭建基本完成。如果没通,按这个顺序排查:
- 网线是否插好?灯亮不亮?
- 主机防火墙是否拦截了ICMP?
- 目标机的IP配置是否生效?(可以在串口里用
ifconfig查看) - 主机和目标机是否在同一个网段?
2.5 验证环境——跑一个Hello World
环境搭好了,总得验证一下。在Workbench里新建一个VxWorks Image Project,选择你的BSP,编译。然后把生成的 vxWorks 镜像通过FTP或TFTP下载到目标机。
在串口终端里,你应该能看到VxWorks的Shell提示符:
->
输入 i 命令,显示所有任务。再输入 version,查看VxWorks版本。如果这些都正常,说明你的开发环境已经跑通了。
我的习惯:第一次跑通后,我会把整个工作空间备份一下。万一后面搞坏了,直接恢复,省得重头再来。
嗯,这一章的内容就到这里。环境搭建虽然琐碎,但它是后面所有开发的基础。你想想看,如果连环境都没搭好,后面写再多代码也跑不起来,对吧?下一章咱们开始讲BSP的结构,那才是真正有意思的部分。