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.