Section 1 : Overview of the course
|
Lecture 1 | INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM | |
|
Lecture 2 | About Certification | |
|
Lecture 3 | About Proctor Testing | |
|
Lecture 4 | FAQ | |
|
Lecture 5 | Note for the Students |
Section 2 : RTOS Introduction
|
Lecture 1 | What is Real Time Application(RTAs) | 00:09:22 Duration |
|
Lecture 2 | What is Real Time Operating System(RTOS) | 00:05:21 Duration |
|
Lecture 3 | RTOS vs GPOS Task Scheduling | 00:03:34 Duration |
|
Lecture 4 | RTOS vs GPOS Latency | 00:05:20 Duration |
|
Lecture 5 | RTOS vs GPOS Priority inversion | 00:05:46 Duration |
|
Lecture 6 | What is Multitasking | 00:04:37 Duration |
Section 3 : Development board used in our courses
|
Lecture 1 | Note for the students | |
|
Lecture 2 | About MCU Development board | 00:04:56 Duration |
|
Lecture 3 | STM32F4 Discovery and Nucleo Board Details | 00:08:44 Duration |
|
Lecture 4 | ST-Link Driver Installation | |
|
Lecture 5 | ST Link Firmware Upgrade | 00:04:07 Duration |
Section 4 : IDE install (OpenSTM32 System Workbench)
|
Lecture 1 | Downloading Open STM32 System Workbench | 00:05:13 Duration |
|
Lecture 2 | Installing Open STM32 System Workbench | 00:03:47 Duration |
Section 5 : Downloading and Installing FreeRTOS
|
Lecture 1 | Downloading FreeRTOS From freertos | 00:01:29 Duration |
|
Lecture 2 | Installing FreeRTOS | 00:04:43 Duration |
Section 6 : Creating FreeRTOS based project for STM32 MCUs
|
Lecture 1 | Creating FreeRTOS based project for STM32 MCUs Part-1 | 00:02:19 Duration |
|
Lecture 2 | Creating FreeRTOS based project for STM32 MCUs Part-2 | 00:06:00 Duration |
|
Lecture 3 | Creating FreeRTOS based project for STM32 MCUs Part-3 | 00:08:57 Duration |
|
Lecture 4 | Creating FreeRTOS based project for STM32 MCUs Part-4 | 00:04:17 Duration |
|
Lecture 5 | Creating FreeRTOS based project for STM32 MCUs Part-5 | 00:05:16 Duration |
|
Lecture 6 | Understanding SystemCoreClock variable | 00:05:16 Duration |
Section 7 : FreeRTOS Task Creation
|
Lecture 1 | What is task | 00:08:20 Duration |
|
Lecture 2 | Task Create API | 00:05:41 Duration |
|
Lecture 3 | Scheduling of Tasks | 00:00:54 Duration |
|
Lecture 4 | FreeRTOS behind the scene Task Creation | 00:02:36 Duration |
Section 8 : FreeRTOS Hello World App and Testing on hardware
|
Lecture 1 | Exercise Introduction | 00:01:59 Duration |
|
Lecture 2 | Exercise Understanding MCU clock configuration Part-1 | 00:07:52 Duration |
|
Lecture 3 | Exercise Understanding MCU clock configuration Part-2 | 00:07:40 Duration |
|
Lecture 4 | Exercise Creating FreeRTOS Tasks Part-1 | 00:07:23 Duration |
|
Lecture 5 | Exercise Creating FreeRTOS Tasks Part-2 | 00:04:01 Duration |
|
Lecture 6 | Exercise Testing via debugger Part-1 | 00:04:07 Duration |
|
Lecture 7 | Exercise Testing via debugger Part-2 | 00:06:57 Duration |
Section 9 : Semi hosting and UART setup
|
Lecture 1 | Understanding ARM Semi-hosting feature | 00:09:44 Duration |
|
Lecture 2 | Using MCU peripherals and implementing initialization codes | 00:04:13 Duration |
|
Lecture 3 | MCU pin configuration table and UART VCP connection | 00:10:20 Duration |
|
Lecture 4 | UART pin configuration using STD | 00:10:39 Duration |
|
Lecture 5 | Exercise UART Parameter Inits | 00:06:36 Duration |
|
Lecture 6 | Exercise UART Printmsg implementation using std periph | 00:08:13 Duration |
|
Lecture 7 | Exercise Testing UART prints | 00:03:30 Duration |
|
Lecture 8 | Exercise Testing our hello world application over UART | 00:03:49 Duration |
|
Lecture 9 | Exercise Usage of taskYIELD() and explanation |
Section 10 : FreeRTOS app debugging using SEGGER SystemView Tools
|
Lecture 1 | Note for Next lecture | |
|
Lecture 2 | Downloading SEGGER SystemView Software | 00:01:28 Duration |
|
Lecture 3 | SEGGER SystemView Installation and first look | 00:03:34 Duration |
|
Lecture 4 | What is SEGGER SystemView | 00:03:46 Duration |
|
Lecture 5 | SEGGER SystemView visualization modes | 00:04:10 Duration |
|
Lecture 6 | SEGGER SystemView Target integration preparation | 00:06:31 Duration |
|
Lecture 7 | SEGGER SystemView Target integration step by step | 00:14:20 Duration |
|
Lecture 8 | SEGGER SystemView taking FreeRTOS trace using snapshot mode | 00:08:06 Duration |
|
Lecture 9 | SEGGER SystemView jlink reflash utility download | 00:03:00 Duration |
|
Lecture 10 | SEGGER SystemView taking FreeRTOS trace using Continuous recording | 00:05:40 Duration |
|
Lecture 11 | Analyzing the trace An Overview | 00:11:52 Duration |
|
Lecture 12 | Analyzing FreeRTOS helloword application using SystemView Trace | 00:06:07 Duration |
Section 11 : IDLE Task and Timer Svc Task of FreerRTOS
|
Lecture 1 | IDLE task and its significance | 00:07:20 Duration |
|
Lecture 2 | FreeRTOS Timer Services task and other details | 00:05:39 Duration |
Section 12 : FreeRTOS Scheduler
|
Lecture 1 | FreeRTOS Scheduler and xTaskStartScheduler() API explanation | 00:06:33 Duration |
|
Lecture 2 | Understanding implementation of xPortStartScheduler() of port | 00:05:27 Duration |
Section 13 : FreeRTOS and ARM Cortex Mx Arch
|
Lecture 1 | FreeRTOS Kernel interrupts | 00:02:04 Duration |
|
Lecture 2 | RTOS Tick and SysTick Timer explanation | 00:07:10 Duration |
|
Lecture 3 | Who configures the RTOS Tick Timer | 00:04:11 Duration |
|
Lecture 4 | What RTOS Tick ISR (SysTick ISR) does summary | 00:03:22 Duration |
Section 14 : Context switching
|
Lecture 1 | Introduction to context switching | 00:03:08 Duration |
|
Lecture 2 | Context Switching understanding State of a Task | 00:07:21 Duration |
|
Lecture 3 | Context Switching Task Switching out procedure with animation | 00:07:12 Duration |
|
Lecture 4 | Context switching understanding pendSV handler code | 00:16:30 Duration |
Section 15 : Exercise Button and LED Task and Interrupt Coding
|
Lecture 1 | Exercise Button and LED task | 00:04:37 Duration |
|
Lecture 2 | Exercise Adding FreeRTOS source to project | 00:03:17 Duration |
|
Lecture 3 | Exercise Task create of button and LED task | 00:07:12 Duration |
|
Lecture 4 | Exercise GPIO configuration code | 00:08:11 Duration |
|
Lecture 5 | Exercise GPIO configuration code cntd | 00:02:45 Duration |
|
Lecture 6 | Exercise Task handler implementation and testing on the target | 00:03:52 Duration |
|
Lecture 7 | Exercise working with task and interrupt | 00:01:07 Duration |
|
Lecture 8 | Understanding GPIO Interrupts delivery in STM32 MCUs | 00:19:22 Duration |
|
Lecture 9 | Exercise LED task and Button interrupt handling code implementation | 00:08:47 Duration |
|
Lecture 10 | Understanding Trace of button interrupt and led task execution | 00:09:34 Duration |
Section 16 : FreeRTOS Task Notification
|
Lecture 1 | Task Notify Introduction with exercise | 00:02:50 Duration |
|
Lecture 2 | Task notification APIs and xTaskNotifyWait() | |
|
Lecture 3 | using xTaskNotifyWait() in the code | 00:07:47 Duration |
|
Lecture 4 | Task notifications xTaskNotify() | 00:06:45 Duration |
|
Lecture 5 | Understanding Task notification trace | 00:06:32 Duration |
Section 17 : FreeRTOS Licensing model and API interface
|
Lecture 1 | freertos-licensing | 00:08:32 Duration |
|
Lecture 2 | FreeRTOS API Interface | 00:04:33 Duration |
Section 18 : Overview of FreeRTOS Memory manage, STACK and Synchronization services
|
Lecture 1 | Overview of FreeRTOS Memory Management | 00:16:27 Duration |
|
Lecture 2 | FreeRTOS Heap and Stack Management | |
|
Lecture 3 | Overview of FreeRTOS Synchronization and mutual exclusion Services | 00:08:54 Duration |
Section 19 : FreeRTOS Kernel Coding Style
|
Lecture 1 | Macros | 00:04:41 Duration |
|
Lecture 2 | Variables | 00:09:36 Duration |
|
Lecture 3 | Functions | 00:06:47 Duration |
Section 20 : FreeRTOS Task Deletion
|
Lecture 1 | Deleting a Task | 00:02:25 Duration |
|
Lecture 2 | Exercise Task Delete | 00:01:31 Duration |
|
Lecture 3 | Exercise Task Delete Implementation | 00:06:13 Duration |
Section 21 : ARM Cortex M Interrupt Priority and FreeRTOS Task Priority
|
Lecture 1 | FreeRTOS Hardware interrupt Configurable items | 00:08:06 Duration |
|
Lecture 2 | FreeRTOS Hardware interrupt Configurable items contd | 00:09:24 Duration |
|
Lecture 3 | Priority of freeRTOS Tasks | 00:03:17 Duration |
|
Lecture 4 | FreeRTOS priority SetGet APIs | 00:04:59 Duration |
|
Lecture 5 | Exercise Task Priority | 00:01:24 Duration |
|
Lecture 6 | Exercise Task Priority Implementation and testing | 00:04:36 Duration |
|
Lecture 7 | Exercise Task Priority analyzing the trace | 00:04:23 Duration |
Section 22 : Interrupt safe APIs and Task yielding
|
Lecture 1 | Interrupt safe and interrupt unsafe APIs | 00:14:28 Duration |
|
Lecture 2 | Understanding Task Yielding | 00:08:09 Duration |
Section 23 : FreeRTOS Task States
|
Lecture 1 | Running and Not Running state | 00:01:47 Duration |
|
Lecture 2 | The Ready state | |
|
Lecture 3 | The Blocked state | 00:05:23 Duration |
|
Lecture 4 | Suspended state | 00:03:07 Duration |
Section 24 : FreeRTOS Importance of Delay APIs
|
Lecture 1 | Crude delay and its Effects | 00:03:41 Duration |
|
Lecture 2 | Using Blocked state to create delay | 00:07:16 Duration |
|
Lecture 3 | Exercise vTaskDelay() Introduction | 00:03:27 Duration |
|
Lecture 4 | Exercise vTaskDelay() Implementation | 00:05:06 Duration |
|
Lecture 5 | Exercise vTaskDelay() analyzing with trace | 00:05:16 Duration |
Section 25 : FreeRTOS Hook Functions
|
Lecture 1 | FreeRTOS Hook functions | 00:08:05 Duration |
|
Lecture 2 | Tick hook function and Current saving instructions | 00:06:34 Duration |
Section 26 : FreeRTOS Scheduling Policies
|
Lecture 1 | Preemptive Scheduling | 00:06:06 Duration |
|
Lecture 2 | Prioritized Preemptive Scheduling | 00:08:26 Duration |
|
Lecture 3 | Co-operative Scheduling | 00:03:52 Duration |
Section 27 : FreeRTOS Queue Management
Section 28 : Semaphore for Synchronization, mutual exclusion and Interrupt Management
|
Lecture 1 | Synchronization and Mutual exclusion in real world | 00:06:32 Duration |
|
Lecture 2 | Creation of a semaphore | 00:03:51 Duration |
|
Lecture 3 | Different types of semaphores | 00:03:55 Duration |
|
Lecture 4 | Binary semaphore to synchronize between two Tasks | 00:03:57 Duration |
|
Lecture 5 | Exercise Synchronization between 2 Tasks | 00:08:45 Duration |
|
Lecture 6 | Binary Semaphore to synchronize between task and Interrupt | 00:04:54 Duration |
|
Lecture 7 | Events latching | 00:08:36 Duration |
|
Lecture 8 | counting semaphore to latch and process multiple events | 00:04:24 Duration |
|
Lecture 9 | Exercise Synchronizing a Task and Multiple Events | 00:08:11 Duration |
Section 29 : Mutual exclusion
|
Lecture 1 | Mutual Exclusion using Binary Semaphore | 00:06:42 Duration |
|
Lecture 2 | Exercise Mutual Exclusion between 2 tasks using Binary Semaphore | 00:06:15 Duration |
|
Lecture 3 | Issue with Binary sema when used for Mutual exclusion | |
|
Lecture 4 | Advantages of Mutex Over Binary Semaphore | 00:05:24 Duration |
|
Lecture 5 | Code Exercise - 16 Mutex Example | |
|
Lecture 6 | Crude way to protect critical section | 00:03:38 Duration |
Section 30 : FreeRTOS+Simulator
|
Lecture 1 | Working with simulator using FreeRTOS Win32 Port |