Kernel

Purpose

  • Define and implement threads, based on coroutines
  • Install the kernel on a core
    • initialise kernel data
    • set up scheduler coroutine
  • Start the scheduler on a core
    • switch to process stack pointer
    • transfer control to the scheduler
  • Allocate code to a thread to execute, configure thread (period, prio)
  • In-thread API, eg.
    • yield control back to scheduler
    • delay (non-blocking)
    • suspend
    • set timeout
    • await device flags set or cleared

See Also

Repository