Cars, aircraft, medical equipment through to fridges, TVs, MP3 players and even (wet) razors are all good examples of modern systems which contain embedded processors. Overall, it is usually estimated that for every desktop computer chip sold, 100 processors are sold for embedded systems.
As this field grows, there are many job opportunities available for individuals who understand how to develop reliable embedded systems.
Using a practical mixture of informal seminars and “hands on” training sessions, this 5-day introductory course has been designed to give you the key skills required to make rapid progress in this exciting field.
This course can be used as the first module on the MSc in Reliable Embedded Systems.
This course will be delivered from 22-26 May 2010 in Penang, at PSDC.
You can download a brochure for this course.

This module will be delivered by Professor Michael J. Pont from the University of Leicester, UK.
Everyone who attends this module will receive a signed copy of Prof. Pont’s best-selling book “Embedded C”.
Please note: places are strictly limited (a maximum of 20 places): please contact us to reserve your place today.
This course costs RM 3500 per place.
This fee will be refunded if you subsequently register for the MSc in Reliable Embedded Systems.
Please contact us for further details.
Michael J. 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 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”).
This is an introductory course. No previous experience with embedded systems is required.
Some previous programming experience in a high-level language (such as C, C++ or Java) is assumed at the start of the course. If you have not had this experience, suggestions for background reading can be provided.
After attending this course, participants should:
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. By the end of the day, you’ll have created and tested a complete set of code for your first realistic embedded systems.
Day 3: Exploring 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) microcontroller with an ARM® processor core. After you’ve got your first system running, you’ll learn about debugging (including the use of JTAG) and timing analysis.
Modern embedded systems use a wide range of platforms. To round off Day 3, we’ll look at two further targets.
Day 4: Dealing with multiple tasks
In Day 4, we begin to look at some more advanced topics, including issues associated with task design (including task pre-emption). We’ll explore rate-monotonic (RM) and earliest deadline first (EDF) scheduling for single-processor systems. We’ll end Day 4 by taking a first look at techniques for working with distributed systems (using multiple processors connected by means of a Controller Area Network - or CAN - bus).
Day 5: Programming guidelines, MISRA C and design patterns
On Day 5, we’ll begin 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). We’ll then introduce the topic of “design patterns” and begin to see how this approach can be used to help organisations capture and re-use good design experience.
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.
The course is intended for anyone who is interested in working in the field of embedded systems. No previous experience of embedded systems is required, but some previous programming experience will be useful. The course will be particularly well suited for people with a technical background (e.g. mechanical engineering or “desktop” computer programming) who wish to retrain to take advantage of the huge employment opportunities in the field of embedded systems.
This course provides an ideal foundation for people who are interested in joining the University of Leicester’s MSc programme in Reliable Embedded Systems.