Synchronous programming of device drivers for global resource control in embedded operating systems

Nicolas Berthier,Florence Maraninchi,Laurent Mounier
DOI: https://doi.org/10.1145/2435227.2435235
2013-03-01
ACM Transactions on Embedded Computing Systems
Abstract:In embedded systems, controlling a shared resource like a bus, or improving a property like power consumption, may be hard to achieve when programming device drivers individually. In this article, we propose a global resource control approach, based on a centralized view of the devices' states. The solution we propose operates on the hardware/software interface. It involves a simple adaptation of the application level, to communicate with the hardware via a control layer . The control layer itself is built from a set of simple automata: the device drivers, whose states correspond to functional or power consumption modes, and a controller to enforce global properties. All these automata are programmed using a synchronous language, and compiled into a single piece of C code. We take as example the node of a sensor network. We explain the approach in details, demonstrate its use and benefits with an event-driven or multithreading operating system, and draw guidelines for its use in other contexts.
computer science, software engineering, hardware & architecture
What problem does this paper attempt to address?