![]()
Embedded Software ![]() Colin Walls
Colin Walls has over thirty years experience in the electronics industry, largely dedicated to embedded software. A frequent presenter at conferences and seminars and author of numerous technical articles and two books on embedded software, Colin is an embedded software technologist with Mentor … More » The demise of the reset buttonApril 15th, 2019 by Colin Walls
Stuff goes wrong – it is a fact of life. Embedded devices are typically very reliable, but not immune to failure. A common failure mode is a lock-up – the device freezes and will not respond to any user interaction. This could be caused by either a software or a hardware problem. A device might perform a self-testing and software can sometimes preempt its own failure. But freezes happen, and what do you do? … So far today, while I have been working on this blog post, I have had two embedded systems fail. My dishwasher got stuck somewhere on its cycle and my broadband connection went down, with a light on the router flashing to say it was looking for a signal. What did I do? You guessed it: I turned off the power, waited about 10 seconds, and switched the power back on again. The 10 second wait is necessary because capacitors in the power supplies of many devices will keep them alive for a short time after losing power. This strategy worked in one case anyway. [No hand washing-up for me!] Killing the power on a device is a little drastic, but it will very frequently address the problem of a freeze – at least temporarily, as the root cause may still be lurking. If the software was stuck in a loop, the resulting reset will cause the code to start over. If the cause of the looping was a software error, chances are that it will happen again. If it was a hardware fault – a peripheral not responding or a memory glitch – it may be transient, and the power cycle will have cleared it for good.
Modern devices have no such reset facility. I just scoured my house looking for an example of something that did, and it took a while. Nowadays, it is usually a matter of finding the instruction manual, which will suggest something like “Press the Menu and the Vol+ buttons and hold for 7-10 seconds”. And, most of the time, the device is reset, and all is well. But this new approach has two drawbacks. First off, you need to know what arcane button pressing/holding sequence to perform. Second, it might not work. I am unsurprised that this approach does sometimes fail, as it has an in-built complexity which leads to just one more thing to go wrong. The detection that two buttons have been pressed and held for a specific time period requires either software [which may have crashed] or some somewhat complex hardware [which may also fail]. Fortunately, there is often another option: pop the back off of the device, remove the battery, pause for a few seconds, then replace it. However, this is not always an option. Bring back the Reset button is what I say! |