mdepx (also known as MDX or Machdep X) is an operating system for embedded applications.
- Real-time
- Priority-based time-sliced round-robin scheduling
- Fully preemptible, cooperative scheduling optional
- Tickless operation
- Static/Dynamic memory allocation
- Timed Mutexes, Semaphores
- Symmetric Multiprocessing (SMP)
- BSD libc included
- Flat address space
- ARM Cortex-M family (ARMv7-M, ARMv8-M)
- CHERI128 Hybrid and Pure ABI capability system models
- MIPS32, MIPS64
- RISC-V machine or supervisor modes, rv32, rv64, SMP
- Raspberry Pi Pico
- Nordic Semiconductor nRF5, nRF9
- STMicroelectronics STM32
- Microchip PIC32
- SiFive
- some others...
- qemu/riscv64c128 CHERI Pure Capability Mode
- qemu/riscv64 SMP
- qemu/riscv32 SMP
- qemu/mips64c128 CHERI Hybrid and Pure Capability Modes
- qemu/mips64
- Raspberry Pi Pico
- LTE 4G Link with nRF9160
- CTSRD-CHERI device-model and device-model-riscv
- Other example apps
See documentation.
Please submit pull requests on github or send patches to [email protected].
Note that mdepx uses FreeBSD style(9) guide.
This project is licensed under two-clause BSD license.