My latest article in embedded.com is the first instalment of a two-part piece:
All electronic systems carry the possibility of failure. An embedded system has intrinsic intelligence that facilitates the possibility of predicting failure and mitigating its effects. This article reviews the options for self-testing that are open to the embedded software developer, along with testing algorithms for memory and some ideas for self-monitoring software in multi-tasking and multi-CPU systems.
This first part concentrates on dealing with hardware failure. The second part, which addresses software failure, will be published soon.