Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging
4.4 (2,399 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
13,955 students enrolled

Mastering RTOS: Hands on FreeRTOS and STM32Fx with Debugging

Learn Running/Porting FreeRTOS Real Time Operating System on STM32F4x and ARM cortex M based Mircocontrollers
4.4 (2,399 ratings)
Course Ratings are calculated from individual students’ ratings and a variety of other signals, like age of rating and reliability, to ensure that they reflect course quality fairly and accurately.
13,955 students enrolled
Last updated 7/2020
English, French [Auto], 10 more
  • German
  • Indonesian
  • Italian
  • Japanese
  • Polish
  • Portuguese
  • Romanian
  • Spanish
  • Thai
  • Turkish
Current price: $23.99 Original price: $34.99 Discount: 31% off
5 hours left at this price!
30-Day Money-Back Guarantee
This course includes
  • 15 hours on-demand video
  • 10 articles
  • 8 downloadable resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
Training 5 or more people?

Get your team access to 4,000+ top Udemy courses anytime, anywhere.

Try Udemy for Business
What you'll learn
  • Understanding various RTOS concepts with FreeRTOS Programming and Debugging
  • Learn Complete Step by step method to run FreeRTOS on STM32 MCUs using OpenSTM32 System Workbench
  • Using STM32 Standard Peripheral Driver APIs to configure peripherals
  • FreeRTOS Task Creation , Deletion, Scheduling using with code examples
  • Important scheduling policies of FreeRTOS Scheduler
  • FreeRTOS Stack and Heap Management
  • Right ways of Synchronizing between tasks using Semaphores.
  • Right ways of Synchronizing between a task and an interrupt using semaphores
  • Synchronization between multiple events and a task
  • FreeRTOS Queue management like creation, sending, receiving, blocking, etc
  • Implementing mutual exclusion between Tasks using Mutex services and semaphores
  • Understanding Context Switching with in detail code explanation
  • Understanding Architecture specific codes like SVC_handler, PendSV_handler, SysTick Handler line by line
  • You will learn about kernel Tick timer, its importance, the kernel tick frequency and its configuration details.
  • Understanding complete ARM Cortex M and FreeRTOS Priority model and its configuration related informations
  • FreeRTOS Debugging using SEGGER SystemView Software
  • Lots of articles which explains line by line the ARM Cortex M related FreeRTOS architecture specific codes
  • Low power instructions use case in FreeRTOS scenario
  • Lots of coding exercises
  • Debugging with SEGGER software toolkit by taking snapshot and continuous mode recording
  • Basic knowledge of C and Micro controller could be added advantage but not mandatory

>> The Complete FreeRTOS Course with Programming and Debugging <<

Latest update: RTOS debugging using SEGGER SystemView Trace tools, STM32 STD. Peripheral APIs and More examples are added.

Subtitles(CCs) and transcripts are available for this course.

Dedicated Support team to answer Q/A

The course is designed for Beginners to Advanced audience.

Short Description:

"The Biggest objective of this course is to demystifying RTOS practically using FreeRTOS and STM32 MCUs"

STEP-by-STEP guide to port/run FreeRTOS using development setup which includes,

1) Eclipse + STM32F4xx + FreeRTOS + SEGGER SystemView

2) FreeRTOS+Simulator (For windows)

Demystifying the complete Architecture (ARM Cortex M) related code of FreeRTOS which will massively help you to put this kernel on any target hardware of your choice.

Development board used in this course:

If you already have an STM32 Based development board, then please continue using the same. The course uses STM32F446RE MCU based NUCLEO-F446RE board.

Software used in this course:

1) OpenSTM32 System Workbench which can run on all OS platforms(WIN/OSX/LINUX) (free)

2) SEGGER Systemview software free edition

FreeRTOS+ Simulator

Don't have any hardware? You can still try some of the Source code of this course using the FreeRTOS simulator for windows.

In this course, I have documented all the steps required to run freeRTOS in Simulator mode, so you can set up on your PC in no time. All you need is just PC and Eclipse software. That's it!

Operating system information


Debugging FreeRTOS with SEGGER SYSVIEW software

In this course debugging freeRTOS with SEGGER Systemview software is covered with STEP-BY-STEP guidance. please watch the preview videos.

Embedded Debugging and Quizzes

Debugging embedded code is really interesting and learning various debugging techniques and features are very much essential to have a good grip on embedded debugging.

Also, the course consists of various interview questions which will test your knowledge gained !.

My promise!

I will personally answer your questions about this material, either privately or in a group discussion. If you are in any way not satisfied, for any reason, you can get, No questions asked a full refund from Udemy within 30 days. But I am confident you won't need to. I stand behind this course 100% and am committed to helping you.

Learning order of FastBit Embedded Brain Academy Courses,

If you are a beginner in the field of embedded systems, then you can take our courses in the below-mentioned order.
This is just a recommendation from the instructor for beginners.

1) Microcontroller Embedded C Programming: absolute beginners(Embedded C)

2) Embedded Systems Programming on ARM Cortex-M3/M4 Processor(Optional )(ARM Cortex M4 Processor specific)

2) Mastering Microcontroller with Embedded Driver Development(MCU1)

3) Mastering Microcontroller: TIMERS, PWM, CAN, RTC,LOW POWER(MCU2)

4) Mastering RTOS: Hands-on FreeRTOS and STM32Fx with Debugging(RTOS)

5) ARM Cortex M Microcontroller DMA Programming Demystified(DMA)

6) STM32Fx Microcontroller Custom Bootloader Development(Bootloader)

7) Embedded Linux Step by Step using Beaglebone Black(Linux)


Real Time Operating System,RTOS, ARM Cortex M, FreeRTOS, STM32, STM32 Discovery,SEGGER

Who this course is for:
  • Professionals interested in exploring Embedded systems
  • Hobbyists and students who want to start their career in Embedded world
  • RTOS Beginners and Intermediate students
  • If you think about 'embedded' then think about taking this course. you will not be disappointed
Course content
Expand all 161 lectures 15:00:31
+ RTOS Introduction
6 lectures 33:56

This lecture explains you about what exactly are RTAs , What are the myths and truths related to Real time computing and also difference between NRTAs and RTAs. 

What is Real Time Application(RTAs) ??

This lecture explains about , what are Real time Operating Systems, How exactly it is different from GPOS ?

What are the trending RTOSes in the market, etc. Gives head start in to the world of RTOS. 

What is Real Time Operating System(RTOS) ?

In this lecture we will learn the difference between RTOS and GPOS in terms of of Task Scheduling. You will come know why Task scheduling in RTOS is not like that of a GPOS. 

RTOS vs GPOS : Task Scheduling

This lecture thoroughly explains the difference between RTOS and GPOS in terms of task switching latency and interrupt latency. you will come to know how RTOS and GPOS differ when it comes to latency. 

RTOS vs GPOS : Latency

This lecture with cool animations explains what exactly is priority inversion and how does it matter in RTOS. 

once you watch this lecture, you will never forget what exactly is priority inversion !

Preview 05:45

This lecture gives a good head start to the world of multitasking. Understanding what exactly multitasking is a key in the world of operating system. 

What is Multitasking ?
+ Development board used in our courses
5 lectures 21:21
Note for the students
About MCU Development board
STM32F4 Discovery and Nucleo : Board Details
ST-Link Driver Installation
ST Link Firmware Upgrade
+ IDE install (OpenSTM32 System Workbench)
2 lectures 08:59
Downloading Open STM32 System Workbench
Installing Open STM32 System Workbench
+ Downloading and Installing FreeRTOS
2 lectures 06:12
Downloading FreeRTOS From
Installing FreeRTOS
+ Creating FreeRTOS based project for STM32 MCUs
9 lectures 43:41
Creating FreeRTOS based project for STM32 MCUs Part-1
Creating FreeRTOS based project for STM32 MCUs Part-2
SPL download error fix
SPL manual integration
Creating FreeRTOS based project for STM32 MCUs Part-2 contd.
Creating FreeRTOS based project for STM32 MCUs Part-3
Creating FreeRTOS based project for STM32 MCUs Part-4
Creating FreeRTOS based project for STM32 MCUs Part-5
Understanding "SystemCoreClock" variable
+ FreeRTOS Task Creation
4 lectures 17:28

In this lecture you will understand what exactly is stack, How to implement the task Handler, etc. Also you will understand the rules to write the FreeRTOS Task handler. 

What is task ?

In this lecture you will learn about the APIs which are used to create and Schedule the task in the FreeRTOS Kernel. 

Task Create API
Scheduling of Tasks

So, what exactly happens when you create a task ? Its always better to understand the behind the scene implementation of the Task in terms of memory, the data structure, etc. 

FreeRTOS behind the scene Task Creation

There are couple of questions to follow , please try to attempt each one of them. If you think some thing is outside the scope of what you have learnt so far. You can do a search and try to answer them or you can apply reductionist approach by eliminating other options by logical reasoning. Its fun try it !

Test Drive
8 questions
+ FreeRTOS Hello World App and Testing on hardware
7 lectures 39:56
Exercise : Introduction
Exercise : Understanding MCU clock configuration Part-2
Exercise : Creating FreeRTOS Tasks Part-1
Exercise : Creating FreeRTOS Tasks Part-2
Exercise : Testing via debugger Part-1
Exercise : Testing via debugger Part-2
+ Semi hosting and UART setup
9 lectures 01:05:10
Understanding ARM Semi-hosting feature
Using MCU peripherals and implementing initialization codes
MCU pin configuration table and UART VCP connection
UART pin configuration using STD. Periph. Libray APIs
Exercise : UART Parameter Inits
Exercise : UART Printmsg implementation using std periph. libary
Exercise : Testing UART prints
Exercise : Testing our hello world application over UART
Exercise : Usage of taskYIELD() and explanation
+ FreeRTOS app debugging using SEGGER SystemView Tools
12 lectures 01:08:45

In the NEXT lecture you will be asked to download the "SystemView Target Sources zip" from Segger website.

Please download the version as show in the image below. This note is because some students have faced issues with the new version.

Note for Next lecture
Downloading SEGGER SystemView Software
SEGGER SystemView Installation and first look
What is SEGGER SystemView ?
SEGGER SystemView visualization modes
SEGGER SystemView Target integration preparation
SEGGER SystemView Target integration step by step
SEGGER SystemView taking FreeRTOS trace using snapshot mode
SEGGER SystemView jlink reflash utility download
SEGGER SystemView taking FreeRTOS trace using Continuous recording
Analyzing the trace : An Overview