Section contains binary versions of Phoenix-RTOS modules and filesystem images for supported hardware platforms. They are prepared to simplify the process of the final operating system image creation. Based on provided static and dynamic libraries new applications could be easily developed.

ia32

This version is designated for generic PC based on IA32 processor, it supports Intel Galileo platform as well. This version could be launched using multiboot compliant loader (e.g. GRUB) or native Phoenix-RTOS loader (plo).

The simplest method to run the Phoenix-RTOS operating system is to load the kernel, console driver, fileserver and shell. To do it using qemu emulator just type:

cd phoenix-ia32

qemu-system-i386 -kernel ./phoenix-ia32.elf -serial stdio -m 1 \
  -initrd "./sbin/pc-uart,./sbin/dummyfs,./bin/psh" \
  -append "Xpc-uart Xdummyfs Xpsh"

The example above loads kernel image and other binaries (uart driver, file system and shell) into the initial ram disk. The binaries are executed with accordance to the command line in append option. The execution option is marked with an X in front of the file name, e.g. Xpc-uart will execute previously loaded pc-uart binary.

To run the same version with VGA console output please use kernel compiled with the VGA support and pc-tty driver.

cd phoenix-ia32

qemu-system-i386 -kernel ./phoenix-ia32-vga.elf -serial stdio -m 1 \
  -initrd "./sbin/pc-tty,./sbin/dummyfs,./bin/psh" \
  -append "Xpc-tty Xdummyfs Xpsh"

Due to microkernel, modular architecture Phoenix-RTOS can easily provide UN*X environment. After changing the fileserver to ATA with ext2 support, operating system starts emulation servers and init application.

cd phoenix-ia32

qemu-system-i386 -kernel ./phoenix-ia32.elf -serial stdio \
  -initrd "./sbin/pc-uart,./sbin/ata-ext2" -hda ../phoenix-ia32.ext2 \
  -append "Xpc-uart Xata-ext2 X/bin/init"

To run Phoenix-RTOS directly from the image the following command should be used.

cd phoenix-ia32

qemu-system-i386 --serial stdio -hda ../phoenix-ia32.ext2

Downloads

arm-imx6ull

To run Phoenix-RTOS on development kit the SDP compliant loader is required. Kernel is compiled into the image compliant with iMX ROM loader. It can be loaded via USB using imx-usb-loader but preferred method is to use the phoenixd daemon. It loads kernel and initial applications via USB to OCRAM and supports PHFS protocol which allows to fetch binaries by dummyfs file server when DRAM is initialized.

Kernel command line is passed through the append parameter. In the command line you can use X to mark file for execution and F to mark files that are to be fetched via USB. The output log can be viewed in a console using the UART1 interface (available after conversion as USB on development board).

cd phoenix-arm

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-imx6ull.bin \
  -initrd "./sbin/imx-uart,./sbin/dummyfs" \
  -append "Ximx-uart Xdummyfs F/bin/psh X/bin/psh"

To run Phoenix-RTOS kernel from host computer but with a filesystem mounted from NAND flash.

cd phoenix-arm

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-imx6ull.bin \
  -initrd "./sbin/imx-uart,./sbin/dummyfs" \
  -append "Ximx-uart Xdummyfs F/bin/psh F/etc/rc F/bin/init X/bin/init"

To run Phoenix-RTOS kernel from host computer which upgrades the local storage.

cd phoenix-arm

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-imx6ull.bin \
  -initrd "./sbin/imx-uart,./sbin/dummyfs" \
  -append "Ximx-uart Xdummyfs F/bin/psh F/upgrade.psh X/upgrade.psh"

Downloads

arm-vybrid

To run Phoenix-RTOS on development kit the SDP compliant loader is required. Kernel is compiled into the image compliant with Vybrid ROM loader. It can be loaded via USB using imx-usb-loader but preferred method is to use the phoenixd daemon. It loads kernel and initial applications via USB to OCRAM and supports PHFS protocol which allows to fetch binaries by dummyfs file server when DRAM is initialized.

Kernel command line is passed through the append parameter. In the command line you can use X to mark file for execution and F to mark files that are to be fetched via USB. The output log can be viewed in a console using the UART1 interface (available after conversion as USB on development board).

cd phoenix-arm-vybrid

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-vybrid.bin \
  -initrd "./sbin/vybrid-uart,./sbin/dummyfs" \
  -append "Xvybrid-uart Xdummyfs F/bin/psh X/bin/psh"
To run Phoenix-RTOS kernel from host computer but with a filesystem mounted from NAND flash.
cd phoenix-arm-vybrid

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-vybrid.bin \
  -initrd "./sbin/vybrid-uart,./sbin/dummyfs" \
  -append "Xvybrid-uart Xdummyfs F/bin/psh F/etc/rc F/bin/init X/bin/init"
To run Phoenix-RTOS kernel from host computer which upgrades the local storage.
cd phoenix-arm-vybrid

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-arm-vybrid.bin \
  -initrd "./sbin/vybrid-uart,./sbin/dummyfs" \
  -append "Xvybrid-uart Xdummyfs F/bin/psh F/upgrade.psh X/upgrade.psh"

Downloads

armv7-imxrt

To run Phoenix-RTOS on development kit the SDP compliant loader is required. Kernel is compiled into the image compliant with iMX ROM loader. It can be loaded via USB using imx-usb-loader but preferred method is to use the phoenixd daemon. It loads kernel and initial applications via USB to OCRAM and supports PHFS protocol which allows to fetch binaries by dummyfs file server when DRAM is initialized.

Kernel command line is passed through the append parameter. In the command line you can use X to mark file for execution and F to mark files that are to be fetched via USB. The output log can be viewed in a console using the UART1 interface (available after conversion as USB on development board).

cd phoenix-armv7-imxrt

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-armv7-imxrt.bin \
  -initrd "./sbin/imxrt-uart,./sbin/dummyfs" \
  -append "Ximxrt-uart Xdummyfs F/bin/psh X/bin/psh"
cd phoenix-armv7-imxrt

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-armv7-imxrt.bin \
  -initrd "./sbin/imxrt-uart,./sbin/dummyfs" \
  -append "Ximxrt-uart Xdummyfs F/bin/psh F/upgrade.psh Xupgrade.psh"
cd phoenix-armv7-imxrt

../phoenixd/phoenixd -sdp -root . -kernel ./phoenix-armv7-imxrt.bin \
  -append "Ximxrt-uart Xdummyfs Xpsh"

Downloads

armv7-stm32l152

This is the distribution for STM32L152 architecture. Below an example of binary image upload to the microcontroller using OpenOCD is presented.

openocd -f /usr/local/share/openocd/scripts/interface/jlink.cfg \
  -f /usr/local/share/openocd/scripts/target/stm32l1.cfg \
  -c "program phoenix-rtos.bin 0x08000000 verify reset exit"

Downloads