Course Highlights
  • In-depth understanding of the ARM Cortex fundamentals
  • Set up a free and open source toolchain on your computer to program, flash and debug ARM based microcontrollers
  • Core register functionality like stack pointers, link registers, program counters, control registers, vector tables
  • Understand different types of exceptions on the ARM Cortex-M processor and what each of them mean
  • Understand different peripherals and how to program them
  • Hardware Abstraction Layer (HAL) Libraries and how to use them
  • Feel confident and comfortable programming applications on the Cortex-M platform
  • What is a programmers model and how it works for an ARM Cortex-M
  • Unprivileged and privileged software execution levels
  • Vector Table Offset Register (VTOR) and its uses
  • Big Endian Format vs Little Endian Format
  • OpenOCD (Open source debugger)
  • STCubeMX Application and how to generate HAL drivers
Curriculum

1 Topic
Important points before you get started

7 Topics
ARM Cortex Family
Cortex-M Family
Cortex-M4 Instruction Set
ARM vs Thumb instructions quiz
Guidelines
Overview of the Nucleo F303RE board
Reference Documents

6 Topics
Programmer's Model
General Registers and Process Specific Registers
Special Registers
Lab Session #1 - Programmers Model - General and Special Registers
Programmers Model Quiz
Lab Session #2 - Programmers Model - xPSR and Control Register

5 Topics
Exception Model and Vector Table
Lab Session #3 - Reset Exception Handler and the Vector Table
Vector Table Offset Register (VTOR)
Lab Session #4 - Using VTOR to move vector table to SRAM
Exception Model Quiz

3 Topics
Core Blocks inside the ARM microcontroller
Big Endian vs Little Endian
STM32F3x System Overview Bus Interface

2 Topics
How to choose a microcontroller for your project
Powering up a microcontroller on a breadboard

7 Topics
Timers and counters
Prescalers
PLL - Phase lock loop
ADC - analog to digital converters
DAC - Digital to analog converters
I/O ports
AC - Analog comparators

3 Topics
Interrupts
Reset sequence and watchdog timer
JTAG - Joint Test Action Group

1 Topic
Setting up the development environment

1 Topic
A deep dive into UART and its implementation

3 Topics
The I2C protocol
I2C open drain
TIMED CHALLENGE: I2C driver development

2 Topics
Project 1 - GPIO Peripheral Driver Development
ADC lab exercise

1 Topic
Project 2 - DAC and TIM Peripheral Driver Development

12 Topics
Section Introduction
Setting up the virtual machine
Setting up Linux OS on the virtual machine
Setting up the Eclipse development environment
Setting up the development toolchain
Creating a blinky project
Setting up the open source debugger (Part 1)
Setting up the open source debugger (Part 2)
Install STCubeMX for generating HAL drivers
Running the blinky project
FAQ and Troubleshooting
Toolchain installation instructions for MacOS users

2 Topics
Guidelines
Closing Notes

  Write a Review

Foundation of Embedded Systems with ARM Cortex and STM32

Go to Paid Course