Autoplay
Autocomplete
Previous Lesson
Complete and Continue
Advanced FreeRTOS with C++
Introduction
Welcome(Same as Promo) (1:41)
Course Requirements
Setting Up
Downloading CubeIDE (2:34)
Installing CubeIDE (2:38)
Getting the required documentation (7:41)
Getting the required package for bare-metal development (21:19)
Testing the project setup (15:54)
Developing Some Generic Drivers for Running Examples
Important information about this section
Programming : Enabling the Floating Point Unit (FPU) (18:00)
Programming : Developing a UART Driver - Analyzing the Documentation (11:35)
Programming : Developing a UART Driver - Listing out the steps (4:00)
Programming : Developing a UART Driver - Implementing the Init. function (22:13)
Programming : Developing a UART Driver - Implementing the Write function (5:39)
Programming : Developing a UART Driver - Testing the Driver (6:39)
Programming : Developing the System Timebase - Analyzing the Documentation (8:28)
Programming : Developing the System Timebase - Implementing the Init. function (9:52)
Programming : Developing the System Timebase - The rest of the functions (12:15)
Programming : Developing the System Timebase - Testing the Timebase (5:34)
Programming : BSP : Listing the out the Required Functions (7:55)
Programming : Writing the LED Driver (5:01)
Programming : Writing the PushButton Driver (4:00)
Programming : Testing the Board Support Package (3:35)
Programming : Analyzing the Documentation (5:21)
Programming : Listing out the steps for developing the ADC Driver (5:27)
Programming : Writing the ADC Initialization function (13:21)
Programming : Writing the ADC Read function (14:05)
Introduction to FreeRTOS
Understanding FreeRTOS Macro Names (2:34)
FreeRTOS naming conventions (4:22)
Introduction to the FreeRTOS Middleware
Programming: Updating the Workspace (2:03)
Programming: Analyzing the FreeRTOS Middleware (2:46)
Programming: Preparing the Middleware for Integration (4:37)
Programming: Creating the C++ Project (4:29)
FreeRTOS Thread Management
Overview of the Idle Task (4:34)
Using the Blocked State to create delays (2:39)
Overview of the TaskCreate functions (3:03)
Understanding Task States (3:40)
Overview of the Tick Hook (2:00)
Integrating FreeRTOS into a Bare-Metal Embedded C++ Project
Programming: Analyzing the FreeRTOS Configuration File (3:27)
Programming: Integrating the FreeRTOS Middleware (7:24)
Programming: Testing the Integration: Creating a Tasks(Pt.1) (12:06)
Programming: Testing the Integration: Creating a Tasks(Pt.2) (9:48)
Object-Oriented RTOS Primitives (Core Wrappers)
Programming: Analyzing the Project Structure (6:05)
Programming: Implementing the Folder Structure (6:16)
Programming: The Base Types Header File: Listing out the Steps (4:29)
Programming: The Base Types Header File: The Namespace Content (9:09)
The Task Header File
Programming: Implementing the 'RtosTaskClass' (5:04)
Programming: The Prototypes for the Rest of Methods (7:15)
Programming: The Private and Protected Method Prototypes (4:43)
The Task Implementation File
Programming: Implementing the 'Start' Method (8:39)
Programming: Creating Tasks using Static Allocation (8:29)
Programming: Creating Tasks using Dyamic Allocation (6:37)
Programming: Implementing the Task Trampoline Function (4:47)
The Board Support Package(BSP)
Programming: Creating Enum Class for Gpio Parameters (4:34)
Programming: Decribing the Required Method Prototypes (2:45)
Programming: Defining the Method Prototypes (4:29)
Programming: Implementing the Constructor and 'clockEnable' Methods (4:45)
Programming: Implementing the Initialization Method (15:38)
Programming: Writing and Reading Pins (3:25)
Programming: Creating the UART Class (3:21)
Programming: Describing the Required Method Prototypes for the UART Class (6:28)
Programming: Defining the UART Method Prototypes (7:57)
Programming: The UART Constructor (2:52)
Programming: The EnablePeriphclock() Method (3:37)
Programming: Computing th Baudrate Value for BRR (2:20)
Programming: Implementing the UART Initialization Method (4:03)
Programming: Sending Data with the UART (4:32)
Programming: Receiving Data over Uart (5:12)
The Template-based Singleton Class and Syscalls File
Programming: Creating the Syscalls File (3:35)
Programming: Implementing the Template-based Singleton Class(Pt.1) (5:29)
Programming: Implementing the Template-based Singleton Class(Pt.2) (3:11)
Programming: Implementing the UartManager Class (11:18)
Programming: Implementing the 'init_syscall_uart()' Method (2:47)
Programming: Minimal Implementation of '_write()' Syscall for Printf (6:32)
Programming: Minimal Implementation of '_read()' Syscall for Printf (2:17)
Programming: Completing the Syscalls Module (1:57)
Testing the System
Programming: Enabling Static Allocation and C++17 (3:29)
Programming: Describing the Steps for Testing the System (3:36)
Programming: Creating the First Concrete Task Class (4:57)
Programming: Creating the Task Function (4:47)
Programming: Creating the Second Concrete Task Class (4:40)
Programming: Creating Global GPIO and Task Objects (2:13)
Programming: Printing Key System Parameters (2:04)
Programming: Starting the System Tasks (5:08)
Programming: Implementing the 'ApplicationStackOverflowHook()' Function (3:44)
Programming: Implementing the 'ApplicationMallocFailedHook()' Function (2:25)
Programming: Implementing the 'ApplicationIdleHook()' Function (2:32)
Programming: Implementing the Functions for Getting Idle Task Memory and Timer Memory (6:21)
Programming: Building and Debugging the Project (9:54)
Type-safe C++ Wrapper for FreeRTOS Queues
Understanding Queues and Queuesets (4:56)
Programming: Creating the Inferface File (2:59)
Programming: Implementing the Queue Class Template (8:09)
Programming: Implementing Assertion for Key Properties (1:45)
Programming: Implementing Constructor and Destructor (6:23)
Programming: Sending Data to the Queue (4:37)
Programming: Receiving Data from the Queue (2:45)
Programming: Sending Data to a Queue from an Interrupt Service Routine(ISR) (5:22)
Programming: Receiving Data from a Queue from an Interrupt Service Routine(ISR) (2:06)
Programming: Implementing the Rest of the Functions (4:41)
Understanding FreeRTOS Semaphores
Understanding Semaphores (8:04)
Programming: Implementing the Template-based Singleton Class(Pt.2)
Lesson content locked
If you're already enrolled,
you'll need to login
.
Enroll in Course to Unlock