|Advisor:||Edward A. Lee|
The TinyGALS code generation toolset was designed to be compatible with software components written for TinyOS (version 0.6.1). TinyOS is a component-based runtime environment for the Motes . TinyOS and the Motes comprise a wireless sensor network platform being developed and used at the Intel Research Lab in Berkeley.
I propose reimplementing TinyGALS to be compatible with the latest version of TinyOS (version 1.x), which uses the nesC programming language. The nesC programming constructs provide many features that allow for better code generation and static analysis of programs. This is especially important in severely memory-constrained and safety-critical systems. I would like to investigate further the interaction between the execution of TinyGALS modules and TinyOS tasks. There are several ways in which a new TinyGALS scheduler could be constructed, including scheduling the scheduler itself as a recurring TinyOS task. These approaches would need to preserve the reactive nature and timing requirements of the embedded target application.
We can also use Ptolemy II to experiment with TinyGALS at a higher, more abstract level. Ptolemy II  is a software system for modeling, design, and simulation of heterogeneous, concurrent, real-time, embedded systems. Developers of Ptolemy II models may choose different execution semantics (called a domain), depending on the particular type of application domain. By writing a TinyGALS domain within Ptolemy II, we can discover how TinyGALS semantics interact with models of computation commonly used in applications such as signal processing, control systems, network processors, and/or real-time operating systems.
I would also like to research how to generate C code from Ptolemy II models. A good target platform for the code generator is the Mote, which has the memory and power constraints typical of many embedded platforms. A TinyGALS domain could use this C code generator to generate code directly for the Motes, or it could take advantage of a nesC-compatible version of TinyGALS. The wireless networking capabilities of the Motes, however, present a unique challenge. We can investigate how to partition a software application in order to achieve distributed multitasking among unreliable nodes.
Last updated 11/20/03