FreeRTOS - A Real-Time Operating System in Theory and Praxis
Book Now - 1 Delivery Method Available:Classroom Virtual Classroom Private Group - Virtual Self-Paced Online
This 3-day training class uses hands-on exercises combined with instruction to illustrate the concepts of a real-time operating system. FreeRTOS will be used as an example. It is 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 on-the-job training. Don’t reinvent the wheel, but 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.
To provide an understanding of the essentials of a real-time operating system. What are the advantages? What are the trade offs? Hands-on exercises provide you with the necessary practical experience to go ahead and use a real-time operating system with your own embedded system after successfully completing this training.
Introduction (4 topics)
- FreeRTOS (overview, market position, 'free' in FreeRTOS, free software, open source, modified GPLv2, SW architecture, features, hard/firm/soft real-time, RTOS
- vs. Linux,. . .)
- LPCXpresso (download, install, import example workspace)
- Download FreeRTOS
Task Management (9 topics)
- What is a task?
- Crude loop periodic delay, task parameter,
- priorities, starvation,. . .
- Creation, states, priorities, idle task,
- deletion,. . .
- TaskDelay, taskDelayUntil, polling vs.
- event driven, idle hook,. . .
- Scheduling (Determinism, multitasking, endless loop, cyclic executives, issues with interrupts, non-/preemptive, prioritized preemptive, rate monotonic, deadline, cooperative, hybrid)
Queue Management (7 topics)
- What is a queue?
- Creation, send, receive,. . .
- Blocking on read/write,. . .
- With multiple tasks blocking who will run
- Large sets of data and queues.
- Indirect/Direct synchronous and asynchronous message passing.
Interrupt Management (19 topics)
- What is Interrupt vs. Polling?
- Hardware-, Software-interrupts.
- What if two interrupts arrive at the same
- What is reentrant code?
- What is an event?
- What kind of events do you know?
- What is a Semaphore and what can it be
- used for?
- What kind of Semaphores do you know?
- Signal/Wait pattern, state diagram, event
- states of binary semaphore. . .
- Counting semaphores
- Queues and ISRs
- Deferred interrupt processing, interrupt
- handlers, XXXFromISR(), task with interrupt
- synchronization, efficient queue usage
- even from within an interrupt, interrupt
- nesting. . .
Resource Management (2 topics)
- Concurrency, concurrent read/writes
- Mutual exclusion, critical sections, suspending/locking the scheduler, mutexes, priority inversion, priority inheritance, deadlock, gate-keeper tasks, mutex vs. semaphore. . .
Memory Management (2 topics)
- Memory types, fragmentation, memory exhaustion, memory allocation patterns, dynamic memory allocation in kernel
- Memory allocation schemes, xPortGetFreeHeapSize(),. . .
Trouble Shooting (9 topics)
- Spelunking, project planning, firmware standard, code review, binutils,. . .
- Debugging by stopping - FreeRTOS Simulator
- State viewer,. . .
- printf-stdarg.c, stack overflow and
- how to detect it
- Heap overflow and how to detect it
- Task statistics, run time statistics
- Profiling, tracing
- Common sources of error
FreeRTOS-MPU (3 topics)
- Memory management
- User vs. privileged mode, access permission,defining MPU regions, linker, practical usage tips
- Find out why a program failed
Basic familiarity with using a GNU/Linux system as an end user. Basic familiarity with using a Windows system as an end user. Basic C programming knowledge.