TTa: Foundations of Reliable Embedded Systems

safetty_training_logo3_201
Introductory course TTa is concerned with the design and implementation of software for reliable, real-time embedded systems.

The programming examples discussed during the course are in the ‘C’ language.

A key feature of Course TTa is that you will learn about the benefits that can be obtained by developing reliable embedded systems using time-triggered (TT) architectures.

In most cases, the starting point for a successful TT design is a “bare metal” software platform: that is, the system will not usually employ a conventional “RTOS”, Linux™ or Windows®. In this software platform, a single interrupt will be used, linked to the periodic overflow of a timer. A ‘polling’ process will then allow interaction with peripherals.

For developers who are familiar with a “multi-interrupt” approach to the development of software for embedded systems, a TT solution may – at first – feel a little strange. However, TT architectures have been used for many years in industries such as aerospace, because they have been found to provide the basis for reliable systems. With appropriate use of this approach, these benefits can now obtained by developers working in a wide range of sectors.

By the end of Course TTa, you will understand both the strengths and weaknesses of a Time-Triggered approach to the development of software for reliable embedded systems – and you will be ready to apply TT architectures in your own designs.

  • A free on-line version of TTa is offered via our YouTube® channel.
  • TTa can also be delivered on your company site (anywhere in the world) over a five-day period – on dates of your choosing.
  • TTa can be taken as a “stand alone” training course or as part of the SafeTTy Certified programme (Level 1).

empty_space

[This page was last updated: 2024-04-10]empty_space


empty_space

Who should take the TTa course?

empty_space
Course TTa is intended for people who: [i] design or implement software for real-time embedded systems; and [ii] want to learn how to improve system reliability.

The techniques taught in TTa can be applied in designs ranging from household “white” goods, intruder-alarm systems and general monitoring systems through to industrial, automotive, medical and aerospace systems.

Course TTa provides a “Foundation” for developers who wish to explore the use of TT architectures.

We also offer more advanced training (TTb) for developers who wish to explore the techniques introduced in TTa in greater depth.

empty_space


empty_space

SafeTTy Certified™ programme

safetty_certified_200
TTa can be taken on a stand-alone basis or as part of the SafeTTy Certified™ programme.

This internationally-recognised programme is designed to help people obtain the skills needed to develop safe, reliable and secure embedded systems – and provide evidence that they possess such skills.

Upon completion of Course TTa, participants are eligible to take the “Level 1” exam on the SafeTTy Certified programme.

In our view, Level 1 represents the minimum qualification level that should be expected from an individual involved in the development of real-time embedded systems that are intended to be reliable, but where failure has no direct safety implications.

Further information about the SafeTTy Certified programme is available here.

empty_space


empty_space

Pre-requisites for TTa

embedded_c_cover_border

All programming examples and exercises on this course involve the use of the ‘C’ programming language: and we assume that all participants have previous experience of C programming.

If your C is a little rusty, you may find it useful to refer to our “Getting Started” page on this site to help you prepare.

PLEASE NOTE: If you can program in ‘C’, it is possible to take TTa without having had any previous experience of software development for embedded systems (but if you have had some experience this will be highly beneficial).

empty_space

Related books

empty_space

Pont, M.J. (2002) Embedded C, Published by Addison-Wesley. [302 pages] ISBN: 0-201-79523-X.

Pont, M.J. (2001) Patterns for Time-Triggered Embedded Systems: Building Reliable Applications with the 8051 Family of Microcontrollers”, Published by Addison-Wesley / ACM Press. [1012 pages] ISBN: 0-201-331381.

empty_space


empty_space

Feedback from previous course participants

empty_space

Feedback from previous participants on the “TTa” module (on-line course):

“I am very satisfied with the content as well as with the delivery of the [TTa] course. I have learned really a lot. The knowledge (know-how) that was presented in this course is valuable and immediately applicable. I have already built six embedded systems based on the TTC scheduler. I adapted the code with minor changes to the Microchip PIC24 16-bit microcontroller family as well as to the MSP430.”

Feedback from previous participants on the “TTa” module (5-day “live” course, taught by Michael J. Pont):

I really have enjoyed this short course and feel that I have learned a lot a got a lot more experience in planning projects and using C.

All of the seminars were excellent.

I enjoyed all of the seminars, they were balanced, set at the right pace and covered a lot of ground.

All seminars had very useful information and explanation of concepts was excellent.

The exercises were just right – challenging but possible!

All days were very useful.

I’m very new to this field – Seminar 1 was most useful to me.

As a “newbie”, Seminar 2 was most useful (embedded systems examples and hardware explanation).

Seminar 3 opened my eyes to a different way of thinking / programming, and was extremely useful.

In Seminar 3, the concept of time-triggered scheduling was very helpful for me.

By Seminar 4, we were looking at problems that would be encountered when developing realistic systems.

I found the Seminar 4 [pre-emptive schedulers] particularly relevant to my work.

Seminar 4 was the most informative for me, and gave great insight into how schedulers work.

The material on FPGAs was new to me (and useful).

I found the material on distributed systems most useful (my field of work).

The material on multi-tasking systems was mostly new to me and very interesting.

empty_space


empty_space

Free on-line training

youtube_logo_100

You can complete our TTa training course free of charge by viewing a series of four lectures (in total around 7 hours) on our YouTube® channel.

If you wish, you can purchase a copy of the course notes from our Lulu store (for international delivery).

empty_space

Session 1: An introduction to “Embedded C”

empty_space
The material in Session 1 provides a foundation for the remainder of the course. We discuss what is meant by the phrases “embedded system” and “deeply embedded system”. We discuss the history of current embedded processors. We introduce the 8051 microcontroller (our hardware target in Session 1 and Session 2). We explain why ‘C’ is the programming language used to develop most embedded systems. We talk about the differences between developing code for “desktop” and “embedded” processors, including key differences in the software architectures used. We discuss task-oriented software engineering. We consider what is meant by real-time embedded systems. We discuss the creation of loop delays and contrast these with hardware delays. We discuss “sandwich” delays. We discuss the need for (and implementation of) timeout mechanisms. We introduce the concept of “balanced code”.

empty_space
empty_space

Session 2: Real-time “Embedded C”

empty_space
In Session 2, we explore real-time constraints in more detail. We consider and discuss concepts such as worst-case execution time (WCET), best-case execution time (BCET), task jitter and CPU loading. We look at interrupt handling and interrupt response time. We introduce time-triggered (TT) system architectures. We introduce – and explore the operation of – a first simple “TT embedded operating system”. We look at the concept of system state and explore ways of implementing state-transition diagrams (“statecharts”).

empty_space
empty_space

Session 3: Working with modern hardware platforms

empty_space
In the first two sessions on this course, we focus on software development, and we work with a simple processor (8051) simulator to test the resulting code. In Session 3, we move into the 21st century. We begin by considering a modern (32-bit) ARM® microcontroller and provide an introduction to some of the challenges and opportunities offered by this new platform. We then discuss key debugging techniques (including the use of JTAG) and the issue of timing analysis. To ensure that your skills are transferrable, we consider other hardware targets, starting with 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 consider “soft” processor running on FPGAs. We also consider x86 (“embedded PC”) hardware. Finally, we introduce a more advanced TT software architecture that can be employed with any of these platforms.

empty_space

empty_space

Session 4: Multi-tasking systems

empty_space
In Session 4, we explore some of the challenges involved in designing and implementing systems in which more than one task must run simultaneously. We look first at ways in which we can approximate multi-tasking systems using a single CPU and a real-time operating system (RTOS) which supports task pre-emption. Our coverage includes a discussion about the challenges of priority inversion (PI), and consideration of some practical solutions to PI problems through the use of “time triggered hybrid” (TTH) and similar system architectures. We 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 consider key design issues, including ways in which we can synchronise the timing of tasks that are running on different nodes. Our focus is on systems that employ the popular Controller Area Network (CAN) protocol.

empty_space
empty_space

Support and certificates

empty_space
We regret that we cannot provide any support for people who undertake free on-line training.

We regret that people who who undertake free training are not eligible to take the SafeTTy Certified® examinations.

empty_space


empty_space

5-day “on site” training and certification course

empty_space

TTa is offered as a 5-day “on site” training course (anywhere in the world).

Please contact us for further details.

empty_space


empty_space

Trainer biodata

mjp_119
This course is presented by Dr Michael J. Pont.

Michael was awarded a BSc degree (in Electronics and Electrical Engineering) by the University of Glasgow (UK) and a PhD (in Computer Science) by the University of Southampton (UK). He is the author of several successful books and more than 100 technical papers: he is named inventor / co-inventor on a number of patents. He has given invited presentations (including “keynote” and “plenary” talks) at a large number of international conferences.

Michael has been working in the field of time-triggered (TT) embedded systems for more than 20 years. He began this work in the academic sector, latterly as Professor of Embedded Systems Engineering at the University of Leicester (UK). During his time with the University of Leicester, Michael supervised more than 20 successful PhD projects.

Michael has helped numerous companies to create successful TT designs. Many of these designs have been produced in compliance with international safety standards and guidelines (including IEC 61508, ISO 26262 and DO-178).

empty_space


empty_space

Target hardware platform

stm32_nucleoboard

For on-site versions of this course, the programming exercises target an STM32 (Cortex-M0) microcontroller.

A simple STM32 hardware platform is used in some of the exercises (and is provided to participants for use after the course).

[Other processor platforms can be used on this course, by prior arrangement.]

 

empty_space


empty_space

Further information

empty_space

Please contact us if you have any questions about this course.

safetty_systems_logo_200