Mastering Real Time Operating System (RTOS) with ARM Cortex Mx Processor, STM32Fx , Arduino

Kiran N, Embedded Software and Firmware Engineer

Play Speed
  • 0.5x
  • 1x (Normal)
  • 1.25x
  • 1.5x
  • 2x
54 Videos (5h 44m)
    • Overview

    • What is real time application ??

    • What is Real Time Operating System(RTOS) ??

    • RTOS vs GPOS Task Scheduling

    • RTOS vs GPOS Latency

    • RTOS vs GPOS Priority inversion

    • What is Multitasking??

    • Project Creation and FreeRTOS Source code Integration

    • Project Creation and FreeRTOS Source code Integration contd

    • MCU specific initialization

    • Testing FreeRTOS Application on Target

    • Testing FreeRTOS Application on Target Contd

    • About freertos

    • freertos licensing

    • FreeRTOS API Interfac

    • FreeRTOS File Directory Structure

    • Overview of FreeRTOS Scheduler

    • Overview of FreeRTOS Task Management

    • Overview of FreeRTOS Memory Management

    • FreeRTOS Heap and Stack Management

    • Overview of FreeRTOS Synchronization and mutual exclusion Services

    • Macros

    • Variables

    • Functions

    • Exploring FreeRTOS configuration header file

    • System clock frequency configuration

    • What is Kernel timer and why it is needed

    • What exactly Kernel Tick ISR does

    • Who configures the Kernel Tick Timer

    • Tracealyzer for FreeRTOS

    • How Tracealyzer works

    • System Requirements to use Tracealyzer

    • Installing Percepio Tracealyzer Application and Percepio Eclipse plugin

    • Integrating Tracealyzer Recorder Library

    • Integrating Tracealyzer Recorder Library contd

    • Testing Tracealyzer

    • What is task ?

    • Creating and Scheduling a task

    • FreeRTOS behind the scene Task Creation

    • Code Exercise 1 Implementation and Testing of 2 Tasks

    • Analyzing the output of Code Exercise 1 Timing Diagram

    • Analyzing Code Exercise 1 using Tracealyzer

    • Code Exercise 2 Single Task Function Execution by 2 Tasks

    • Deleting a Task

    • Code Exercise 3 Deletion of a Task

    • Interrupt Priority register and priority levels in ARM cortex M

    • Priority of freeRTOS Tasks

    • FreeRTOS Priority Configuration items

    • FreeRTOS priority Set Get APIs

    • Interrupt safe and interrupt unsafe APIs

    • Understanding Task Yielding

    • Running and Not Running state

    • The Blocked state

    • Suspended state


About This Class

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

What Will you learn ?

Understanding various RTOS concepts with FreeRTOS Programming and Debugging

Complete Step-by-Step method to run FreeRTOS on STM based boards using Eclipse IDE

FreeRTOS Task Creation , Deletion, Scheduling using with code examples

FreeRTOS Stack and Heap Management

Right ways of Synchronizing between a task and an interrupt using semaphores

FreeRTOS Queue management like creation, sending, receiving, blocking, etc

Understanding Context Switching with in detail code explanation

You will learn about kernel Tick timer, its importance, the kernel tick frequency and its configuration details.

FreeRTOS Debugging using Percepio Tracealyzer Software

Various Debugging Features of Atmel-Studio-7 like Instruction BKPT, Data BKPT, Mem R/W BKPT,logging, tracing ,etc

Learn Complete Step by step method to run FreeRTOS on Arduino Due using Atmel-studio-7

Complete Step-by-Step method to run FreeRTOs on STM based board using KEIL-MDK-5 software

Right ways of Synchronizing between tasks using Semaphores.

Synchronization between multiple events and a task

Implementing mutual exclusion between Tasks using Mutex services and semaphores

Implementing mutual exclusion between Tasks using Mutex services and semaphores

Understanding complete ARM Cortex M and FreeRTOS Priority model and its configuration related information

Lots of articles which explains line by line the ARM Cortex M related FreeRTOS architecture specific codes

The course is designed for Beginners to Advanced audience.

Short Description: 

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

STEP-by-STEP guide to port/run FreeRTOS using any of the following development setup

1) Atmel Studio 7+ Arduino Due + FreeRTOS+Tracealyzer 

2) KEIL-MDK + STM32F4xx + FreeRTOS + Tracealyzer

3) Eclipse + STM32F4xx + FreeRTOS + Tracealyzer (For Linux and MAC OS )

4) 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.

Read the long description for detailed explanation. 

Thank you. 

Long Description:

Development board used in this course: 

The course is strictly not bound to any 1 type of MCU. So, if you already have any Development board which runs with ARM-Cortex M3/M4 processor, then I recommend you to continue using it

1) Arduino Due (For Arduino users)

2) STM32F4xx based Nucleo-F446RE (For STM32 users) (any Nucleo or discovery boards can be used )

3) ATMEL-ICE Debugger (optional) (Used only for Arduino since it doesn’t have any on-board debugger)

Software used in this course 

1) Atmel-Studio-7 for Arduino (Windows users only, Free software)

2) KEIL-MDK-5 for STM based boards (Windows users only, Free Software )

3) Eclipse IDE (Windows/Linux/MAC users , Free software)

4) Percipio Tracealyzer software free edition 

FreeRTOS+ Simulator

Don't have any hardware? You can still try all the Source code of this course using 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. Thats it !

FreeRTOS simulator for Posix/Linux will be included shortly.

Operating system information 

In this course, I have covered integrating freeRTOS and Tracealyzer tool on 3 different IDEs.  So, All windows, Linux as well as MAC users can able to practice whatever taught in this course without any problem. 

1) Windows users can go for Either Atmel-Studio-7, Eclipse or KEIL based development.  

2) Linux/MAC users can go for Eclipse based development

Please message me if you have any doubt to be clarified. 

FreeRTOS Debugging using Percepio Tracealyzer 

The course walks you through step by step procedure to integrate Tracelayzer library with 3 different IDEs and with 2 different boards i.e Due and STM32f4 NUCLEO. The same procedure you can leverage to any MCU you have at your hand.

Also you will be learning memory logging of FreeRTOS execution, obtaining the graphical trace of the FreeRTOS running tasks and interrupts, obtaining the CPU load graph, timings, etc. 

Please watch free preview videos to explore more about this. 

FreeRTOS Articles  

Wherever required we have added articles which you can read and understand. 

Especially all the architecture specific handlers of the freeRTOS covered using articles to make you understand the code line by line. 

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 !. 

Future updates 

1) Porting FreeRTOS on Arduino Uno

2) Working with FreeRTOS simulator for linux

3) Working with FreeRTOS+ TCP/IP stack

Who is the target audience?

  • 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






Reviews (0)

Kiran N

Embedded Software and Firmware Engineer

Hello, I'm Kiran , An Embedded Software Developer having 12+ years of experience in the field of Embedded Software Development, Low Power Wireless Protocols, RTOS and Embedded Linux. I have worked on the projects like Porting Embedded Linux and Android to TI OMAP and Sitara family of processors based custom boards , device driver development for Zigbee Transceivers,  BT SDK development , RTOS porting etc. I am interested in teaching Embedded Software engineering in a very simple and unde...

See full profile

Technology IT Security