Visit phoenix-rtos on GitHub

The simplest way to create the operating system distribution is to download the https://github.com/phoenix-rtos/phoenix-rtos-project, define the target platform and build the final image. To get detailed instruction how to use the image on the target platform please use the following combo box.

ia32-virtualbox

This version is designated for PC based on IA32 processor emulated in VirtualBox. It consist of GRUB bootloader, kenel, tty driver, ata driver with ext2 filesystem support and tcpip stack.

The easiest way to run Phoenix-RTOS directly from the image is to download and import image into the VirtualBox.

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 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). The following command uploads Phoenix-RTOS kernel and executes uart driver, RAM fs - dummyfs and phoenix shell - psh.

phoenixd --upload --kernel phoenix-arm-imx.img --console phoenix-rtos-devices/imx6ull-uart --initrd phoenix-rtos-filesystems/dummyfs -x libphoenix/psh

Below you will find an example of upload and execution of Phoenix-RTOS with POSIX compatibility and ash shell.

phoenixd --upload --kernel phoenix-arm-imx.img --console phoenix-rtos-devices/imx6ull-uart --initrd phoenix-rtos-filesystems/dummyfs -x phoenix-rtos-posixsrv/posixsrv busybox/busybox=ash

Binaries

armv7-imxrt

Binaries

armv7-imxrt1170

Binaries

armv7-stm32l

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"

Binaries

riscv64-spike

This port is now under development.

RISC-V is a new open architecture developed at Berkeley becoming the new standard for IoT applications. To compile Phoenix-RTOS for this architecture, tools from http://github.com/riscv/ should be downloaded and compiled.

Two tools are required - Spike, a RISC-V ISA Simulator and bbl (Berkeley Boot Loader) which is the part of RISC-V Proxy Kernel. The bbl loader works in the Machine Mode, prepares the environment for the kernel, switches the processor into the Supervisor Mode and finally passes control to the kernel. The first step before boot is to compile the loader with the proper payload (path to the kernel in ELF format).

cd riscv/riscv-pk/build

CC=/opt/local/bin/riscv64-unknown-elf-gcc RANLIB=/opt/local/bin/riscv64-unknown-elf-ranlib READELF=/opt/local/bin/riscv64-unknown-elf-readelf AR=/opt/local/bin/riscv64-unknown-elf-ar OBJCOPY=/opt/local/bin/riscv64-unknown-elf-objcopy ../configure --prefix=/opt/local --host=riscv64 --with-payload=../../../phoenix-rtos-kernel/phoenix-riscv64.elf

make

The last step of compilation is embedding the kernel into the bbl loader. After compilation the loader with embedded kernel is ready to run in Spike simulator. To run kernel in simulator the following commands shall be used.

cd riscv/riscv-pk/build

spike ./bbl

After each kernel compilation the embedding process should be repeated by remaking the loader.

Kernel can be run in qemu-riscv64 emulator as well. To do it following command should be use:
qemu-system-riscv64 -machine spike_v1.10 -nographic -kernel ./bbl
To run Phoenix-RTOS on VirtIO compatible RISCV platform:
qemu-system-riscv64 -machine virt -nographic -kernel ./bbl

Binaries

riscv64-k210

This port is now under development.

RISC-V is a new open architecture developed at Berkeley becoming the new standard for IoT applications. To compile Phoenix-RTOS for this architecture, tools from http://github.com/riscv/ should be downloaded and compiled.

Two tools are required - Spike, a RISC-V ISA Simulator and bbl (Berkeley Boot Loader) which is the part of RISC-V Proxy Kernel. The bbl loader works in the Machine Mode, prepares the environment for the kernel, switches the processor into the Supervisor Mode and finally passes control to the kernel. The first step before boot is to compile the loader with the proper payload (path to the kernel in ELF format).

cd riscv/riscv-pk/build

CC=/opt/local/bin/riscv64-unknown-elf-gcc RANLIB=/opt/local/bin/riscv64-unknown-elf-ranlib READELF=/opt/local/bin/riscv64-unknown-elf-readelf AR=/opt/local/bin/riscv64-unknown-elf-ar OBJCOPY=/opt/local/bin/riscv64-unknown-elf-objcopy ../configure --prefix=/opt/local --host=riscv64 --with-payload=../../../phoenix-rtos-kernel/phoenix-riscv64.elf

make

The last step of compilation is embedding the kernel into the bbl loader. After compilation the loader with embedded kernel is ready to run in Spike simulator. To run kernel in simulator the following commands shall be used.

cd riscv/riscv-pk/build

spike ./bbl

After each kernel compilation the embedding process should be repeated by remaking the loader.

Kernel can be run in qemu-riscv64 emulator as well. To do it following command should be use:
qemu-system-riscv64 -machine spike_v1.10 -nographic -kernel ./bbl
To run Phoenix-RTOS on VirtIO compatible RISCV platform:
qemu-system-riscv64 -machine virt -nographic -kernel ./bbl

Binaries