Welcome to the E4Coder website
E4Coder is a set of tools that can be used to simulate control algorithms and to generate code for embedded microcontrollers running with or without a realtime operating system.
The idea driving the development of E4Coder was the need for a lightweight set of tools, based on open-source libraries and using open-source software on the target microcontroller, to help in the design of complex systems at reasonable license costs.
Now available for both ScicosLab and Scilab
E4Coder is packaged as a set of Toolboxes for Scilab
, a free and open software for simulation of software and system models. In particular, E4Coder includes:
- E4Coder Code Generator, an efficient embedded code generator for microcontrollers and for general puropose systems;
- SMCube, a finite state machine modeler and code generator;
- E4Coder GUI, a prototyping tool for generating Graphical User Interfaces.
- Support for Linux and Windows hosts.
- Simulate continuous and discrete time designs.
- Edit, simulate and generate code for hierarchical Finite State Machines (FSM) with parallel states support.
- Edit, simulate and generate code for customized embedded user interface panels using E4CoderGUI.
- Generate C/C++ code easily from Scilab and XCos diagrams for any embedded platform.
- Generate compact and readable multithread code for embedded models with multiple rates.
- Optimized usage of RAM and Flash.
- Easy retargeting to new MCUs or customized hardware.
- Generate standalone library code for small microcontrollers without an RTOS.
- Generate a complete Real-Time project for
- OSEK/VDX based RTOS, including the open-source Erika Enterprise RTOS.
- Linux PThread targets, including support for the Comedi libraries.
- RTAI targets, including support for the Comedi libraries.
- Bare Metal targets, including support for simple main loops code generation.
- Windows (soft real-time), including E4CoderGUI Panels, to generate GUI Prototypes easily.
- Customize the generated code with custom data types and variable names.
- Create custom blocks to integrate existing legacy applications, functions, and data in your Scilab or ScicosLab project.