Visualizing the runtime behavior of embedded network systems: A toolkit for TinyOS
Science of Computer Programming
nAIT: A source analysis and instrumentation framework for nesC
Journal of Systems and Software
An animation framework for improving the comprehension of TinyOS programs
Proceedings of the 27th Annual ACM Symposium on Applied Computing
Hi-index | 0.00 |
TinyOS has proven to be an effective platform for developing reactive embedded network applications. However, the platform's lean programming model and power-efficient operation come at a price: TinyOS applications are notoriously difficult to construct and debug. The development difficulties stem, in large part, from a programming model founded on events and deferred execution. In short, the model introduces non-determinism in the execution ordering of primitive actions (i.e., commands, events, and tasks). The resulting set of possible execution sequences is typically large, and can swamp developers' unaided intellectual ability to reason about program behavior. In this paper, we present a platform-neutral visualization toolkit for TinyOS 2.0 to aid in program comprehension. The goal is to assist developers in reasoning about the computation forest underlying a system under test, and the particular branches chosen during each run. The toolkit design includes (i) a full-featured static analysis and instrumentation library, (ii) a selection-based probe insertion system, (iii) a lightweight event recording service, (iv) a trace extraction and reconstruction tool, and (v) two visualization front-ends. We demonstrate the utility of the toolkit using standard system examples, and present an analysis of the toolkit's resource usage and performance characteristics.