5-day course: Prog. Tech. for Reliable Embedded Systems (C)

The focus of this 5-day introductory course is on the design and implementation of reliable embedded systems.

 Techniques discussed in this course are suitable for use in high-end consumer goods

Techniques for the development of reliable embedded systems are - clearly - of great concern in safety-critical markets (e.g. the aerospace, medical and automotive industries), where system failures can have fatal consequences. However, embedded processors now also have an enormous impact in much broader areas of product development, including high-end consumer applications such as washing machines and set-top boxes. Manufacturers need to maximise the reliability of all such systems in order to reduce the cost of warranty repairs, minimise product recalls and ensure repeat orders.

Using a practical mixture of informal seminars and “hands on” training sessions, this 5-day course has been designed to introduce you to the key skills needed to design and implement reliable embedded systems in a wide range of different industry sectors.

All programming examples (and exercises) are in ‘C’ — and the MISRA C guidelines are introduced in Day 2 of the course.

By attending this module, you will learn about the benefits that can be obtained by developing reliable embedded systems using time-triggered (TT) architectures. By the end of the course, you will understand both the strengths — and weaknesses — of this approach to the development of both single-processor and multi-processor (distributed) systems.

[Module code: A1a]


Course objectives

After attending this course, participants should:

 Techniques discussed in this course are suitable for use in high-end consumer goods

  • Understand the key concepts of “real-time” systems and the importance of timing behaviour when creating reliable embedded systems.
  • Understand key design and programming techniques which can help to improve the reliability of embedded systems for use in a range of different market sectors
  • Understand time-triggered (TT) software architectures
  • Understand how to test and debug existing embedded systems
  • Be ready for more advanced training in software design and system verification if required.
  • Be ready to join the MSc in Reliable Embedded Systems if they wish to do so.

Where and when will this course be delivered next?

This next available dates for this course are as follows:

We have a maximum class size of 25 people on this course. Early booking is recommended.

Places can be reserved by e-mail (places will be confirmed on receipt of payment).


Who should attend?

 Techniques discussed in this course are suitable for use in industrial systems

The course is intended for anyone working in the field of embedded systems who wants to learn how to improve system reliability.

People with a technical background (e.g. “desktop” computer programming) who wish to take advantage of the huge employment opportunities in the field of embedded systems will also benefit from attending this course.

Attendance at this training course provides an ideal foundation for people who intend to join our more advanced module on “Design and verification of high-integrity embedded systems”.

You can now attend both of these modules for the total combined fee of just £1200 + VAT (at our Taster rates). Please contact us for further details.


Pre-requisites

No previous experience with embedded systems is required for this course (but if you have had some experience this will be beneficial).

We assume that all participants have some previous experience of C programming.

If your C is a little rusty, you may find it useful to refer to our free guide “An introduction to programming in “Embedded C”: please note that this file may take around a minute to download (from Cachefly) after you click on the link. This guide can be used as the basis of a “teach yourself” training package when combined with our RapidiTTy Lite product, which is also available for free download.

Registered participants on this course will also be sent a copy of “Embedded C” before the course to help them to prepare.

[To receive your copy of Embedded C in advance of the course, registration must be completed at least two weeks before the course starts: if you register later than this, you will be given your copy of the book when you arrive at the training venue.]


What’s the best way of preparing for this course?

You can watch four full-length videos based on this course on our YouTube® channel.

Watching these videos will let you know what to expect from the programme (and will ensure that you are fully prepared).


Price

Places are available on this course at the “Taster” rate of £500 + VAT per place.

Please refer to our fees page for full information.

Please note that you can take this course and “Design and verification of high-integrity embedded systems” for the combined fee of £1200 + VAT (Taster rate). Please contact us for details.


Registration details

To register for this course, please contact us.

A place will then be reserved and you will be sent an invoice.

Your place on the course will be confirmed when payment is received.

Formal quotations can be provided on request.


Become a “Certified ‘Embedded C’ Programmer

Attending this course may help you to become a Certified ‘Embedded C’ Programmer.

Become a Certified Embedded C Programmer

Becoming a “Certified ‘Embedded C’ Programmer” by ‘Distance Learning’

If you wish to become a Certified ‘Embedded C’ Programmer, you can prepare for the certification exam in your own time by “Distance Learning”: this involves reading the course notes, watching video lectures, completing exercises at home and interacting with a tutor by e-mail.

If you pass the exam at the appropriate level, you will receive a formal certificate (Certified ‘Embedded C’ Programmer).

The fee for this option is £250 (VAT may be chargeable depending on your location).

You should allow 12-16 weeks to prepare for certification by Distance Learning.

Obtain a “Certificate of Attendance”

You can attend a 5-day training course in Leicester (as detailed on this page). This involves live seminars (during which you can answer questions), and completing a set of laboratory exercises with full assistance from an experienced training team.

In this case there is no examination involved, but you will receive a “Certificate of Attendance”.

Please note that the Certificate of Attendance will not give any indication of your level of ability (it simply provides evidence that you attended the training course).

The fee for this option is £500 + VAT.

Join the training course and then take the certification examination

You can attend the 5-day training course and then sit the certification exam.

If you pass the exam at the appropriate level, you will receive a formal certificate (Certified ‘Embedded C’ Programmer).

The fee for this option (training and examination) is £650 + VAT.

In this case, both training and examination are usually held in Leicester: please contact us if you wish to take the exam in a different location.

You should allow 4-6 weeks to prepare for certification if you start the process with a training course.


Reliable, safety-related and safety-critical embedded systems

All of our training courses are designed to help participants who wish to improve the reliability of the embedded systems produced by their organisation. Beyond this general goal, some courses have a sharper focus on techniques which are appropriate for use in safety-related or safety-critical systems: a summary of these links is provided in the table below (please click on the table to increase the text size).

Table linking to training courses to safety levels

Embedded processors now have an enormous impact in many products, including - for example - high-end consumer applications such as washing machines and set-top boxes and various automotive applications (for example, control of door mirrors). Manufacturers need to maximise the reliability of such systems in order to reduce the cost of warranty repairs, minimise product recalls and ensure repeat orders. All of our courses are designed to support the developers of such reliable embedded systems.

In many cases, embedded processors are employed in safety-related systems: these include automotive, medical and industrial systems. In a safety-related design, the embedded processor will never have total control: there will always be some form of backup device — or “backup person” — available in the event that the embedded system operates incorrectly (or fails to operate at all). For example: [i] an automotive “anti-lock” braking system (ABS) may have a mechanical backup; [ii] a medical system may be used to provide information to a qualified clinician: the doctor will make the final treatment decision; [iii] a train control system may require final authorisation from the driver before moving the vehicle. Even with the availability of a “backup” option, great reliance is placed on safety-related embedded systems and they must — clearly — be developed with great care.

The challenges facing the developer become even more significant when we start to consider safety-critical embedded systems. In such systems the system cannot rely on external backups option, and failure is likely to result in injury or death, either to users of the system (for example, with a medical design) or those in the vicinity (for example, with an aerospace or industrial design). Without doubt, the development of safety-critical embedded systems represents one of the greatest challenges faced by engineers on the planet today.

It should also be noted that — while failure of a particular embedded system may not result in loss of life — it may still be appropriate to develop the systems to “safety critical” standards. Such an approach may be considered (for example) when developing business-related applications where failure would result in huge financial losses (for example, some forms of electronic trading system for use in a stock exchange, or a system used to monitor electricity usage in consumer homes).


Related training courses

This training course forms an ideal way of preparing for our more advanced module on “Design and verification of high-integrity embedded systems”.


Are you a graduate? Would you like to attend this course free of charge?

University of Leicester

This course is included in the University of Leicester’s highly-regarded MSc in Reliable Embedded Systems.

This very popular part-time MSc now forms a key part of the Graduate Training Programmes offered by a number of high-tech companies.

Further information is available about opportunities for graduate training.


Trainer biodata

Cover of Embedded C

This module will be delivered by Professor Michael J. Pont from the University of Leicester, UK.

Michael Pont holds a BSc (Electrical and Electronic Engineering) from the University of Glasgow and a PhD (Computer Science) from the University of Southampton. Michael is Professor of Embedded Systems and Head of the Embedded Systems Laboratory at the University of Leicester: he is also CEO of TTE Systems Ltd.

Michael was the recipient of the “Best Presenter” award at the Embedded Masterclass 2010.

Michael is author / co-author of more than 100 technical publications and author of three books (“Patterns for Time-Triggered Embedded Systems”, “Embedded C” and “Software Engineering with C++ and CASE Tools”).

Everyone who attends this module will receive a copy of Prof. Pont’s best-selling book “Embedded C”.


Course contents

Day 1: An introduction to “Embedded C”

On Day 1, the world of embedded systems is introduced using a series of short seminars interleaved with practical sessions which are designed to reinforce the key concepts. C is the standard programming language for embedded systems: working with a processor simulator and an 8-bit target, you will learn how to create your first programs in “Embedded C”. Starting by flashing an LED, you will soon move on to learn how to create reliable code for working with switches and taking control of the real world.

Day 2: Real-time “Embedded C”

On Day 2, we move on to look at the need for simple operating systems, and the concepts of “real time” constraints. We consider and discuss concepts such as worst-case execution time, task jitter and time-out mechanisms. Very soon, you’ll have created and tested a complete set of code for your first realistic embedded systems. We’ll end the session by discussing the use of the MISRA C programming guidelines and the ways in which the use of this “safe subset” of the C language can assist in the creation of reliable systems (there’s a lot to take in: you’ll be provided with your own printed copy of these guidelines to review at your leisure).

Day 3: Working with modern hardware platforms

In the first two days of this course, we focus on software development and you’ll work with a simple processor simulator to test your code. On Day 3, we move into the 21st century: you’ll by start creating code for a modern (32-bit) “soft” microcontroller running on a “Field Programmable Gate Array” (FPGA) platform. FPGAs are already a popular implementation platform for developers of embedded systems (and some people believe that they will be the platform of choice for the majority of new systems within the next few years). We’ll introduce you to some of the challenges and opportunities offered by this exciting new platform. After you’ve got your first system running, you’ll learn about debugging (including the use of JTAG) and timing analysis. To ensure that your skills are transferrable, we’ll also discuss other hardware targets, including both off-the-shelf microcontrollers and x86 (“embedded PC”) platforms.

Day 4: Multi-tasking systems

On Day 4, we’ll explore some of the challenges involved in running systems in which more than one task must run simultaneously. We’ll look first at ways in which we can approximate multi-tasking systems using a single CPU and a real-time operating system which supports task pre-emption. We’ll then move on to consider some of the challenges involved in creating distributed embedded systems: that is, systems involving multiple processors connected in some form of network using (for example) a bus or star topology. We’ll consider key design issues, including ways in which we can synchronise the timing of tasks that are running on different nodes. Our focus will be on systems which employ the popular Controller Area Network (CAN) protocol.

Day 5: Detailed case study

On Day 5, we’ll pull together all the material from the course and work on a detailed case study. Different case studies are used every time the course runs. A typical study will involve the design of a control system for a (passenger) elevator for use in a multi-storey office complex. Key issues involved will be: switch interfaces; LCD displays; motor control; software architecture, state machines, multi-processor designs, reliable CAN networks and general safety issues.

An example of a recent case study is shown on our YouTube® channel.


Methodology

This course is taught through a carefully-planned combination of seminars and practical (laboratory) classes. Problems will be set during seminars and in laboratory sessions. Case studies will be used extensively in the laboratory sessions.


Where is the course taught?

In the UK, the training takes place at the University of Leicester.

In Malaysia, the training takes places in the Executive Learning Centre at PSDC.

Please contact us for further details.


Course options

This course is delivered by TTE Systems Ltd.

University of Leicester You can attend this course as a self-contained 5-day training module or as part of the University of Leicester’s MSc in Reliable Embedded Systems.

We also recommend that you attend this module before attending our training course on “Design and verification of high-integrity embedded systems”.


Interested in on-site training?

We can deliver this course on your site at any time.

For on-site courses:

  • Training duration can be anything from 1 to 10 days.
  • Course content can be adapted to meet your precise requirements.
  • Training can be delivered anywhere in the world.
  • Combinations of training and consultancy activities can be provided.

Please contact us for further details.

On-site training options are only cost effective for class sizes of at least 10 people in most cases.