Skip to content
/ cbaos Public

Simple microcontroller OS, with priority-based preemptive scheduling. Currently ported to a few ARM Cortex-Mx chips.

License

Notifications You must be signed in to change notification settings

domenpk/cbaos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

a07960e · Nov 20, 2017

History

15 Commits
Nov 15, 2017
Nov 15, 2017
Sep 9, 2016
Nov 15, 2017
Jan 26, 2011
Nov 15, 2017
Nov 15, 2017
Nov 20, 2017
Nov 15, 2017
Nov 19, 2017
Nov 15, 2017
Nov 15, 2017
Sep 9, 2016
Nov 10, 2017
Jan 26, 2011
Nov 15, 2017
Nov 10, 2017
Nov 15, 2017
Jan 26, 2011

Repository files navigation

cbaos

Simple microcontroller OS, with priority-based preemptive scheduling. Currently ported to a few ARM Cortex-Mx chips.

This is not a serious project, so if you use it be prepared to fix whatever is broken. It is "from scratch", its own CRT, linker scripts, libc - code has no external dependencies. Might be useful for learning about microcontroller bring-up.

Requirements

You'll need:

  • scons
  • arm-none-eabi- toolchain

Usage

./scripts/use_config.py configs/config_qemu_netduino2.py 
scons
./scripts/qemu_netduino2.sh

Or use a real target and flash cbaos.{elf,hex,bin} to your microcontroller.

Design

Some ideas stolen from Linux kernel:

  • Tickless scheduler
  • Coding style
  • Device driver model

What works

  • Last used target architecture should work
  • QEMU for netduino2 target

TODO

  • Automated testing for all targets (at least compile)
  • Add support for newlib
  • 64-bit systick (no wraparound worries)
  • Timer support

Contributing

Pull requests gladly accepted, although there might be some delay.

Do note the project is licensed WTFPL (public domain equivalent).

About

Simple microcontroller OS, with priority-based preemptive scheduling. Currently ported to a few ARM Cortex-Mx chips.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published