|
FreeRTOS Training
Expert instructor led RTOS training to maximise productivity
FreeRTOS Theory and Practice
Description
This 3-day training class uses hands-on exercises combined with
instruction to illustrate the concepts of a real-time operating system.
FreeRTOS is used as an example. It is designed to bring you up to speed
quickly, ensuring maximum project productivity.
The concepts and commands necessary to make effective use of FreeRTOS
are described through a combination of theory and on-the-job training.
Learn from an experienced trainer and take away a working knowledge of
FreeRTOS and the ability to use it effectively in your own embedded projects.
Objectives Overview
Attending an RTOS training class will provide an understanding of
RTOS essentials, advantages and trade-offs. Hands-on exercises will
provide the practical experience necessary to use an RTOS in your own
embedded system development.
Online or On-site Options
Online training is cost effective because, without travel and
accommodation expenses, fewer trainees are required to cover
our costs. Training can be given as a private session, and can
be arranged for any mutually convenient time.
On-site training can also be provided when the number of
trainees is high enough. The point at which on-site training
becomes cost effective depends on the geographic location.
|
Course Details
|
|
Title
|
FreeRTOS in Theory and Practice
|
|
Delivery
|
The course is normally presented online with instructor screen sharing.
On-site training can also be provided where attendee numbers make this
cost effective.
|
|
Duration
|
Modular, up to three days
|
|
Language
|
Course material is provided in English. Instruction can
be provided in either English or German.
|
|
Who Should Attend?
|
People with an interest in, or who have been tasked with, development of a resource
constrained real-time system. For example, embedded software engineers,
field application engineers, project managers, etc.
|
|
Course Material and Equipment
|
The following items are provided:
-
A bound course book, priced extra per copy
-
Low cost target hardware, typically an LPC1769 LPCXpresso Board, priced extra per board
-
A CD containing the examples and solutions
Please note, we do not permit re-use of our copyright material.
|
|
Prerequisites
|
Attendees should have:
-
A basic familiarity with using a Windows system as an end user
-
Familiarity with embedded C concepts and programming
-
The ability to develop software using the C language
-
The ability to use an embedded compiler and embedded debugging tools
-
Basic knowledge of embedded microcontroller development boards
|
|
Pricing
|
Private online sessions cost €3700 EUR for the full three days
(approximately $4560 USD), offering excellent per person per day
value for larger groups. The same course can be delivered
on-site for the addition of the travel and living expenses
incurred. Please use the form below to make an enquiry.
Public online sessions cost €1250 EUR (approximately
$1600 USD) and are provided as and when enough people have
registered an interest in a single time zone band. Please
use the form below to register your interest.
|
|
Agenda
|
-
Introduction
-
FreeRTOS
-
Overview, market position, free software, open source,
the modified GPLv2 license, software architecture,
features, hard and soft real-time, the difference
between an RTOS and Linux, etc.
-
LPCXpresso
-
Download and install, then import and example workspace
-
Download FreeRTOS
-
Task Management
-
Tasks
-
What is a task?
-
Crude loop periodic delays, the task parameter,
task priorities, task starvation, etc.
-
Task creation, task states, task priorities, the idle task,
deleting a task, etc.
-
vTaskDelay(), vTaskDelayUntil(), polling Vs event driven,
the idle task hook, etc.
-
Scheduling
-
Determinism, multitasking, endless loops, cyclic
executives, issues with using interrupts, preemptive,
cooperative, prioritized preemptive, rate monotonic,
deadline, cooperative, hybrid
-
Queue Management
-
What is a queue?
-
Creating a queue, sending to a queue, receive from a queue, etc.
-
Blocking on a queue read, blocking on a queue write
-
Blocking multiple tasks on the same queue
-
Queueing large data items
-
Indirect, direct, synchronous and asynchronous message
passing.
-
Interrupt Management
-
Interrupt Vs. Polling
-
Hardware and software interrupts
-
Interrupts arriving at the same time
-
Reentrancy and reentrant code
-
What is an event?
-
What is a Semaphore and what can it be used for?
-
Signal/Wait pattern, state diagram, states of a
binary semaphore, etc.
-
Counting semaphores
-
Queues and interrupt service routines
-
Deferred interrupt processing, interrupt handlers,
FreeRTOS interrupt safe API functions, task and interrupt synchronisation,
efficient queue usage in interrupts, interrupt nesting, etc.
-
Resource Management
-
Concurrency, concurrent reading and writing
-
Mutual exclusion, critical sections, suspending
the scheduler, mutexes, priority inversion, priority inheritance,
deadlock, gate-keeper tasks, mutex vs. semaphore, etc.
-
Memory Management
-
Types of memory, memory fragmentation, memory exhaustion, memory
allocation, dynamic memory allocation in FreeRTOS
-
FreeRTOS memory allocation schemes, xPortGetFreeHeapSize(), etc.
-
Trouble Shooting
-
Project planning, firmware standard, code review, binutils, etc.
-
Debugging by stopping, the FreeRTOS Simulator, state viewer plugins, etc.
-
printf-stdarg.c, stack overflow detection
-
Heap overflow detection
-
Task statistics, run time statistics
-
profiling, tracing
-
Common errors
-
FreeRTOS-MPU
-
Memory management
-
User and privileged modes, access permissions, defining MPU
regions, configuration required by the linker, usage tips
-
Find out why a program failed
|
Report Abuse
|
|