COURSE OBJECTIVES
To provide a practical knowledge and understanding of real-time kernel usage. What are the advantages? What are the trade-offs? Learn from an experienced trainer and take home a working knowledge of FreeRTOS and the ability to use it efectively in your own embedded development project.
Description
This 3-day training class uses hands-on exercises combined with instruction to illustrate the concepts of a real-time kernel. Examples using FreeRTOS form a series of practical coding exercises designed to bring you quickly up to speed. The concepts and commands necessary to make effective use of FreeRTOS are described through a combination of theory and ‘hands-on’ training. Learn from an experienced trainer and take home a working knowledge of FreeRTOS and the ability to use it effectively in your own embedded development project.
Prerequisites
- Familiarity with embedded C concepts and programming
- Ability to develop software using C syntax
- Ability to use basic embedded compiler and debug tools
- Basic knowledge of embedded processor development boards
Who should attend?
People with interest in or tasked with development of a resource constrained real-time system. For example - software engineers, field engineers, (project) managers.
Course Outline
-
Introduction
- FreeRTOS overview, market position, the "free" in FreeRTOS, understanding the FreeRTOS license, software architecture, features.
- LPCXpresso IDE download and installation, importing an example workspace.
-
Task Management
- Tasks - Creation, states, priorities, the idle task, deletion.
- Scheduling - Determinism, multitasking, endless loop, cyclic executives, issues with interrupts, non-preemptive, prioritized preemptive, rate monotonic, deadline, cooperative, hybrid.
-
Queue Management
- Creation, sending, receiving
-
Interrupt Management
- Deferred interrupt processing, interrupt handlers, interrupt safe functions, task with interrupt synchronization, efficient queue usage even from within an interrupt, interrupt nesting.
-
Resource Management
- Mutual exclusion, critical sections, suspending/locking the scheduler, mutexes, priority inversion, priority inheritance, deadlock, gatekeeper tasks.
-
Memory Management
- Resource constrained memory allocation schemes, determining the amount of free memory remaining.
-
Trouble Shooting
- avoiding bugs and how to find those you did not avoid
-
FreeRTOS-MPU
- User vs. privileged mode, access permissions, defining MPU regions, linker configuration, practical usage tips.
-
The FreeRTOS Download
- Files and directories, demo apps, data types and coding style.
A customized version of this training like FreeRTOS on LPCXPresso 1769 is offered by FreeRTOS.