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
Hardware Abstraction Layer (HAL) defines set of include files for CHIPS and BOARDS supported by RT operating system. They include rich featrue set of peripheral support such as clock counters and programmable I/O.
rt/
├── 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.
rt/
├── 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.
rt/
├── hal/
│ ├── boards/
│ │ └── [board]/
│ │ ├── init/
│ │ ├── linker/
│ │ └── drivers/
│ │ ├── gpio/
│ │ ├── i2c/
│ │ ├── spi/
│ │ ├── uart/
│ │ ├── timer/
│ │ ├── misc/
│ │ ├── pwm/
│ │ ├── adc/
│ │ ├── sensors/
│ │ └── power/
KERNEL
RT Kernel.
LOADER — ELF/FLAT Binary Loader.
CLOCK — Clocks and Counters.
IRQ — Interrupts.
SIGNAL — Signaling System.
TIMER — Timers.
SCHED — Scheduler.
MEM — Memory Manager.
MQUEUE — Message Queues.
THREAD — Threads.
SEMAPHORE — Semaphores.
ENV — Environment Variables.
TASK — 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.
VFS — Virtual File System (/).
V9FS — Plan 9 File System.
ROMFS — File System (/etc).
BINFS — 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.