在树莓派 3B/3B+上运行VxWorks 7

介绍

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

  • 基于 clang/LLVM 的标准交叉编译工具,可用于构建可下载内核模块(DKM)和 RTP(实时进程)应用程序
  • 简化的构建管理:makefile、cmake、roll-your own
  • 目标/体系结构特定:包括可在目标平台上启动的通用 VxWorks 内核
  • 用于应用程序开发的头文件和库
  • 风河调试器 (wrdbg)
  • 文件

本文介绍如何在树莓派3B/3B+上运行 VxWorks 7以及应用程序。

配置开发环境软件

主机

虚拟机VMware Workstation + Ubuntu 20.02


sudo apt install build-essential libc6:i386

在开发主机上安装 FTP 服务器将使应用程序部署更容易,并允许您从 VxWorks 目标访问主机文件系统。
为了适应 SDK 中包含的 VxWorks 内核映像的不同运行时配置,您可能有兴趣使用基于 pyftpdlib 的 FTP 服务器选项


    sudo apt install python-pip
    sudo pip install pyftpdlib

树莓派3B/3B+

一张大于8GSD卡,格式为FAT32文件系统格式,windows自带格式化工具就行。

下载固件包 ,并将固件包中的boot文件夹下的所有文件复制到SD卡

将SDK 1.4 SDK 1.4 PI3B 下载 下的 bsps/rpi_3_0_1_1_0/boot/scard/ 文件内容复制到SD卡中

下载 u-boot.bin 文件,并重命名为kernel8.img 拷贝到 SD 卡中

在SD卡根目录下创建vx文件夹


mkdir vx

将 VxWorks 内核映像复制到 vx 文件夹中


cp $wrsdk-vxworks7-raspberrypi3b/bsps/rpi_3_0_1_1_0/boot/vxWorks $vx/

最终SD卡目录

将工作机上的USB 转串口连接到树莓派的GPIO 14 和 GPIO 15 用作 UART 发送和接收引脚上
USB转串口 ——–> 树莓派3B+

TXD ——–> GPIO 15
RXD ——–> GPIO 14
GND ——–> GND


sudo apt install minicom
sudo minicom -b 115200 -D /dev/ttyUSB0

这里就基本完成了树莓派3B/3B+ VxWorks7 的系统搭建

HELLOWORLD 应用程序开发(RTP)

首先打开一个 Linux 终端窗口,然后转到解压缩的 VxWorks SDK1.4 开发工具包的位置。
获取 SDK 环境文件以更新 PATH 和环境变量,从而直接访问 SDK 中包含的工具。


source /toolkit/wind_sdk_env.linux 

建立hello_world.c


#include "stdio.h"
int main (
    int	   argc,	/* number of arguments */
    char * argv[]	/* array of arguments */
    ) {
    printf("\n\n\nRTP Hello World!\n\n\n");
    return 0;
}

编译


$CC hello_world.c -static -o hello

可以用U盘将可执行文件hello拷贝至U盘。
同样可以通过网线将主机与树莓派连接在一起使用搭建FTP 进行文件传输而不通过U盘
U盘在其中是bd0

DKM程序HelloWorld

添加环境变量


source /toolkit/wind_sdk_env.linux 

若需要使环境变量开机在任意终端有效,可将环境变量添加到
.bashrc 文件中
在.bashrc 文件最后添加


export  /toolkit/wind_sdk_env.linux
source ~/.bashrc

DKM hello_world.c


#include "vxWorks.h"
#include 


void startHelloWorld(void){
        printf("\n\n\nDKM Hello World!\n\n\n");
}

编译


$CC -dkm hello_world.c -o hello.out

同样用U盘考入
进入命令行使用cmd 命令
同样进入到U盘中使用ld命令 加载hello.out

使用C命令推出命令行模式