Michael J. Pont (author of “Embedded C” and “Patterns for Time-Triggered Embedded Systems”) is currently working on his next book, to be entitled “Rapid Development of Reliable Embedded Systems”.
The book will be published in 2009. However, we are delighted to announce that (under an exclusive arrangement with TTE Systems) Michael and his co-authors have begun releasing draft chapters of this new book on this website.
To mark the launch of the free RD-RES chapters, the latest version of RapidiTTy™ Lite now includes all of the code examples from Part A of the RD-RES book project in an easy-to-use form.
Both the RD-RES chapters and RapidiTTy™ Lite (with RD-RES code examples) are available for free download from this website (no registration is required).
Draft book chapters
Edited by Michael J. Pont.
Copyright of individual chapters remains with the authors concerned.
Front matter
A. Basic development techniques for reliable embedded systems
- Hello, embedded world! (LPC-2129) [11 Mar 08].
- Objects, headers and wrappers [25 Mar 08].
- A simple embedded operating system (sEOS) for the LPC-2xxx family [11 Mar 08].
- Case study: In field upgrades using ISP [3 Feb 08].
- Creating multi-state systems [11 Mar 08].
- Working with periodic tasks [11 Mar 08].
- Making task behaviour more predictable: Timeouts and sandwich delays [6 Jan 08 — draft!].
- Making system behaviour more predictable: Scheduler watchdog [2 Feb 08].
- Case study: Speech playback [11 Mar 08].
- Case study: Intruder alarm for an art gallery [11 Mar 08].
B. Working with TTC architectures for maximum predictability
- Overview of Part B [in progress]
- Creating a more flexible OS for the LPC-2xxx family (TTCos) [21 Jan 08].
- Case study: Elevator control [16 Jan 08 — draft!].
- Case study: Cruise control system using a PID algorithm [17 Jan 08].
- Case study: Reducing power consumption using dynamic voltage scaling [16 Jan 08 — draft!].
- Basic use of the Controller Area Network (CAN) protocol [in progress].
- Case study: Sniffing a CAN network [in progress].
- Basic use of Ethernet, TCP/IP and related protocols [in progress].
- Case study: High-speed data acquisition with Ethernet-based data transfer [4 Feb 08 — draft!].
- Basic use of USB [in progress].
- Case study: High-speed data acquisition with USB-based data transfer to PC [in progress].
- Avoiding the need for task pre-emption through use of direct memory access (DMA) [in progress].
- Case study: Medical signal processing using Fast Fourier Transforms (FFTs) and DMA [in progress].
C. Creating reliable distributed systems
- Overview of Part C [in progress].
- An introduction to shared-clock scheduling algorithms [21 Jan 08].
- Creating a shared-clock OS for distributed systems using CAN (SC-TTCos) [21 Jan 08].
- Case study: Distributed process control using CAN [Video clip of system — 21 Feb 08].
- Case study: Distributed cruise-control system for passenger car using CAN [Video clip of system — 21 Feb 08].
- Creating a shared-clock OS for distributed systems using Ethernet (SC-TTCos) [in progress].
- Case study: Ethernet networking in automotive applications [in progress].
- Creating an embedded WWW server for remote system monitoring [in progress].
- Case study: Embedded WWW server applied to remote diesel generator set [16 Jan 08 — draft!].
- Creating a shared-clock OS for distributed systems using USB (SC-TTCos) [in progress].
- Case study: USB in consumer applications [in progress].
- Alternative algorithms for shared-clock scheduling [21 Jan 08].
- Making effective use of Backup Master and Backup Slave nodes [in progress].
- Working with duplicate and triplicate bus arrangements [in progress].
- Case study: Control of an inverted pendulum using PID, H-infinity and LQR algs [Video clip of system — 21 Feb 08].
- Case study: Distributed cruise-control for passenger car revisited [Video clip of system — 21 Feb 08].
D. Supporting task pre-emption
- Overview of Part D [in progress].
- Creating a “hybrid” OS (TTHos) [in progress].
- Dealing with task overruns in systems based on TTC and TTH schedulers [3 Jan 08 — draft!].
- Creating a rate-monotonic OS (TTPos-RM) [in progress].
- Supporting multi-level task pre-emption [3 Jan 08 — draft!].
- Creating a deadline-monotonic OS (TTPos-DM) [in progress].
- Case study: Talking clock [in progress].
- Case study: Control of a brushless DC motor [in progress].
E. Working with embedded linux
- Running Linux on an ARM9 microcontroller [16 Jan 08 — draft!].
- Maximing temporal predictability in Linux-based designs (TTPos-Lx) [in progress].
- Case study: Factory automation [in progress].
F. Working with FPGAs
- An introduction to the PH 03 soft processor core [17 Jan 08].
- Back to basics with the PH 03 core [17 Jan 08].
- Adapting the PH core “hardware” to match your requirements [in progress].
- Using processor simulation to speed up the hardware/software co-design process [in progress].
- Maximising temporal predictability in your processor design [in progress].
- Case study: Adaptive cruise control [in progress].
- Moving to multi-core [in progress].
- Writing efficient software for a multi-core processor [in progress].
- Case study: Image processing for facial recognition [in progress].
G. Targeting a PC platform
- Overview of Part G [in progress].
- Prototyping with DOS [7 Jan 08 — draft!].
- Working with Linux [in progress].
- Running “naked” on PC hardware [in progress].
Conclusions
- Conclusions [in progress].
Appendices
- Measuring WCET with TTE Debug™ [7 Jan 08].
- Creating TT systems using TTE Builder™ [in progress].
- Automatically configuring OS parameters in TT systems.
- Overview of MISRA C [in progress].
- General coding guidelines [in progress].
- Implementing low-cost TTC systems using assembly language [17 Jan 08 — draft!].
Beginner’s guide
“Rapid Development of Reliable Embedded Systems” is being written for developers who already have some experience with embedded systems. The aim of the book is to explore techniques which can improve system reliability.
If you are new to embedded systems, you may find our beginner’s guide more useful. This guide describes “10 easy steps” which will help you learn how to program embedded systems (at minimal cost).
Feedback
As you read these chapters, we ask that you provide feedback to Michael Pont and his co-authors. This may be done by directly contacting us, or through the relevant discussion forum.