Coding BareMetal Scheduler (a RTOS functionality)

Coding BareMetal Scheduler (a RTOS functionality)

Description

This course tries to perform hands on coding to build, flash and debug a simple program to run on STM32F446RE Nucleo Board. It explains the ARM M4 microcontroller start-up process and walks though Assembly and C code to bring up the microcontroller.

A prior knowledge of C is preferable, this is a self contained beginner friendly approach to introduce concepts by writing simple and complete functional code that works on a Nucleo Board.

We will learn the following as we code through this course.

  • Essentials
    • Essential Reference Documents – STM32F446 Datasheet, Programming Manual and Reference Manual
    • Usage of opensource tools. A lot of documentation is available in public for these tools and can be used free of cost. Tool set-up is not covered here.
    • Elaborates ARM Microcontroller start-up process.
  • Code following for minimal baremetal code
    • Linker File
    • Start-up Assembly Code
    • Makefile
    • C code sections and how to prepare microcontroller to C code compiled with GCC.
    • Flashing with OpenOCD
    • Debugging and tracing code with GDB
  • Extending Code
    • Extending C code to blink LED
    • Extending C code to transmit and receive via UART for a terminal user interface.
  • Context switch
    • Overview of interrupts, interrupt vector table, Registers.
    • Context switch basics and Task Control Block
    • Coding context switch and creation and and deletion of tasks.
  • Software Concepts
    • Also uses finite state machine for Tasks.

Leave a Reply