Developing multi-tasking embedded applications in C using the uCOSII operating system

Course

In Carshalton

£ 1,750 + VAT

Description

  • Type

    Course

  • Location

    Carshalton

  • Duration

    5 Days

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. Suitable for: Attendees should have a knowledge of embedded C programming and a good working knowledge of multi-tasking concepts

Facilities

Location

Start date

Carshalton (Surrey)
See map
1-3 Fairlands House, North Street, SM5 2HW

Start date

On request

Questions & Answers

Add your question

Our advisors and other users will be able to reply to you

Who would you like to address this question to?

Fill in your details to get a reply

We will only publish your name and question

Reviews

Course programme

Overview
This is a 5 day hands on programming course for experienced C programmers. The course will use the IAR embedded workbench IDE and cover the concepts underlying the use of pre-emptive multi-tasking operating systems, the advantages and disadvantages of this approach, 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. The target platforms will be ARM Cortex M3 / ARM 7 platforms.
Note: the course can be taught using other target platform supported by uCOSII and the IAR Embedded Workbench if required
This is a taught course with labs, with a split of about 40% teaching and 60% labs.

Course Benefits
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.

Course 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 uCOSII operating system
  • task management and the task state-machine
  • resource management and control
  • overview of the uCOSII Kernel structure
  • kernel services and task scheduling
  • understanding the uCOSII initialisation process
  • timers and timer interrupts
Basic Principles of Implementing Multi-tasking Applications
  • Context switching and its implications
  • Designing and implementing simple multi-tasking applications
  • Semaphores and their uses
Patterns for controlling access to shared resources
  • implementing the simple producer - consumer pattern
  • the concept of a critical section
  • pipes as an inter-process communication mechanism and inter-process signaling using event flags
  • readers and writers patterns
messaging and message based application patterns
  • task communication via messages and message queues
  • combining message queues with State Machines - "Active Objects"
interrupt handling
  • hardware specific interrupt handling issues
  • layered interrupt handling - patterns and strategies
time and time handling
  • uses of delaying tasks by having them sleep for a specified amounts of time
  • monitoring task performance and profiling
  • real time clocks and time stamps
  • watchdog timers
prioritisation
  • basic concepts and strategies
  • nested interrupts
  • interrupt masking
embedded systems anti-patterns - how to detect them and how to manage them
  • deadlock
  • livelock
  • priority inversion
power conservation
  • importance
  • general principles and strategies
  • hardware specific issues ( tailored to particular micro-controllers )
performance and resource usage analysis and profiling
  • collecting and monitoring kernel statistics
  • estimating and calculating memory requirements
  • memory management schemes
  • estimating, measuring and documenting interrupt latency times, response times and recovery times
simple error detection and error handling schemes safety critical aspects of working with uCOSII

Developing multi-tasking embedded applications in C using the uCOSII operating system

£ 1,750 + VAT