2021-06-04: Bern Kernel v0.2.0

Meeting Information

Subject:Milestone Meeting: Kernel v0.2.0
Date/Time:04.06.2021, 10:00-10:39
Location:MS Teams
Note Taker:Stefan Lüthi

Participants

  • Stefan Lüthi (maintainer)
  • Roger Weber (advisor)

Agenda

  1. Milestone: Kernel v0.2.0
  2. Documentation Structure

Meeting


  1. Milestone: Kernel v0.2.0
    1. Evaluation of milestone objectives:
      1. All issues regarding the milestone are done
      2. A few highlights:
        1. For mutex and semaphore a generic event system was added. The synchronization primitive handles data access, while the event system manages tasks that are waiting for access.
        2. The ARM Cortex-M4 Memory Protection Unit (MPU) features:
          1. 8 regions
          2. Region size from 32B to 4GB in \(2^n\) spacing
          3. 8 equally sized subregions per region (enabled by 8 bit mask)
          4. Region address must be a multiple of region size
          5. Access levels for (un)privileged mode: no access, read-only, read/write
          6. Prevent instruction fetch
      3. The project is on track, no measures have to be taken
    2. Next steps:
      1. Write documentation
      2. Port existing 3D Orientation Demo to Bern RTOS
Action ItemOwnerDue DateDone
Write documentationStefan Lüthi28.06.2021
Port 3D Orientation Demo to Bern RTOSStefan Lüthi28.06.2021
Clean source codeStefan Lüthi28.06.2021
Release Bern RTOS to crates.ioStefan Lüthi28.06.2021

  1. Documentation Structure

    1. Abstract

    2. Introduction

      • Why Bern RTOS
      • Previous work
    3. Design Overview

      • Design Principles (SRS Summary)
      • Architecture
      • Everything the RTOS should do
      • Memory separation
        • syscalls
    4. Implementation Details

      1. Scheduler
        • Preemptive scheduling
        • Task list
      2. Task
        • Data structure
        • Code example for user
      3. Synchronization Primitives
        1. Event System
        2. Mutex
          • What is a Mutex for?
          • Design
          • Code example for user
        3. Semaphore
          • What is a Semaphore for?
          • Design
          • Code example for user
      4. Memory Protection
        • Application segmentation and enforcement
        • Hardware Limitations & trade-off
    5. Results

      1. Demo
      2. Memory footprint and context switch instruction count
    6. Evaluation of objectives

    7. Conclusion and outline for next project

    8. Appendix A: Kernel SRS

    9. Appendix B: GitLab Issue summary

      • Issues solved
      • Weekly work time
  • Structure approved

Next Meeting

according to sprint cycle