A Star from Space

RT

RT

Skynet RT is an Apache 2.0 licensed fork of NuttX. See the NOTICE message and HISTORY changelog for additional details.

Emulation

Execute RT binary using QEMU.

./tools/configure.sh qemu-armv7a:nsh kconfig-mconf Kconfig ./tools/mkconfig . > include/nuttx/config.h make -j qemu-system-arm -M virt -device loader,file=nuttx -nographic

Simulation

Run RT as POSIX Application.

./tools/configure.sh sim:nsh kconfig-mconf Kconfig ./tools/mkconfig . > include/nuttx/config.h make -j ./nuttx

Bare Metal

Run RT on Bare Metal like Raspberry Pi Pico 2 (RP2350).

./tools/configure.sh raspberrypi-pico-2:usbnsh kconfig-mconf Kconfig ./tools/mkconfig . > include/nuttx/config.h make -j picotool uf2 convert nuttx.bin nuttx.uf2 --family absolute --offset 0x10000000


CONFIG

Configuration Menu using kconfig.

$ kconfig-mconf Kconfig


HAL

Hardware Abstraction Layer

HAL defines set of include files for CHIPS and BOARDS supported by RT.

rts/ ├── include/ │ ├── arch/ │ │ ├── [chip]/ │ │ └── [board]/

CHIPS

CHIPS folder defines hardware abstractions for CPU or SoC which include GPIO, I2C, SPI, UART and Timer harware definition for SoC built-ins.

ARMv7-M — ARMv7-M 32-bit MCU Profile.
ARMv7-A — ARMv7-A 32-bit Profile.
ARMv8-M — ARMv8-M 32-bit MCU Profile.
ARMv8-A — ARMv8-A 64-bit Profile.
BCM2711 — Broadcom BCM2711.

rts/ ├── hal/ │ ├── chips/ │ │ └── [chip]/ │ │ ├── cpu/ │ │ ├── mmu/ │ │ └── drivers/ │ │ ├── gpio/ │ │ ├── i2c/ │ │ ├── spi/ │ │ ├── uart/ │ │ ├── timer/ │ │ └── misc/

BOARDS

BOARDS folder fefines hardware abstractions for I/O Boards where SoC is placed. Thus the BOARD primitives include by inheritance all CHIP primitives plus Boot, PWM, ADC, Sensors and Power hardware board facilities.

CXD56XX — Sony Spresense.
PICO2 — Raspberry Pi Pico 2.
VIRTIO — QEMU Virtio.
SIM — Simulation.

rts/ ├── hal/ │ ├── boards/ │ │ └── [board]/ │ │ ├── init/ │ │ ├── linker/ │ │ └── drivers/ │ │ ├── gpio/ │ │ ├── i2c/ │ │ ├── spi/ │ │ ├── uart/ │ │ ├── timer/ │ │ ├── misc/ │ │ ├── pwm/ │ │ ├── adc/ │ │ ├── sensors/ │ │ └── power/


KERNEL

RT Kernel.

LDR — ELF/FLAT Binary Loader.
CLK — Clocks and Counters.
IRQ — Interrupts.
SIG — Signaling System.
TIM — Timers.
SCH — Scheduler.
MM — Memory Manager.
MQ — Message Queues.
THR — Threads.
SEM — Semaphores.
ENV — Environment Variables.
TSK — Task Processes.



DRIVERS

Device Drivers.

EEPROM — EEPROM Access.
FDT — Flattened Device Tree.
I2C — I2C Bus.
PCI — PCI/PCIe Bus.
USBDEV — USB Device Driver.
USBHOST — USB Host Driver.
UART — UART Serial Driver.



FS

File Systems.

Virtual — File System (/).
ROM — File System (/etc).
BIN — File System (/bin).


LIBS

Libraries.

LIBC — C Run-Time Library.
LIBM — Mathematical Library.



APPS

Applications.

INIT — RT Init Supervisor.
SH — POSIX Verified Shell.
SKYNET — Skynet Application.