Event-driven programming is a popular model for writing programs for tiny embedded systems and sensor network nodes. While event-driven programming can keep the memory overhead down, it enforces a state machine programming style which makes many programs difficult to write, maintain, and debug. We present a novel programming abstraction called protothreads that makes it possible to write event-driven programs in a thread-like style, with a memory overhead of only two bytes per protothread. We show that protothreads significantly reduce the complexity of a number of widely used programs previously written with event-driven state machines. For the examined programs the majority of the state machines could be entirely removed. In the other cas...
Delinquent instructions are a small number of static instructions that cause most branch prediction ...
Programming support for multi-threaded applications on embedded microcontroller platforms has attrac...
Abstract: This paper presents the use of multithreaded processors in real-time architectures. In par...
Event-driven programming is a popular model for writing programs for tiny embedded systems and senso...
Protothreads are a extremely lightweight, stackless threads designed for use in severely memory cons...
Wireless sensor networks consist of tiny devices that usually have severe resource constraints in ...
Ten years after the Internet revolution are we standing on the brink of another revolution: networke...
Abstract. The prevailing paradigm in the regime of resource-constrained embedded devices is event-dr...
An embedded system is a computer system that is a part of a larger device with hardware and mechanic...
Event-based programming has been highly touted in recent years as the best way to write highly concu...
Programming support for multi-threaded applications on embedded microcontroller platforms has attrac...
We describe the design and implementation of P, a domain-specific language to write asynchronous eve...
This paper describes future execution (FE), a simple hardware-only technique to accelerate indi-vidu...
As embedded systems embrace ever more complicated microcontrollers, they present both new capability...
Programming embedded systems applications involve writing concurrent, event-driven and timing-aware ...
Delinquent instructions are a small number of static instructions that cause most branch prediction ...
Programming support for multi-threaded applications on embedded microcontroller platforms has attrac...
Abstract: This paper presents the use of multithreaded processors in real-time architectures. In par...
Event-driven programming is a popular model for writing programs for tiny embedded systems and senso...
Protothreads are a extremely lightweight, stackless threads designed for use in severely memory cons...
Wireless sensor networks consist of tiny devices that usually have severe resource constraints in ...
Ten years after the Internet revolution are we standing on the brink of another revolution: networke...
Abstract. The prevailing paradigm in the regime of resource-constrained embedded devices is event-dr...
An embedded system is a computer system that is a part of a larger device with hardware and mechanic...
Event-based programming has been highly touted in recent years as the best way to write highly concu...
Programming support for multi-threaded applications on embedded microcontroller platforms has attrac...
We describe the design and implementation of P, a domain-specific language to write asynchronous eve...
This paper describes future execution (FE), a simple hardware-only technique to accelerate indi-vidu...
As embedded systems embrace ever more complicated microcontrollers, they present both new capability...
Programming embedded systems applications involve writing concurrent, event-driven and timing-aware ...
Delinquent instructions are a small number of static instructions that cause most branch prediction ...
Programming support for multi-threaded applications on embedded microcontroller platforms has attrac...
Abstract: This paper presents the use of multithreaded processors in real-time architectures. In par...