Skip to content

mdepx/mdepx

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

mdepx (also known as MDX or Machdep X) is an operating system for embedded applications.

Key features

  • 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

ISA supported

  • 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

Platforms supported

  • Raspberry Pi Pico
  • Nordic Semiconductor nRF5, nRF9
  • STMicroelectronics STM32
  • Microchip PIC32
  • SiFive
  • some others...

Emulators support (see emul/)

  • qemu/riscv64c128 CHERI Pure Capability Mode
  • qemu/riscv64 SMP
  • qemu/riscv32 SMP
  • qemu/mips64c128 CHERI Hybrid and Pure Capability Modes
  • qemu/mips64

Featured applications (external)

Getting started

See documentation.

Contributing

Please submit pull requests on github or send patches to [email protected].

Note that mdepx uses FreeBSD style(9) guide.

License

This project is licensed under two-clause BSD license.