Microchip FreeRTOS C Programming on 16 bit and 32 bit Microchip Microcontrollers — A 5 day course

contact usEnquire about this course

Synopsis

This is a 5 day hands on programming course for experienced C programmers.

The course will cover the concepts underlying the use of pre-emptive multi-tasking operating systems, the advantages and disadvantages of this approach, and the need for careful and thoughtful design.

It will cover the standard patterns and issues associated with this paradigm such as pipes and circular buffers, producer - consumer patterns, reader - writer patterns, workcrew patterns, deadlock, livelock and priority-inversion.

In addition the fundamentals of topics such as interrupt handling, device driver development, and deployment, configuration and linker scripts, tuning and debugging will be surveyed.

This is a taught course with labs, with a split of about 40% teaching and 60% labs.

Objectives

This course helps attendees to develop an understanding of multi-tasking programming patterns and strategies for inter-process communication both in general terms and also specifically using the uCOSII API.

In addition attendees will also master the techniques for implementing device drivers and integrating them into the uCOSII framework will also be covered.

Contents

Overview of approaches to multi-tasking in embedded systems

Principles underlying per-emptive multi-tasking operating systems

The role of device drivers and interrupt handling in pre-emptive multitasking operating systems

Layered handling of interrupts

Soft vs. hard real-time

Overview of schedulers and scheduling strategies

The structure and design of the FreeRTOS operating system

Overview of the FreeRTOS Kernel structure

Basic Principles of Implementing Multi-tasking Applications

Embedded systems anti-patterns - how to detect them and how to manage them

Power conservation

Performance and resource usage analysis and profiling

Prerequisites

Attendees should have a knowledge of embedded C programming and a good working knowledge of multi-tasking concepts.