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
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.
Unless explicitly mentioned otherwise, the host operating system for the VxWorks SDKs is Linux.
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.
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
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 *]#
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?
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.
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.
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.
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.
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.
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?
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.
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 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