Course D109
Implementing Multi-Tasking Real Time Applications in C Using FreeRTOS
Implementing Multi-Tasking Real Time Applications 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 PIC24, dsPIC and PIC32 target board configurations.
Course Overview
'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.
Key Skills
After attending this course, you will be able to:
- Implement and design applications as a set of co-operating tasks
- Understand and wisely choose from the various inter-task communications strategies available via the FreeRTOS Operating System
- Configure FreeRTOS resources and implement device drivers for common PIC24, dsPIC and PIC32 target configurations
- Implement TCP/IP based applications using the Microchip TCP/IP stack running under FreeRTOS
Course Contents
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
