I have recently been playing around with what I think is a new approach to defining and implementing distributed embedded systems. I've come up with a language that I call SMIL that defines the data flow between between the systems in a high level way.
This project is in a very preliminary state. I have used it to define interactions between a Linux system and an Altera NiosII based system running eCos using TCP/IP socket communications.
SMIL generates all the socket related code to make the communication possible based on the data flow definitions that you provide.
SMIL can also generate code for state machines based on the data flow definitions.
The reason that I'm posting is that I'd like to see if there is any interest in this approach (beyond just me). A very preliminary document exists at
If this approach seems reasonable my plan is to extend SMIL to generate code for different communication paths, e.g. UDP, CAN, serial, etc. I'd also like to generate VHDL code for portions of the system specified by the user where top performance is required.
Right now, SMIL supports Linux and eCos based systems. If there is interest I plan to support at least vxWorks and uC/OS-II in the future.
Be gentle. This is an open source project in its very early stages. If there is enough interest I'll work on making a release for general distribution.