RTOS Development and Analysis

Create a basic Real-Time Operating System (RTOS) with priority-based scheduling from scratch for an Arm Cortex M-series MCU. There are some good web-based courses that can serve as a guide: particularly (https://www.state-machine.com/video-course and https://www.udemy.com/course/rtos-building-from-ground-up-on-arm-processors/) Compare timing metrics for this basic RTOS with established open source RTOSs such as FreeRTOS and others. 

Example metrics to be compared are:

  • The timing of context switches between a low and high priority task
  • the amount of time in which interrupts are disabled, though these can be modified per the team's interest.

Any board similar to the following should work:  Arm Cortex M4-based STM32F4 Discovery MCU

 

Objectives


  • Create basic RTOS with priority-based scheduling on ARM Cortex target
  • Create and run sample applications on the MCU with high and low priority task using the three RTOSs
  • Measure context switching performance and interrupt down-time using digital logic analyzer on a GPIO pin
  • Display results graphically
  • Analyze results in short paper

Motivations


Conduct a deep dive into RTOS concepts through building one from scratch. Develop familiarity with FreeRTOS—arguably the most widely used RTOS in embedded applications. Develop facility with digital logic analyzer, an important skill for embedded debugging and performance measuring.

Qualifications


Minimum Qualifications:

OS1, OS2, Experience with Embedded Systems

Preferred Qualifications:
None Listed


Details


Project Partner:

William Pfeil

NDA/IPA:

No Agreement Required

Number Groups:

1

Project Status:

Accepting Applicants

Keywords:
CEmbedded SystemsOperating SystemsAssembly
Card Image Capstone