VxWorks Software Development Kit (SDK)

The VxWorks® real-time operating system is now available via one-click download under a non-commercial license agreement (NCLA). You can use this download to develop real-time applications for non-commercial use such as innovation projects and educational purposes.

Features include:

  • VxWorks APIs for in-kernel and user-level real-time-process (RTP) use
  • Ability to debug from the kernel shell, from command line, and from Microsoft VS Code
  • Ability to build other labs.windriver.com projects, including OpenCV

More details about VxWorks are available on Wikipedia.org.

For commercial product information about VxWorks, visit: VxWorks.

SUPPORTED PLATFORMS

  • QEMU (x86-64)
  • QEMU (sabrelite)
  • Raspberry Pi 4B
  • UP Squared
  • NXP i.MX 8M Quad Evaluation Kit (EVK)
  • Microchip Polarfire SoC Icicle Kit (RISC-V)
  • Sifive Hifive Unleashed (RISC-V)
  • Sifive Hifive Unmatched (RISC-V)

Maintainer: Dan Milea (dan.milea@windriver.com)

Your use of the VxWorks SDK is subject to the non-commercial use license agreement that accompanies the software (the “License”). To review the License, please read the file NCLA.txt which can be viewed from a browser here: Non-Commercial License Agreement.

By downloading, installing or using the software, you acknowledge that you have read, understand, and are agreeing to the terms of the License. Subject to the License, you can proceed to download the VxWorks SDK.

VxWorks SDKs based on VxWorks release 22.03 are compatible with the Visual Studio Code - Wind River Studio extension (version 2.2.0) available here: Wind River Studio - Visual Studio Marketplace.

VxWorks SDKs based on VxWorks release 21.11 are compatible with the Visual Studio Code - Wind River Studio extension (version 1.12.0) available here: Wind River Studio - Visual Studio Marketplace.

VxWorks SDKs based on VxWorks releases prior to 21.03 are available here.

Release Version VxWorks Version SHA256 Release Date Getting Started
VxWorks SDK for IA - QEMU (x86-64) 1.14 24.03 CHECKSUMS 2024-03-27 README
VxWorks SDK for Raspberry Pi 4 1.6 24.03 CHECKSUMS 2024-03-27 README
VxWorks SDK for RISC-V - QEMU (HiFive Unleashed) 1.4 24.03 CHECKSUMS 2024-03-27 README
VxWorks SDK for IA - QEMU (x86-64) 1.13.2 23.09 CHECKSUMS 2023-11-09 README
VxWorks SDK for Raspberry Pi 4 1.5.1 23.09 CHECKSUMS 2023-11-09 README
VxWorks SDK for IA - QEMU (x86-64) 1.12.1 23.03 CHECKSUMS 2023-08-25 README
VxWorks SDK for IA - QEMU (x86-64) 1.11 22.09 CHECKSUMS 2022-12-14 README
VxWorks SDK for Raspberry Pi 4 1.4 22.03 CHECKSUMS 2022-03-17 README
VxWorks SDK for RISC-V - Microchip Polarfire SoC Icicle Kit 1.3 22.03 CHECKSUMS 2022-03-17 README
VxWorks SDK for RISC-V - HiFive Unmatched 1.1 22.03 CHECKSUMS 2022-03-17 README
VxWorks SDK for RISC-V - QEMU (HiFive Unleashed) 1.3 22.03 CHECKSUMS 2022-03-17 README
VxWorks SDK for IA - QEMU (x86-64) 1.10 22.03 CHECKSUMS 2022-03-17 README
VxWorks SDK for IA - QEMU (x86-64) - Windows 1.10 22.03 CHECKSUMS 2022-06-10 README
VxWorks SDK for Raspberry Pi 4 1.3.1 21.11 CHECKSUMS 2022-01-25 README
VxWorks SDK for RISC-V - Microchip Polarfire SoC Icicle Kit 1.2 21.11 CHECKSUMS 2022-01-25 README
VxWorks SDK for RISC-V - QEMU (HiFive) 1.2 21.11 CHECKSUMS 2022-01-25 README
VxWorks SDK for IA - QEMU (x86-64) 1.9 21.11 CHECKSUMS 2022-01-25 README
VxWorks SDK for RISC-V - HiFive Unmatched 1.0 21.07 CHECKSUMS 2021-11-11 README
VxWorks SDK for RISC-V - Microchip Polarfire SoC Icicle Kit 1.1 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for RISC-V - QEMU (HiFive) 1.1 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for IA - QEMU (x86-64) 1.8 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for IA - UP Squared 1.9 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for Raspberry Pi 4 1.2 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for QEMU (sabrelite) 1.5 21.03 CHECKSUMS 2021-04-26 README
VxWorks SDK for NXP i.MX 8M Quad Evaluation Kit (EVK) 1.4 21.03 CHECKSUMS 2021-04-26 README

Application development support for Wind River Studio

Notices

OSS

Does the NCLA allow for the usage of the SDK as part of a github action to compile an open source proejct? The action would download the sdk, extract it, and build an open source project to make sure the code compiles and keeps compiling with VxWorks.

Yes, the VxWorks SDK NCLA allows this type of usage.

Thanks for the confirmation, would be interesting to try that out, use the SDK to compile open source code for VxWorks through github actions.

Cannot run Python on the latest release of VxWorks SDK.
Python can be run before this release and RUST support is added to this release.

The following are the SDK that confirmed habing problem running Python

Release 					Version VxWorks Version SHA256 		Release Date 	Getting Started
VxWorks SDK for Raspberry Pi 4 			1.4  	22.03 		CHECKSUMS  	2022-03-17 	README 
VxWorks SDK for IA - QEMU (x86-64) - Windows 	1.10  	22.03 		CHECKSUMS  	2022-06-10 	README

Users would like to run Python on VxWorks SDK

Please verify that the sysroot directory is copied correctly to the SD card. When doing the copy from the console, make sure to include the -L flag (always follow symbolic links in SOURCE).

E.g. cp -rL wrsdk-vxworks7-raspberrypi4b/vxsdk/sdcard/sysroot /media/dan/BA95-FF39/

This is a log section showing how to start Python on a Raspberry Pi 4 target running the VxWorks kernel from the 22.03 release of the RPi4 SDK. It’s important to include the rtpSpStackSize=0x1000000 step, as mentioned in the RPi4 SDK documentation.

-> rtpSpStackSize=0x1000000
rtpSpStackSize = 0xffffffff80c33230: value = 16777216 = 0x1000000
-> cmd
[vxWorks *]# cd /sd0a/
[vxWorks *]# python3
Launching process 'python3' ...
Process 'python3' (process Id = 0xffff8000004b6270) launched.

Python 3.9.5 (default, Mar 15 2022, 17:57:20) 
[Clang 12.0.1.2 (http://bitbucket.wrs.com/scm/llvm/clang.git 6953a165f54ad1a885 on vxworks
Type "help", "copyright", "credits" or "license" for more information.
>>> >>> import os;os.name
'posix'
>>> import sys;sys.platform
'vxworks'
>>> 
>>> 
>>> ^D
[vxWorks *]# 
[vxWorks *]#

Hi Dan

To prepare a new SD card (8GB) for VxWorks rpi image, do I need to format the first partition to FAT32 and mark it as bootable and the second partition also in FAT32 for all those VxWorks image files (u-boot-64.bin, sysroot etc) or, I could simply format the whole 8GB block as FAT32 and mart it as bootable?

John

You can format the whole SD card as FAT32 and just copy the files. The bootable flag is not really necessary. Keep in mind to use the -L flag (always follow symbolic links in SOURCE) if using cp (or -L’s equivalent for other tools) when copying sysroot to the SD card.

Dan

Dan

Unfortunately after numerious attempts I am still not able to get VxWorks bootup on Rpi-4b (1GB RAM). The terminal screen is blank, not a single character was received, not to say a u-boot message.

I am using the VxWorks Rpi image 1.4 under Debian 12.

Below snippets list my procedures to do it:

$ sudo apt install python3-pip
$ sudo pip install python3-pyftpdlib
$ sudo apt install build-essential
$ sudo apt install gcc-aarch64-linux-gnu
$ sudo apt install libc6-dev-i386 flex bison bc libssl-dev
$ git clone https://gitlab.denx.de/u-boot/u-boot.git
$ cd u-boot
$ git checkout v2020.07
$ sudo apt install gcc-aarch64-linux-gnu
$ CROSS_COMPILE=aarch64-linux-gnu- make rpi_4_defconfig
$ CROSS_COMPILE=aarch64-linux-gnu- make

cp ~/u-boot/u-boot.bin /media/john/87C4-391B/u-boot-64.bin
cp -r ~/Downloads/firmware-1.20200212/boot/* /media/john/87C4-391B/ 
cp -rLu ~/Downloads/wrsdk-vxworks7-raspberrypi4b/vxsdk/sdcard/* /media/john/87C4-391B/ 
cp ~/Downloads/wrsdk-vxworks7-raspberrypi4b/vxsdk/bsps/rpi_4_0_1_3_0/uVxWorks /media/john/87C4-391B/

By running all these commands I could see files and folders in sd card (card_content.png).

As you can see bootcode.bin is there which I assumed the Rpi will load this with config.txt then pointing to u-boot-64.bin (with kernel=u-boot-64.bin).

Installing the card to Rpi, connect a FTDI-based RS232 converter, launch a serial terminal with 115200bps 8-N-1, the screen was blank. No message is received.

What can go wrong?

John

Remarks: I crossed check with another card to create a Rpi boot card with Raspberry Image Writer and I could confirm my hardware is working normal. Boot messages came out properly from my pi.

Hi John,

The first thing I’d try is reuse the filesystem on SD card which you said works, i.e. the one with output on the serial console. Copy config.txt and uboot.env from vxsdk/sdcard to the 1st partition of the SD card. You’ll also have to copy the u-boot binary and the uVxWorks kernel to the same location, and then try to boot this SD card on your RPi4.

If this still fails, there must be a problem with u-boot. I’d also try the latest version of u-boot too, just to see if things change for the better.

I hope this helps!
Dan

Dan

With only four files you hinted to the 1st partition of the SD card, at least it boots up. The screenshot is attached.

U-boot 2020.07 seems doing OK. Pi hardware is also OK.
The boot procedure is now entering an endless loop of find the ethernet PHY something. I think it is because the VxWorks image copying is not complete yet.

John

John,

The log you shared shows an issue with the SD card, so the u-boot configuration file which includes the instructions to automatically boot VxWorks was not loaded from the SD card.

Assuming the SD card does not have any issues, copying config.txt, uboot.env, the u-boot binary and uVxWorks to the 1st FAT32 partition of the SD card (or to any SD card which only has a FAT32 partition) would result in an SD card able to boot VxWorks.

I’m just guessing now, but how are you powering the Raspberry Pi?

Regards,
Dan

Dan,

I am powering the Rpi by a USB typeC to POWER IN port, and the cable is the same cable I use to boot native Rpi image.

Do you mean config.txt was not loaded? I also realized the following messages on terminal:

Card did not respond to voltage select!
....
missing environment veriable: bootfile
...
Config file not found

Although I could open, read, and edit config.txt by a Windows PC and the other Debian workstation but it seems my Rpi does not like it.
May be I could try another 8GB card to see.

John

The “No partition table - mmc 0” and “Card did not respond to voltage select” point to an SD card issue rather than an incomplete copy of uVxWorks.

I’d run fsck on the SD card to rule out any file system issues, and if the mmc errors still show up in the u-boot log, I’d switch to another SD card.

Regards,
Dan

After some exploration, I’ve found that VxWorks supports two modes of compilation: DKM (Downloadable Kernel Module) and RTP (Real-Time Process). This explains why certain libraries in the kernel directory are inaccessible depending on the mode. Given this, I’m trying to understand how to compile a Rust program in DKM mode. or in calling functions such as kernelTimeSlice. Could you provide guidance on how to achieve this? For reference, you can find my current progress in this GitHub repository

I am currently using the QEMU SDK.

1 Like

On VxWorks Rust is only supported for user mode applications (RTPs). Most of the APIs are available both in user-space and in kernel-space though.

I use RPI4B and want to try 1.5.1(V2023.09) and I checkout my u-boot to V2023.10. And My firmware is 1.20230405.
But after I finish my image and power my RPI4 on, It block after those show

(I use hdmi to connect with my screen, serial can not display anything at the same time)

I have solve it. Change from HDMI to Serial port, display will be ok.

The download links don’t work anymore