Cortex M

A 14 day proven course to a higher paying career in embedded systems, with deep understanding of ARM Cortex and STM32

Last updated 2022-01-10 | 4

- 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

What you'll learn

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

* Requirements

* Basic knowledge of embedded systems
* STM32 Nucleo development board is recommended
* but not mandatory
* Eager to learn about ARM Cortex-M fundamentals

Description

  • 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

Course content

15 sections • 56 lectures

Important points before you get started Preview 00:44

ARM Cortex Family Preview 03:35

Cortex-M Family Preview 04:47

Acronym ISA (0:28) stands for Instruction Set Architecture.

Cortex-M4 Instruction Set Preview 03:05

ARM vs Thumb instructions quiz

Guidelines Preview 00:23

Overview of the Nucleo F303RE board Preview 04:00

Reference Documents Preview 01:13

All the reference documents that you will need in this course, with descriptions for each of them.

Programmer's Model Preview 06:10

General Registers and Process Specific Registers Preview 04:35

Special Registers Preview 05:36

Lab Session #1 - Programmers Model - General and Special Registers Preview 22:17

Programmers Model Quiz

Lab Session #2 - Programmers Model - xPSR and Control Register Preview 17:56

Attached is the document I use in this lecture to show the definitions of special registers.

Exception Model and Vector Table Preview 18:04

Lab Session #3 - Reset Exception Handler and the Vector Table Preview 08:23

Vector Table Offset Register (VTOR) Preview 04:00

Lab Session #4 - Using VTOR to move vector table to SRAM Preview 20:59

Exception Model Quiz

Core Blocks inside the ARM microcontroller Preview 04:50

Big Endian vs Little Endian Preview 02:49

STM32F3x System Overview, Bus Interface Preview 04:22

How to choose a microcontroller for your project Preview 06:51

Powering up a microcontroller on a breadboard Preview 18:59

Timers and counters Preview 04:01

Prescalers Preview 01:38

PLL - Phase lock loop Preview 02:10

ADC - analog to digital converters Preview 04:11

DAC - Digital to analog converters Preview 02:49

I/O ports Preview 06:11

AC - Analog comparators Preview 01:37

Interrupts Preview 05:11

Reset sequence and watchdog timer Preview 08:09

JTAG - Joint Test Action Group Preview 02:50

A deep dive into UART and its implementation Preview 46:56

Section Introduction Preview 00:16

Setting up the virtual machine Preview 02:57

Setting up Linux OS on the virtual machine Preview 03:29

Setting up the Eclipse development environment Preview 02:39

Setting up the development toolchain Preview 06:10

Creating a blinky project Preview 03:05

Setting up the open source debugger (Part 1) Preview 08:08

Setting up the open source debugger (Part 2) Preview 08:32

Install STCubeMX for generating HAL drivers Preview 05:34

Running the blinky project Preview 06:53

FAQ and Troubleshooting Preview 08:09

Toolchain installation instructions for MacOS users Preview 00:03