Replay Debugging of Real-Time Systems Using Time Machines
IPDPS '03 Proceedings of the 17th International Symposium on Parallel and Distributed Processing
gprof: a call graph execution profiler
ACM SIGPLAN Notices - Best of PLDI 1979-1999
The flooding time synchronization protocol
SenSys '04 Proceedings of the 2nd international conference on Embedded networked sensor systems
Contiki - A Lightweight and Flexible Operating System for Tiny Networked Sensors
LCN '04 Proceedings of the 29th Annual IEEE International Conference on Local Computer Networks
Micro power meter for energy monitoring of wireless sensor networks at scale
Proceedings of the 6th international conference on Information processing in sensor networks
Energy Metering for Free: Augmenting Switching Regulators for Real-Time Monitoring
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
The Energy Endoscope: Real-Time Detailed Energy Accounting for Wireless Sensor Nodes
IPSN '08 Proceedings of the 7th international conference on Information processing in sensor networks
FlashBox: a system for logging non-deterministic events in deployed embedded systems
Proceedings of the 2009 ACM symposium on Applied Computing
Proceedings of the 7th ACM Conference on Embedded Networked Sensor Systems
Quanto: tracking energy in networked embedded systems
OSDI'08 Proceedings of the 8th USENIX conference on Operating systems design and implementation
Efficient diagnostic tracing for wireless sensor networks
Proceedings of the 8th ACM Conference on Embedded Networked Sensor Systems
Dependence-based multi-level tracing and replay for wireless sensor networks debugging
Proceedings of the 2011 SIGPLAN/SIGBED conference on Languages, compilers and tools for embedded systems
Control Focused Soft Error Detection for Embedded Applications
IEEE Embedded Systems Letters
A novel key management scheme for wireless embedded systems
ACM SIGAPP Applied Computing Review
SmartEye: an energy-efficient observer platform for internet of things testbeds
Proceedings of the seventh ACM international workshop on Wireless network testbeds, experimental evaluation and characterization
Proceedings of the eighth IEEE/ACM/IFIP international conference on Hardware/software codesign and system synthesis
FlockLab: a testbed for distributed, synchronized tracing and profiling of wireless embedded systems
Proceedings of the 12th international conference on Information processing in sensor networks
Demo abstract: distributed debugging architecture for wireless sensor networks
Proceedings of the 12th international conference on Information processing in sensor networks
Minerva: distributed tracing and debugging in wireless sensor networks
Proceedings of the 11th ACM Conference on Embedded Networked Sensor Systems
Hi-index | 0.00 |
It is important to get an idea of the events occurring in an embedded wireless node when it is deployed in the field, away from the convenience of an interactive debugger. Such visibility can be useful for post-deployment testing, replay-based debugging, and for performance and energy profiling of various software components. Prior software-based solutions to address this problem have incurred high execution overhead and intrusiveness. The intrusiveness changes the intrinsic timing behavior of the application, thereby reducing the fidelity of the collected profile. Prior hardware-based solutions have involved the use of dedicated ASICs or other tightly coupled changes to the embedded node's processor, which significantly limits their applicability. In this paper, we present Aveksha, a hardware-software approach for achieving the above goals in a non-intrusive manner. Our approach is based on the key insight that most embedded processors have an on-chip debug module (which has traditionally been used for interactive debugging) that provides significant visibility into the internal state of the processor. We design a debug board that interfaces with the on-chip debug module of an embedded node's processor through the JTAG port and provides three modes of event logging and tracing: breakpoint, watchpoint, and program counter polling. Using expressive triggers that the on-chip debug module supports, Aveksha can watch for, and record, a variety of programmable events of interest. A key feature of Aveksha is that the target processor does not have to be stopped during event logging (in the last two of the three modes), subject to a limit on the rate at which logged events occur. Aveksha also performs power monitoring of the embedded wireless node and, importantly, enables power consumption data to be correlated to events of interest. Aveksha is an operating system-agnostic solution. We demonstrate its functionality and performance using three applications running on Telos motes; two in TinyOS and one in Contiki. We show that Aveksha can trace tasks and other generic events at the function and task-level granularity. We also describe how we used Aveksha to find a subtle bug in the TinyOS low power listening protocol.