Robust Software for Embedded Systems
Across the spectrum of embedded systems there is a universal need for reliability and robustness beyond that required for desktop computer software. Failure detection and recovery is vital and the software must be designed so that it can run continuously without the need for a reboot. This course explores the accepted industry best practices for achieving that extra level of quality in your embedded software.
These techniques include the use of watchdog hardware to detect a deadlocked system. Error handling mechanisms should be capable of reporting the exact location of a software bug, even after the system has been deployed. Memory management techniques need to ensure that a memory leak or stack overflow will not lurk like a time bomb in a long-running system. Programmers need to be aware of real-time pitfalls when using interrupts and an RTOS.
This course is based on 10 years of experience writing embedded software for life-critical medical equipment. It has been developed by Niall Murphy, author of “Front Panel: Designing Software for Embedded User Interfaces” and regular contributor to Embedded Systems Programming magazine.