Event Driven Programming


Almost any (µC) software programmer has emulated some kind of interface with simple software. A classical example is to program a serial interface and to toggling individual pins "by software", instead of using the implemented HW peripheral for this task.

In this project, Event Driven Programming (EDP) is supported by a dedicated hardware (Event Scheduler) combined with the SHP technique, to allow the fast and predictive execution of events. The goal is to use software drivers for classical peripherals (RS232, I2C, ...) instead of a dedicated hardware. This results in an almost unlimited number of peripherals and a lot more freedom to design your individual application.


In a single core environment, the interrupts stops the execution of the program, the stack is filled with the necessary information and the interrupt is executed before the stack is emptied and the program continues. In an SHP based MultiCore environment, the program is stalled when an interrupt/event occurs. The interrupt is executed on a spare CPU, which starts from the reset state and is transferred into the reset state again after the interrupt has been executed. This methods makes the stack handling obsolete and allows a faster event processing.


More on this subject and its concrete implementation in the CloudX projects and the Arduissimo IDE soon.

last modified: 2012/dec/18