There are currently no items in your shopping cart.

User Panel

Forgot your password?.

Mastering RTOS: Hands on with FreeRTOS, Arduino and STM32Fx

Overview of the course & RTOS Introduction :
What is this course all about ??
Source code and other resources
What is Real Time Application(RTAs) ??
What is Real Time Operating System(RTOS) ?
RTOS vs GPOS : Task Scheduling
RTOS vs GPOS : Latency
RTOS vs GPOS : Priority inversion
What is Multitasking ?
Test Drive
6 questions

Let's Setup Atmel Studio-7 (AS7) For Arduino :
Why AS7 for Arduino ?
Installing AS7 Software
Creating a AS7 project for Arduino
Writing Blinky Application for Arduino
Downloading code to Arduino from AS7 using Flash utility software
Downloading code to Arduino from AS7 using Debugger
Connecting Atmel-ICE to Arduino
Testing virtual com port application on Arduino
Test Drive
5 questions

Running your first FreeRTOS application :
Adding freeRTOS Kernel to your project
Running first freeRTOS application on Arduino

Atmel Studio debugging features :
AS7 Debugging: Setp-in/over/out , breakpoints, Processor status
AS7 Debugging : Using Watch windows
AS7 Debugging : Controlling LED'S using I/O view
Test Drive
2 questions

Kick Starting FreeRTOS :
About ( The FreeRTOS Community )
FreeRTOS API Interface
FreeRTOS File/Directory Structure
Important Features of FreeRTOS Kernel
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
Test Drive
6 questions

FreeRTOS Kernel Coding Style :

The FreeRTOSConfig.h ( system clock, Kernel Ticking configuration ) :
Exploring FreeRTOS configuration header file
System clock frequency configuration
What is Kernel timer and why it is needed ?
What exactly Kernel Tick ISR does ? (Code exploration )
Who configures the Kernel Tick Timer ? (Code exploration )
Test Drive
10 questions

Debugging FreeRTOS using Tracealyzer Tool :
Tracealyzer for FreeRTOS
How Tracealyzer works ?
System Requirements to use Tracealyzer.
Step-1: Adding Tracealyzer Recorder library to the Project
Step-2 : Initializing and Starting the Recorder
Step-3: Running and Getting recorder memory dump and plotting

FreeRTOS Task Management ( Creation, deletion , Scheduling ) :
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
Test Drive
8 questions

ARM Cortex M Interrupt Priority and FreeRTOS Task Priority :
Interrupt Priority register and priority levels in ARM cortex-M
Priority of freeRTOS Tasks
FreeRTOS Priority Configuration items
FreeRTOS priority Set/Get APIs
Code Exercise- 5 : Changing Task priorities Dynamically
Test Drive
6 questions

Interrupt safe APIs and Task yielding :
Interrupt safe and interrupt unsafe APIs.
Understanding Task Yielding
Test Drive
3 questions

FreeRTOS Task States :
Running and Not Running state
The Ready state
The Blocked state
Suspended state
Test Drive
6 questions

FreeRTOS : Importance of Delay APIs :
Crude delay and its Effects
Using "Blocked" state to create delay
Converting Time to Ticks
Code Exercise-6 : Implementing delay using vTaskDelay()
vTaskDelayUntil() API
Code Exercise- 7 : Delay Implementation using vTaskDelayUntil()
Test Drive
2 questions

FreeRTOS Hook Functions :
The Idle task and the Idle task hook function
Code-Exercise - 9 : Idle hook implementation
Tick hook function
Code-Exercise -10 : Tick hook function implementation
Test Drive
5 questions

FreeRTOS Scheduling Policies :
Preemptive Scheduling
Prioritized Preemptive Scheduling
Co-operative Scheduling

FreeRTOS Queue Management :
Queues and its features
Creating a Queue
Sending data to Queue
Receiving data from Queue
Code Exercise- 11 : Send/Receive operation on Q, also blocking on empty/full Q
Analyzing Code Exercise- 11 using Tracealyzer
Using Queues to Transfer Compound Data Types
Code Exercise- 12: Sending/Receiving compound data types
Trace output of Code Exercise-12
Test Drive
8 questions

Semaphore for Synchronization, mutual exclusion and Interrupt Management :
Synchronization and Mutual exclusion in real world
Creation of a semaphore
Different types of semaphores
Binary semaphore to synchronize between two Tasks
Code Exercise- 13 : Synchronization between 2 Tasks
Binary Semaphore to synchronize between task and Interrupt
Code Exercise - 14 : Synchronization between Task and Interrupt
Analyzing Code Exercise - 14 using Tracealyzer
Events latching
counting semaphore to latch and process multiple events
Code Exercise - 15 : Synchronizing a Task and Multiple Events

Mutual exclusion :
Mutual Exclusion using Binary Semaphore
Code Exercise - 16 : Mutual Exclusion between 2 tasks using Binary Semaphore
Issue with Binary sema when used for Mutual exclusion
Advantages of Mutex Over Binary Semaphore
Code Exercise - 16: Mutex Example
Crude way to protect critical section
Test Drive
7 questions

Memory management :
FreeRTOS Memory Allocation Schemes and heap_1.c
Understanding heap_3.c
FreeRTOS Static Allocation
Test Drive
3 questions

FreeRTOS ARM Cortex M Arch Specific Details :
About PendSV and Its role in Context Switching
Intro : Understanding context switching code
Understanding context switching code
Intro : 2. Understanding Systick handler
Understanding Systick handler
Intro : Understanding SVC handler
Understanding SVC handler
Test Drive
9 questions

FreeRTOS + KEIL + Tracealyzer :
Installing Keil MDK software
Installing Software packs on KEIL-MDK-5 software
STEP1 : Adding FreeRTOS kernel to KEIL project
STEP2: Adding Arch. specific codes
STEP3 : Prepare a FreeRTOSConfig.h
STEP4 : Adding heap management file
STEP5 : Adding freeRTOS test application
Testing and debugging on STM32: Part-1
Testing and debugging on STM32: Part-2
Using Percipio Tracealyzer with KEIL

FreeRTOS using Eclipse (For Ubuntu/MAC Users ) :
Installing Java JDK
Installing Eclipse
Installing GNU ARM Plugins on Eclipse
Installing ARM Cross Compiler Tool-Chain
Creating Eclipse project for STM32Fx based boards
Installing OpenOCD Debugging Tool
Running FreeRTOS
Integrating percepio Trace software with Eclipse​

FreeRTOS+Simulator :
Working with simulator using FreeRTOS Win32 Port

You Have Got Gift 25% OFF

Use this Coupon Code “J3JKN396