Introduction
  • Microcontroller choices
  • Overview of the STM32F4-DISCOVERY Board
  • Overview of the TM4C123 Tiva C LaunchPad
  • Overview of the STM32F4- NUCLEO Board
  • Other components
Internals of A Real-Time Kernel on ARM Processors
  • Tool chain and IDE setup
  • Introduction
  • Coding : Setting Up the Project
  • Coding : Analyzing the Reference Documents
  • Coding : Pin configuration
  • Coding : Testing pin configuration
  • Coding : Adding a Time Base
  • Coding : The Blocking Code
  • Coding : The Exception Stack Frame
  • Coding : The Exception Stack Frame (PART II)
  • Coding : Creating the Stack Frames
  • Coding : Switching Threads
Introduction to Real-time Operating Systems
  • What is an RTOS?
  • Performance Metrics of Real Time Operating Systems
Software Flows
  • Busy Wait System
  • Multi-Threaded Systems (With ISRs)
  • Real-Time Systems
The Stack
  • Stack & Memory Map
  • Stack Manipulation
Overview of Cortex-M OS Support Features
  • Inside the Microcontroller
  • Operation Modes
  • The Shadow Stack Pointer
  • SVC Exceptions
  • Coding : Creating SVC Services (PART I)
  • Creating SVC Services (PART II)
  • Coding : Creating SVC Services (PART III)
  • Creating SVC Services (PART IV)
  • Coding : Creating SVC Services (PART V)
  • Coding : Creating SVC Services (PART VI)
  • PendSV Exceptions
  • Exclusive access instructions
  • The SysTick
BOOT Sequence
  • Cortex-M Boot Sequence PART I
  • Cortex-M Boot Sequence PRT II
Introduction to Threads
  • The Thread
  • Classification of Threads
Thread Control Block (TCB)
  • Features of the Thread Control Bock
  • Implementing a Thread Control Block
The Scheduler and Scheduling Algorithms
  • The Scheduler
  • Process vs. Thread
  • Classification of Schedulers
  • Preemption
  • Scheduler Criteria
  • CPU Utilization
  • Scheduling Algorithm Optimization
  • Overview of Popular Scheduling Algorithms
  • First Come First Served (FCFS) Scheduler
  • Round Robin (RR) Scheduler
  • Round Robin (RR) Scheduler (PART II)
  • Quanta
  • Weighted Round Robin (WRR) Scheduler
  • Internals of the Round Robin Scheduler
Context Switching
  • The Context Switching process
The Kernel
  • The Kernel
RTOS Scheduler : Using SysTick Exceptions only
  • Introduction
  • Coding :Project Setup
  • Coding : Building the Kernel interface file
  • Coding : Building the Kernel components ( Thread Control Block and Thread Stack)
  • Coding : Building the Kernel components ( osKernelAddThread )
  • Coding :osKernelLaunchThread
  • Coding : Building the Kernel's Scheduler in assembly (PART I)
  • Coding : Building the Kernel's Scheduler in assembly (PART II)
  • Coding : Building the Kernel's Scheduler in assembly (PART III)
  • Coding : Building the Kernel's Scheduler in assembly (PART IV)
  • Testing the RTOS
The Cooperative/Non-Preemptive Scheduler
  • Coding : Setting Up the Project
  • Coding : Implementing the Cooperative Scheduler
OS Porting Considerations
  • Board Support Package
  • Path Expression
Board Support Package (STM32F4)
  • Introduction
  • Coding : STM32F4_RTOS_BSP (PART I)
  • Coding : STM32F4_RTOS_BSP (PART II)
  • Coding : STM32F4_RTOS_BSP (PART III)
  • STM32F4_RTOS_BSP (PART IV)
  • Coding : STM32F4_RTOS_BSP (PART V)
  • Coding : STM32F4_RTOS_BSP (PART VI)
  • Coding : TESTING STM32F4_RTOS_BSP (PART I)
  • Coding : TESTING STM32F4_RTOS_BSP (PART II)
  • Coding : TESTING STM32F4_RTOS_BSP (PART III)