Section 1 : Overview of the course

Lecture 1 INTRODUCTION TO BRAINMEASURES PROCTOR SYSTEM Pdf
Lecture 2 About Certification Pdf
Lecture 3 About Proctor Testing Pdf
Lecture 4 FAQ Text
Lecture 5 Note for the Students Text

Section 2 : RTOS Introduction

Lecture 6 What is Real Time Application(RTAs) 9:22
Lecture 7 What is Real Time Operating System(RTOS) 5:21
Lecture 8 RTOS vs GPOS Task Scheduling 3:34
Lecture 9 RTOS vs GPOS Latency 5:20
Lecture 10 RTOS vs GPOS Priority inversion 5:46
Lecture 11 What is Multitasking 4:37

Section 3 : Development board used in our courses

Lecture 12 Note for the students Text
Lecture 13 About MCU Development board 4:56
Lecture 14 STM32F4 Discovery and Nucleo Board Details 8:44
Lecture 15 ST-Link Driver Installation
Lecture 16 ST Link Firmware Upgrade 4:7

Section 4 : IDE install (OpenSTM32 System Workbench)

Lecture 17 Downloading Open STM32 System Workbench 5:13
Lecture 18 Installing Open STM32 System Workbench 3:47

Section 5 : Downloading and Installing FreeRTOS

Lecture 19 Downloading FreeRTOS From freertos 1:29
Lecture 20 Installing FreeRTOS 4:43

Section 6 : Creating FreeRTOS based project for STM32 MCUs

Lecture 21 Creating FreeRTOS based project for STM32 MCUs Part-1 2:19
Lecture 22 Creating FreeRTOS based project for STM32 MCUs Part-2 6:0
Lecture 23 Creating FreeRTOS based project for STM32 MCUs Part-3 8:57
Lecture 24 Creating FreeRTOS based project for STM32 MCUs Part-4 4:17
Lecture 25 Creating FreeRTOS based project for STM32 MCUs Part-5 5:16
Lecture 26 Understanding SystemCoreClock variable 5:16

Section 7 : FreeRTOS Task Creation

Lecture 27 What is task 8:20
Lecture 28 Task Create API 5:41
Lecture 29 Scheduling of Tasks 0:54
Lecture 30 FreeRTOS behind the scene Task Creation 2:36

Section 8 : FreeRTOS Hello World App and Testing on hardware

Lecture 31 Exercise Introduction 1:59
Lecture 32 Exercise Understanding MCU clock configuration Part-1 7:52
Lecture 33 Exercise Understanding MCU clock configuration Part-2 7:40
Lecture 34 Exercise Creating FreeRTOS Tasks Part-1 7:23
Lecture 35 Exercise Creating FreeRTOS Tasks Part-2 4:1
Lecture 36 Exercise Testing via debugger Part-1 4:7
Lecture 37 Exercise Testing via debugger Part-2 6:57

Section 9 : Semi hosting and UART setup

Lecture 38 Understanding ARM Semi-hosting feature 9:44
Lecture 39 Using MCU peripherals and implementing initialization codes 4:13
Lecture 40 MCU pin configuration table and UART VCP connection 10:20
Lecture 41 UART pin configuration using STD 10:39
Lecture 42 Exercise UART Parameter Inits 6:36
Lecture 43 Exercise UART Printmsg implementation using std periph 8:13
Lecture 44 Exercise Testing UART prints 3:30
Lecture 45 Exercise Testing our hello world application over UART 3:49
Lecture 46 Exercise Usage of taskYIELD() and explanation

Section 10 : FreeRTOS app debugging using SEGGER SystemView Tools

Lecture 47 Note for Next lecture Text
Lecture 48 Downloading SEGGER SystemView Software 1:28
Lecture 49 SEGGER SystemView Installation and first look 3:34
Lecture 50 What is SEGGER SystemView 3:46
Lecture 51 SEGGER SystemView visualization modes 4:10
Lecture 52 SEGGER SystemView Target integration preparation 6:31
Lecture 53 SEGGER SystemView Target integration step by step 14:20
Lecture 54 SEGGER SystemView taking FreeRTOS trace using snapshot mode 8:6
Lecture 55 SEGGER SystemView jlink reflash utility download 3:0
Lecture 56 SEGGER SystemView taking FreeRTOS trace using Continuous recording 5:40
Lecture 57 Analyzing the trace An Overview 11:52
Lecture 58 Analyzing FreeRTOS helloword application using SystemView Trace 6:7

Section 11 : IDLE Task and Timer Svc Task of FreerRTOS

Lecture 59 IDLE task and its significance 7:20
Lecture 60 FreeRTOS Timer Services task and other details 5:39

Section 12 : FreeRTOS Scheduler

Lecture 61 FreeRTOS Scheduler and xTaskStartScheduler() API explanation 6:33
Lecture 62 Understanding implementation of xPortStartScheduler() of port 5:27

Section 13 : FreeRTOS and ARM Cortex Mx Arch

Lecture 63 FreeRTOS Kernel interrupts 2:4
Lecture 64 RTOS Tick and SysTick Timer explanation 7:10
Lecture 65 Who configures the RTOS Tick Timer 4:11
Lecture 66 What RTOS Tick ISR (SysTick ISR) does summary 3:22

Section 14 : Context switching

Lecture 67 Introduction to context switching 3:8
Lecture 68 Context Switching understanding State of a Task 7:21
Lecture 69 Context Switching Task Switching out procedure with animation 7:12
Lecture 70 Context switching understanding pendSV handler code 16:30

Section 15 : Exercise Button and LED Task and Interrupt Coding

Lecture 71 Exercise Button and LED task 4:37
Lecture 72 Exercise Adding FreeRTOS source to project 3:17
Lecture 73 Exercise Task create of button and LED task 7:12
Lecture 74 Exercise GPIO configuration code 8:11
Lecture 75 Exercise GPIO configuration code cntd 2:45
Lecture 76 Exercise Task handler implementation and testing on the target 3:52
Lecture 77 Exercise working with task and interrupt 1:7
Lecture 78 Understanding GPIO Interrupts delivery in STM32 MCUs 19:22
Lecture 79 Exercise LED task and Button interrupt handling code implementation 8:47
Lecture 80 Understanding Trace of button interrupt and led task execution 9:34

Section 16 : FreeRTOS Task Notification

Lecture 81 Task Notify Introduction with exercise 2:50
Lecture 82 Task notification APIs and xTaskNotifyWait()
Lecture 83 using xTaskNotifyWait() in the code 7:47
Lecture 84 Task notifications xTaskNotify() 6:45
Lecture 85 Understanding Task notification trace 6:32

Section 17 : FreeRTOS Licensing model and API interface

Lecture 86 freertos-licensing 8:32
Lecture 87 FreeRTOS API Interface 4:33

Section 18 : Overview of FreeRTOS Memory manage, STACK and Synchronization services

Lecture 88 Overview of FreeRTOS Memory Management 16:27
Lecture 89 FreeRTOS Heap and Stack Management
Lecture 90 Overview of FreeRTOS Synchronization and mutual exclusion Services 8:54

Section 19 : FreeRTOS Kernel Coding Style

Lecture 91 Macros 4:41
Lecture 92 Variables 9:36
Lecture 93 Functions 6:47

Section 20 : FreeRTOS Task Deletion

Lecture 94 Deleting a Task 2:25
Lecture 95 Exercise Task Delete 1:31
Lecture 96 Exercise Task Delete Implementation 6:13

Section 21 : ARM Cortex M Interrupt Priority and FreeRTOS Task Priority

Lecture 97 FreeRTOS Hardware interrupt Configurable items 8:6
Lecture 98 FreeRTOS Hardware interrupt Configurable items contd 9:24
Lecture 99 Priority of freeRTOS Tasks 3:17
Lecture 100 FreeRTOS priority SetGet APIs 4:59
Lecture 101 Exercise Task Priority 1:24
Lecture 102 Exercise Task Priority Implementation and testing 4:36
Lecture 103 Exercise Task Priority analyzing the trace 4:23

Section 22 : Interrupt safe APIs and Task yielding

Lecture 104 Interrupt safe and interrupt unsafe APIs 14:28
Lecture 105 Understanding Task Yielding 8:9

Section 23 : FreeRTOS Task States

Lecture 106 Running and Not Running state 1:47
Lecture 107 The Ready state Text
Lecture 108 The Blocked state 5:23
Lecture 109 Suspended state 3:7

Section 24 : FreeRTOS Importance of Delay APIs

Lecture 110 Crude delay and its Effects 3:41
Lecture 111 Using Blocked state to create delay 7:16
Lecture 112 Exercise vTaskDelay() Introduction 3:27
Lecture 113 Exercise vTaskDelay() Implementation 5:6
Lecture 114 Exercise vTaskDelay() analyzing with trace 5:16

Section 25 : FreeRTOS Hook Functions

Lecture 115 FreeRTOS Hook functions 8:5
Lecture 116 Tick hook function and Current saving instructions 6:34

Section 26 : FreeRTOS Scheduling Policies

Lecture 117 Preemptive Scheduling 6:6
Lecture 118 Prioritized Preemptive Scheduling 8:26
Lecture 119 Co-operative Scheduling 3:52

Section 27 : FreeRTOS Queue Management

Lecture 120 Queues and its features 4:50
Lecture 121 Creating a Queue 4:47
Lecture 122 Sending data to Queue 4:14
Lecture 123 Receiving data from Queue 2:20
Lecture 124 Exercise FreeRTOS Command Processing app 6:20
Lecture 125 Exercise Task Implementation 3:7
Lecture 126 Creation of Command Queue 7:10
Lecture 127 Creation of UART write Queue 1:18
Lecture 128 Coding for UART interrupt settings 11:55
Lecture 129 UART ISR implementation 5:4
Lecture 130 Implementing menu print task 5:36
Lecture 131 Implementing UART write task 4:6
Lecture 132 UART ISR coding 3:53
Lecture 133 Implementation of command handling task 6:5
Lecture 134 Implementation of command processing task 4:55
Lecture 135 Command processing helper function implementation 7:26
Lecture 136 Software timers discussion 13:41
Lecture 137 Software timers discussion contd 0:56
Lecture 138 Solving race condition between task and ISR 3:42
Lecture 139 Memory freeing and RTC testing 8:18
Lecture 140 Full Application testing

Section 28 : Semaphore for Synchronization, mutual exclusion and Interrupt Management

Lecture 141 Synchronization and Mutual exclusion in real world 6:32
Lecture 142 Creation of a semaphore 3:51
Lecture 143 Different types of semaphores 3:55
Lecture 144 Binary semaphore to synchronize between two Tasks 3:57
Lecture 145 Exercise Synchronization between 2 Tasks 8:45
Lecture 146 Binary Semaphore to synchronize between task and Interrupt 4:54
Lecture 147 Events latching 8:36
Lecture 148 counting semaphore to latch and process multiple events 4:24
Lecture 149 Exercise Synchronizing a Task and Multiple Events 8:11

Section 29 : Mutual exclusion

Lecture 150 Mutual Exclusion using Binary Semaphore 6:42
Lecture 151 Exercise Mutual Exclusion between 2 tasks using Binary Semaphore 6:15
Lecture 152 Issue with Binary sema when used for Mutual exclusion Text
Lecture 153 Advantages of Mutex Over Binary Semaphore 5:24
Lecture 154 Code Exercise - 16 Mutex Example Text
Lecture 155 Crude way to protect critical section 3:38

Section 30 : FreeRTOS+Simulator

Lecture 156 Working with simulator using FreeRTOS Win32 Port Text