Prerequisites: Knowledge of C and microcontroller


RTOS Real Time Operating Systems Course And Training

Course Details

  • Duration: 40​​​

  • hours effort: 8 hours per week

  • Price With GST: 14160/-​

  • Subject: Embedded SystemsLevel: beginner


About this course


Someone will learn C programming basic and advanced topics. The course is helpful for learning data structures and computer science algorithms. This course will also be helpful for writing C code on the microcontroller. The trainer has 13+ years of experience from industry. He will highlight industrial issues and important topics of computer science algorithms and embedded systems.

What you'll learn

Introduction - What is RTOS? - Features of RTOS - Types of RTOS: Soft real time and Hard real systems - Types of kernel architecture: Monolithic and Microkernel

Real-Time Systems Concepts - Foreground/Background Systems - Critical Section of Code - Resource - Shared Resource - Multitasking - Task - Context Switch (or Task Switch) - Kernel - Scheduler - Non-Preemptive Kernel - Preemptive Kernel - Reentrancy - Round-Robin Scheduling - Task Priority - Static Priorities - Dynamic Priorities - Priority Inversions - Assigning Task Priorities - Mutual Exclusion - Deadlock (or Deadly Embrace) - Synchronization - Event Flags - Intertask Communication - Message Mailboxes - Message Queues - Interrupts - Interrupt Latency - Interrupt Response - Interrupt Recovery - Interrupt Latency, Response, and Recovery - ISR Processing Time - Nonmaskable Interrupts (NMIs) - Clock Tick - Memory Requirements - Advantages and Disadvantages of Real-Time Kernels - Real-Time Systems Summary

Kernel Structure - Application Services - Tasks - Task States - Task Control Blocks (TCBs) - Ready List - Task Scheduling - Task Level Context Switch - Locking and Unlocking the Scheduler - Idle Task - Statistics Task - Interrupts under RTOS - Clock Tick - RTOS Initialization - Starting RTOS - Obtaining the Current RTOS Version

Task Management - Creating a Task - Task Stacks - Stack Checking - Deleting a Task - Requesting to Delete a Task - Changing a Task’s Priority - Suspending a Task - Resuming a Task - Getting Information about a Task

Time Management - Time Services - Delaying a Task - Resuming a Delayed Task - System Time

Timer Management - Timer API - One-Shot Timers - Periodic (no initial delay) - Periodic (with initial delay) - Timer Management Internals (Timer States, Timer Task)

Semaphore Management - Relationships Between Tasks, ISRs, and a Semaphore - Creating a Semaphore - Deleting a Semaphore - Waiting on a Semaphore (blocking) - Signaling a Semaphore - Getting a Semaphore without Waiting (non-blocking) - Obtaining the Status of a Semaphore

Mutual Exclusion Semaphores - Mutex Utilization - Creating a Mutex - Deleting a Mutex - Waiting on a Mutex (blocking) - Signaling a Mutex - Getting a Mutex without waiting (non-blocking) - Obtaining the status of a mutex

Message Mailbox Management - Mailbox Configuration - Creating a Mailbox - Deleting a Mailbox - Waiting for a Message at a Mailbox - Sending a message to a mailbox - Sending a message to a mailbox - Getting a message without waiting (non-blocking) - Obtaining the status of a mailbox - Using a Mailbox as a Binary Semaphore - Using a Mailbox instead of TimeDly function

Message Queue Management - Message Queue Configuration - Creating a message queue - Deleting a message queue - Waiting for a message at a queue (blocking) - Sending a message to a queue (FIFO) - Sending a message to a queue (LIFO) - Sending a message to a queue (FIFO or LIFO) - Getting a Message without Waiting - Flushing a Queue - Obtaining the Status of a Queue - Using a Message Queue When Reading Analog Inputs - Using a Queue as a Counting Semaphore

Memory Management - Memory Management Configuration - Memory Control Blocks - Creating a Partition - Obtaining a Memory Block - Returning a Memory Block - Obtaining Status of a Memory Partition - Using Memory Partitions - Waiting for Memory Blocks from a Partition

Porting RTOS - Hardware/Software Architecture - RTOS configuration - Development Tools - Directories and Files - Testing a Port