Course D109 Implementing Multi-Tasking Real Time Applications on the PIC32 in C Using FreeRTOS
Duration: 5 Days
Intended Audience
This course is for engineers who have a good knowledge of C programming but little experience of programming using real time operating systems application programming interfaces (APIs).The course is also useful for engineers who need to gain a rapid understanding of the FreeRTOS API and an ability to configure FreeRTOS for various PIC32 target board configurations.
Synopsis
'C' programming of embedded systems using a real time operating system requires a deep understanding of the mechanisms,both general and OS specific, used to control and synchronise tasks and to exchange information between tasks. It also requires an awareness of strategies for setting task priorities appropriately and avoiding unpleasant situations such as deadlock and starvation. For tiny real time executives it is also important to be able to implement device drivers for the various specialised devices that will form part of the application.
Course Outline
- Overview of real-time and embedded systems concepts
- Overview of Linkers and Linking
- Embedded system initialisation
- Characteristics of a Real Time Operating system
- Scheduler
- Objects
- Services
- Features of FreeRTOS
- Task and Scheduler API - task management and scheduling
- Queue API - Queues and queue management
- Semaphore API - Semaphores and semaphore management
- Memory management
- Interrupts and interrupt handling
- Integrating USB and Ethernet Protocol stacks into FreeRTOS
- Understanding tasks
- creation, scheduling, operations
- synchronization, communication and concurrency
- Semaphores
- Creation, operations, usage
- Producer-consumer scenario - implementation using circular buffers and semaphores
- Queues
- Concepts
- States
- Storage
- Queue operations
- Queue use
- Timers and timer management
- Memory management
- Implementing device drivers