Energy-interference-free debugger for intermittent energy-harvesting systems
Abstract
An energy-interference-free debugger is disclosed for debugging software resident on energy-harvesting target devices, which may periodically lose power and therefore exhibit intermittent execution of the software. The debugger is implemented as a combination of hardware and software and provides, in addition to the traditional debugging tools, the ability to monitor and modify the energy level on the target device, the ability to set breakpoints based on the energy level on the target device, and the ability to isolate portions of the code executing on the target device from energy-related failure during debugging. The debugger is able to remain isolated from intermittent power in passive mode and to create an illusion of an untouched energy reservoir in active mode.
Claims
exact text as granted — not AI-modifiedWe claim:
1 . A device for debugging target software executing on an energy-harvesting target device comprising:
a processor; an energy source independent from the target device; a plurality of I/O lines connected to the target device; software, executing on the processor, the software providing various debugging functions; wherein one of the plurality of I/O lines is connected to a regulated power line of the target device and one of the plurality of I/O lines is connected to an energy-storage capacitor on the target device; wherein the charge level available on the target device can be monitored and controlled via the I/O lines connected to the regulated power line and the energy storage capacitor of the target device; and wherein the target device can be powered via the energy source on the device.
2 . The device of claim 1 wherein the charge level available on the target device can be increased by charging energy-storage capacitor on the target device from the energy source of the device and decreased by discharging the energy-storage capacitor on the target device through a fixed resistive load on the device.
3 . The device of claim 1 wherein the software provides both passive mode and active mode debugging;
wherein the passive mode provides streams of data for correlating changes in system, behavior to changes in the charge level of the energy-storage capacitor on the target device; and
wherein the active mode provides the ability to manipulate the charge level on the of the energy-storage capacitor on the target device.
4 . The device of claim 3 wherein the streams of data include charge level of the energy-storage capacitor on the target device, I/O events on wired busses, messages exchanged over RFID and program events marked by watchpoints in the target software.
5 . The device of claim 3 wherein active mode allows the performance of an active tasks in which:
a charge level of the energy storage capacitor on the target device is read and stored;
the active task is performed; and
the energy storage capacitor on the target device is restored to the stored charge level.
6 . The device of claim 5 wherein the software performs the further function of powering the target device from the energy source on the device during the performance of the active task.
7 . The device of claim 5 wherein the active task comprises interfacing with the target device via the plurality of I/O lines to perform debugging functions of the target device.
8 . The device of claim 5 wherein the active task is providing energy guards for a guarded portion of the target software comprising:
placing energy guards before and after a guarded portion of the target software; and
allowing the guarded portion of the target software to execute; and
9 . The device of claim 5 wherein the active task is providing a breakpoint at a specified point in the target software.
10 . The device of claim 5 wherein the active task is providing an energy breakpoint that triggers when the charge level in the energy storage capacitor of the target device falls below a pre-determined level.
11 . The device of claim 5 wherein the active task is providing a combined breakpoint that triggers at a specified point in the target software when the charge level in the energy storage capacitor of the target device falls below a pre-determined level.
12 . The device of claim 5 wherein the active task is providing a keep-alive assertion which, upon failure of an assertion condition powers the target device from the energy source on the device.
13 . The device of claim 1 wherein the software provides the function of providing assertions, watchpoints and breakpoints in the target software triggered by the charge level available in the energy storage capacitor on the target device.
14 . The device of claim 1 wherein the software provides the function of providing monitoring of I/O via the plurality of I/O lines connected to the target device.
15 . The device of claim 1 wherein a low-leakage buffer is used on the I/O lines to prevent leakage current between the device and the target device, and a level shifter to match a voltage level of the buffer to a voltage level on the target device.
16 . The device of claim 1 further comprising software, executing on the target device to provide a library of debugging macros callable from the target software.
17 . The device of claim 16 wherein the debugging macros include inserting assertions, breakpoints, watchpoints, energy guards and printf calls into the target software.
18 . The device of claim 16 wherein the library implements a protocol on the target device for communicating with the device over one or more I/O lines.
19 . The device of claim 16 wherein the library allows the device to read and write memory of the target device.
20 . The device of claim 1 further comprising a monitor providing a user interface via which a user can interact with the device and the target device to perform debugging functions.
21 . A method for debugging target software on an energy-harvesting target device comprising:
reading and storing an energy level available on the target device; performing one or more debugging activities; and restoring the energy level on the target device to the stored level.
22 . The method of claim 21 further comprising powering the target device during the debugging activities from an external source of power.Join the waitlist — get patent alerts
Track US2018285241A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.