VxWorks 7 SDK 在Ubuntu Linux开发RTP 应用程序

介绍

VxWorks 7 SDK是一个专用于VxWorks的开发环境。 应用程序开发人员,其中包括以下功能:

基于 CLANG/LLVM 的标准交叉编译工具,可以是 用于构建可下载内核模块 (DKM) 和 RTP(实时) 过程)应用程序
简化的构建管理:生成文件、CMAKE、滚动自己的构建
特定于目标/体系结构:包括通用的 VxWorks 内核 可在目标平台上启动
用于应用程序开发的头文件和库
风河调试器 (wrdbg)
文档
本指南可帮助您启动并运行开发应用程序 适用于运行 VxWorks 的平台。您可以使用它来创建新的 应用程序,或者只是探索 VxWorks 功能。

设置 开发环境

您应该首先为您的平台下载VxWorks SDK。 从 https://labs.windriver.com 和拆包中选择。指 有关其他信息,请参阅解压缩 SDK 中的文档中的文档 关于创建和调试应用程序。
在这里插入图片描述

操作系统要求

SDK 旨在在 Linux 主机上运行。中的一些示例 本文档是专门针对 Debian 衍生品的。

先决条件

主机依赖关系

在 Debian 衍生产品上,需要以下软件包 安装:

$ sudo apt install build-essential libc6:i386

在开发主机上安装 FTP 服务器将使 应用程序部署更容易,并允许您访问主机文件 来自 VxWorks 目标的系统。

适应 VxWorks 的不同运行时配置 内核映像包含在 SDK 中,您可能有兴趣使用 基于 pyftpdlib 的 FTP 服务器选项。

安装 pyftpdlib:

$ sudo apt install python-pip
$ sudo pip install pyftpdlib

使用用户“目标”在端口 21 上启动本地 FTP 服务器,并且 密码“vxtarget”和FTP根在当前用户的家中可以完成 如下

$ sudo python -m pyftpdlib -p 21 -u target -P vxTarget -i 127.0.0.1 -d $HOME

在这里插入图片描述

运行 VxWorks 内核和使用 SDK 创建的应用程序 需要安装 QEMU

sudo apt install qemu-system-x86

在QEMU (IA)上引导VxWorks

QEMU 可用于运行 SDK 中包含的 VxWorks 内核,并 部署 VxWorks 应用程序。

首先打开一个 Linux 终端窗口并转到 您解压缩的 VxWorks SDK。以下命令可用于启动 VxWorks 来宾在 QEMU。

$ qemu-system-x86_64 -m 512M -kernel vxsdk/bsps/itl_generic_3_0_0_3/vxWorks \
-net nic -net user,hostfwd=tcp::1534-:1534,hostfwd=tcp::2345-:2345 \
-display none -serial stdio -monitor none \
-append "bootline:fs(0,0)host:vxWorks h=10.0.2.2 e=10.0.2.15 u=target pw=vxTarget o=gei0" 

在这里插入图片描述

自定义用户 (u) 和密码 (pw) 参数的值 到与开发主机上的有效 FTP 用户匹配的用户将 允许您从 VxWorks 实例访问主机文件系统 在QEMU运行。VxWorks 实例将有权访问根目录 文件夹。

应用开发

首先打开一个 Linux 终端窗口并转到 您解压缩的 VxWorks SDK。
在使用SDK之前,请先获取SDK开发环境。

$ source sdkenv.sh

命令行中的应用程序

VxWorks 编译器驱动程序 (wr-cc/wr-c++) 实用程序允许您调用 用于编译实时流程 (RTP) 应用程序的 VxWorks 工具链 从命令行。SDK 开发环境包括一组 环境变量(CC,CXX,CPP等)与各种匹配 编译器驱动程序实用程序。
1、创建一个 C 源文件 foo.c:

#include <stdio.h>

int main(void)
    {
    printf("hello, world!\n");
    return 0;
    }

2、编译源文件 foo.c 以创建实时进程 应用。

$ wr-cc -rtp foo.c -static -o foo.vxe

或者

$ $CC -rtp foo.c -static -o foo.vxe

或者,您也可以创建一个生成文件,然后将 make 调用到 编译源文件。

all:
    $CC -rtp foo.c -static -o foo.vxe
$ make

开发应用程序 使用 CMake

默认情况下,生成的 VxWorks SDK 包含 CMake。当 应用程序开发人员获取 SDK 环境,他们将 自动访问 CMake。无需下载, 单独安装和配置 CMake。使用 VxWorks CMake,您可以 生成生成的 SDK 中包含的现有 CMake 示例,或 您可以创建自己的项目。

CMake 示例可以在目录 /examples/rtp/hello_cmake_rtp 和 /examples/dkm/hello_cmake_dkm 中找到。
1、 创建一个名为 my_project 的项目目录。

$ mkdir my_project

2、在项目文件夹中创建 CMakeLists.txt 文件。
3、若要生成项目,请运行以下命令:

$ cmake -D CMAKE_TOOLCHAIN_FILE=${WIND_SDK_HOME}/vxsdk/sysroot/mk/rtp.toolchain.cmake .

注意:示例中使用了 RTP。如果你愿意 要改为生成 DKM 项目,请将工具链名称更改为 dkm.toolchain.cmake.

运行应用程序

使用用户“目标”和密码在端口 21 上启动 FTP 服务器 “vxtarget”和当前用户家中的FTP根目录。

$ sudo python -m pyftpdlib -p 21 -u target -P vxTarget -d $HOME &

在目标上启动VxWorks后,切换到“cmd”外壳 将允许您导航到应用程序的位置 更轻松。

-> cmd
[vxWorks *]# 

将应用程序放置在可通过FTP访问的位置将使 它对 VxWorks 实例进行最少的配置即可看到。

假设应用程序位于 H O M E / o p t 和 F T P 服务器中使用提供对 HOME/opt和FTP服务器中 使用提供对 HOME/optFTP服务器中使用提供对HOME的 FTP 访问的最小配置:

[vxWorks *]# cd 你创建的foo.c源文件的目录
[vxWorks *]# ls
foo.vxe
hello.c
[vxWorks *]# more hello.c
#include <stdio.h>

int main(int argc, char **argv) {
    printf("Hello World\n");
    return 0;
}
[vxWorks *]# foo.vxe
Launching process 'hello' ...
Process 'hello' (process Id = 0xffff8000004bb6e0) launched.
Hello World

创建和 部署 Python 应用程序

SDK 附带的 VxWorks 映像包含所有 在 VxWorks 上运行 python 应用程序的先决条件。

从cmd shell启动Python以打印Hello World! 字符串:

[vxWorks *] cd /usr
[vxWorks *]# python3
Launching process 'python3' ...
Process 'python3' (process Id = 0xffff800000641380) launched.
Python 3.8.0 (default, Feb  2 2021, 19:28:52) 
[Clang 10.0.1.1 (http://gitlab.devstar.cloud/compilers/llvm/clang.git 5449acbae on vxworks
Type "help", "copyright", "credits" or "license" for more information.

>>> import sys
>>> print("Hello World!")
Hello World!
>>> print (sys.platform)
vxworks
-> rtpSpStackSize=0x1000000
rtpSpStackSize = 0xffffffff8bb16478: value = 16777216 = 0x1000000
-> cmd


[vxWorks *]# python3
Launching process 'python3' ...
Process 'python3' (process Id = 0xffff800000316590) launched.
Python 3.9.5 (default, Apr  4 2023, 11:25:54) 
[Clang 15.0.0.1 (git://yow-cngitmirror-prod.wrs.com/llvm/clang.git 0e5f6dacb5bf on vxworks
Type "help", "copyright", "credits" or "license" for more information.
>>> 

在这里插入图片描述

Python 脚本可以执行为

[vxWorks *] python3 helloworld.py

Hello World!

在这里插入图片描述

注意:如果你从 shell 启动 Python,你可能会 需要在启动 Python 之前设置 rtpSpStackSize 的值(对于 例如,将 rtpSpStackSize 设置为 0x1000000)。有关详细信息,请参阅 rtpSp( ) 在 API 参考中。

参考链接

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值