Debugging Intermittently-Powered Embedded Systems Like Any Other Embedded System
T.S. Hoefnagel (TU Delft - Electrical Engineering, Mathematics and Computer Science)
Jasper De Winkel – Mentor (TU Delft - Embedded Systems)
P Przemysław – Mentor (TU Delft - Embedded Systems)
More Info
expand_more
Other than for strictly personal use, it is not permitted to download, forward or distribute the text or part of it, without the consent of the author(s) and/or copyright holder(s), unless the work is under an open content license such as Creative Commons.
Abstract
Debugging and testing battery-free intermittently-powered systems is notoriously difficult. This is not only due to the additional complexity of maintaining state through power failures but also due to the lack of proper tools to test and debug these systems. As a solution, we present DIPS: a fully-featured hardware debugger for battery-free intermittently-powered systems capable of automatically verifying memory and peripheral state between power failures. Our solution seamlessly integrates an emulator allowing for emulation of any power scenario to the device under test. This allows our debugger to pause emulation and program execution when debugging or when state restoration issues are detected. Our new system is built around GNU Debugger (GDB): a widely-used debugging tool. Therefore, DIPS allows for a debugging process identical to state-of-the-art debuggers for continuously-powered devices. User studies found that our debugger is easy and intuitive to use. It allows embedded system developers to find bugs quicker in code written for battery-free devices. Users evaluate our debugger and we have found unseen errors in a state-of-the-art software framework for intermittently powered systems.