1. 创建第一个VxWorks应用工程

任务目标

在VxWorks Workbench中创建一个基于可执行映像(Executable Image)类型的应用工程,编写代码在系统启动后输出Hello World,完成编译并运行验证。

环境准备

  • VxWorks Workbench(本文以Workbench 4.0 / VxWorks 7为例)
  • 已安装对应BSP(板级支持包)的VxWorks镜像工程(Boot ROM + 可引导的VxWorks镜像)
  • 已配置好模拟器(如VxSim)或真实目标板的连接

创建工程步骤

  1. 打开Workbench,选择 File > New > VxWorks Project。
  2. 工程类型选择 Executable Image,点击Next。
  3. 填写工程名(如HelloWorldApp),选择存放路径,点击Next。
  4. 在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");
}

编译与运行

  1. 右键工程,选择 Build Project(或点击工具栏锤子图标)。编译成功后,bin目录下会生成.vxe或.out文件。
  2. 右键工程,选择 Run As > VxWorks Simulator(或VxWorks Target)。
  3. 在Workbench的Target Console窗口中观察输出。

验证方法

  • 编译通过:Console窗口无error,生成可执行文件。
  • 运行输出:在Target Console中看到字符串Hello World,即表示工程创建、编译、运行全链路成功。
创建工程 编写代码 编译 运行 Hello World

常见问题

  • 编译报错找不到stdio.h:检查工程属性中是否包含了INCLUDE_STDIO组件(默认包含)。
  • 运行后无输出:确认helloInit已被系统启动调用;若使用独立任务方式,检查任务优先级和栈大小是否合理。
  • 连接目标失败:在Target Management视图中确认目标连接配置正确,模拟器需先启动VxSim。