1. 创建第一个VxWorks应用工程
任务目标
在VxWorks Workbench中创建一个基于可执行映像(Executable Image)类型的应用工程,编写代码在系统启动后输出Hello World,完成编译并运行验证。
环境准备
- VxWorks Workbench(本文以Workbench 4.0 / VxWorks 7为例)
- 已安装对应BSP(板级支持包)的VxWorks镜像工程(Boot ROM + 可引导的VxWorks镜像)
- 已配置好模拟器(如VxSim)或真实目标板的连接
创建工程步骤
- 打开Workbench,选择 File > New > VxWorks Project。
- 工程类型选择 Executable Image,点击Next。
- 填写工程名(如
HelloWorldApp),选择存放路径,点击Next。 - 在Project Settings中,选择目标BSP(如
vxsim_linux或实际板卡BSP),工具链选择gnu,点击Finish。
核心代码
在工程源码目录下新建文件hello.c,输入以下代码:
#include <stdio.h>
void helloTask(void)
{
printf("Hello World\n");
}
void helloInit(void)
{
/* 创建一个独立任务,避免阻塞系统启动 */
taskSpawn("tHello", 100, 0, 0x2000, (FUNCPTR)helloTask, 0,0,0,0,0,0,0,0,0,0);
}
在工程属性中,将helloInit添加到User Startup(或通过INCLUDE_USER_APPL机制调用)。若使用Workbench的app工程模板,可直接在start函数中调用:
#include <stdio.h>
void start(void)
{
printf("Hello World\n");
}
编译与运行
- 右键工程,选择 Build Project(或点击工具栏锤子图标)。编译成功后,
bin目录下会生成.vxe或.out文件。 - 右键工程,选择 Run As > VxWorks Simulator(或VxWorks Target)。
- 在Workbench的Target Console窗口中观察输出。
验证方法
- 编译通过:Console窗口无error,生成可执行文件。
- 运行输出:在Target Console中看到字符串
Hello World,即表示工程创建、编译、运行全链路成功。
常见问题
- 编译报错找不到stdio.h:检查工程属性中是否包含了
INCLUDE_STDIO组件(默认包含)。 - 运行后无输出:确认
helloInit已被系统启动调用;若使用独立任务方式,检查任务优先级和栈大小是否合理。 - 连接目标失败:在Target Management视图中确认目标连接配置正确,模拟器需先启动VxSim。