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.
  • For a small fee, you can complete TTa on-line with support from your personal Certification Tutor.
  • 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: 2022-12-01]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

On-line training and certification

youtube_logo_100

Module TTa is available for on-line training as part of the SafeTTy Certified™ programme.

When you register for on-line training and certification, you’ll receive full support by e-mail from your personal Certification Tutor as you view the online videos and complete a series of carefully-planned exercises.

The exercises will help you to develop and refine your skills. The exercises will also help you to prepare for the SafeTTy Certified exam (Level 1): this is usually taken by Skype®.

Most people complete our training programmes while they are in full-time employment. To ensure that you can complete this training without undue interference with your work or family commitments, you’ll have the services of your Certification Tutor for up to six months as you work through the series of exercises.

The fee for completing the TTa module in this way is £450 per person (including examination fees).

Please note that you will also need to purchase a copy of the TTa course notes from our Lulu store in order to complete this course. We suggest that you join the course after the notes have been delivered.

All quoted prices are in UK Pounds (£) and may be subject to UK VAT (depending on the location in which your training takes place).

Please contact us if you have any questions about on-line training and certification.

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-line versions of this course, most of the exercises employ an 8051 microcontroller, and are completed using a hardware simulator. There is no need to purchase any additional software or hardware in order to complete the programme.

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

Delivery and “Fair Use” policy (on-line training and certification)

empty_space

If you register for an on-line module on the SafeTTy Certified programme, you will have up to 6 months to complete the programme. This period begins when you are sent the the first exercise on the programme by your Certification Tutor.

We aim to send you the first exercise within 2 business days from the time that you register (and pay for) the programme.

During the programme, your Certification Tutor will be contactable by e-mail (only): phone or personal contact with your Tutor is not possible under this on-line programme.

You are allocated a personal Certification Tutor. He or she will do their best to help you, but we ask you to accept that your Tutor cannot work 24 hours per day, 7 days per week. We think it is reasonable to expect that your Tutor should respond (at an appropriate level of depth – not simply with a “holding” reply) to an average of up to 3 e-mails per week during the time that you are registered on the programme. We consider this to be a “fair use” average. Please note that this is not a hard limit (we appreciate that – on some weeks – you may send a few more e-mails, on other weeks you may not send so many).

empty_space

Refund policy (on-line training and certification)

empty_space

We make all of the videos available before people register for the SafeTTy Certified programme. We think that this gives people the opportunity to determine whether they have the right background (and whether the programme is likely to meet their requirements) before they join the programme.

If you register for the SafeTTy Certified programme, pay your fees and then change your mind before you start (and before you receive any exercise sheets, guidance, etc), your fees for the programme will be refunded, after deduction of an administration fee of £50 (50 UK Pounds + VAT where applicable).

If you decide not to complete the Certification Programme after you have started, any refunds are entirely at our discretion.

empty_space

Privacy policy (on-line training and certification)

empty_space

We may accept payment by credit card (via PayPal) for on-line versions of the SafeTTy Certified programme: we do not have any access to credit card details during this payment process.

We do not share customer details with any 3rd parties.

empty_space


empty_space

Further information

empty_space

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

safetty_systems_logo_200