Porting Scicos-Flex to Scilab 5.0
"Embedded Systems fast development tools for Poets and Warriors"
What means "Flex" ?
- "Flex" means "flexibility". The Scicos internal code generator is not capable to produce true executable "stand-alone" code. We provide external libraries of Scicos computational functions fully independent from the Scilab/Scicos environment. These libraries are based on general purpose C code that can be easily cross compiled for DSP and micro controllers.
- "Flex" means "flexibility": the code generated is, for the internal section, fully device and board agnostic. This means that the same Scicos diagrams can be used for simulation and different target implementation with not modifications at all or, for the code generation, only changing the device/board specific input/output blocks.
- "Flex" means "pump up your muscle" : Scicos code generation on steroid. The standard Scicos code generator has too many limitations and drawbacks to be effectively used in embedded systems applications. Flex code generator follows a strict diet about memory allocation, data types and code implementation in order to fit the small spaces and the limited computational capability of small systems.
- "Flex" means software support. Scicos-FLEX included inside Scilab 5.0 is only capable to simulate and generate stand alone code. To produce "real code" we provide:
- Linux : you need to install Linux RTAI and RTAI Lab
- Windows: cross development chain for sdPIC /DSC is available from Evidence as GLP2 compliant package.
- "Flex" means hardware support. Ready to use (batteries included) FLEX boards are available from Evidence and distributors. Optionally, if you like to build your hardware from scratch Evidence provide the electrical diagrams of reference boards.
Why you have developed "Flex" micro controller / DSP version on Windows ?
- Roberto Bucher has developed Scicos-RTAI, the push button code Scicos code generator for Linux RTAI. Scicos RTAI is very easy to install and use ("for Poets") but prepare a Linux-RTAI machine is very difficult. The RTAI set up of kernel and external libraries could be very tricky. RTAI is very hardware dependent and all the critical settings should be done manually ("for Warriors").
- Scicos-RTAI needs a Linux-RTAI machine. A full configure PC could be too much for most of the usual applications. A model small micro controller or DSP has sufficient computing power to implement quite complex applications in real time
- A stand alone board, independent from an host PC, can be more suitable for embedded applications.
- Obtain hard real time on a standard PC cold be very difficult. Implement a dedicated, native hard real time kernel on a micro controller or DSP offer better performances with less effort. ERIKA is an OSEK compliant OS with a typical memory footprint in the order of few kbytes.
- For Windows like people, works with Linux could be very painful
- Some indispensable development tools are available only under Windows.
When you will release a version on Linux or Mac OSX ?
- For Linux-like and Mac-like people, works with Windows IS very painful. Unfortunately for us, the 85% of potential users are Windows-like.
- We will release a Linux version as soon the micro controller ad DSP providers will release their development tools under Linux. The Linux users can use Scicos-FLEX with Linux-RTAI and RTAI-Lab exactly like the previous Scicos-RTAI code generator.
What you support (board/tolls chain) in this release ?
- We support FLEX boards (sdPIC DSP )
- We support Linux-RTAI host an target
What I need to install after Scilab 5.0 ?
- On Linux-RTAI : the full RTAI package (including RTAI-Lab) : www.rtai.org
- On Windows : the Evidence toolchain : www.evidence.eu.com.
Scicos-FLEX internal organization
Scicos-FLEX is organized like any other Scilab 5 modules (there are only few minor differences).
The directories structure is :
modules / scicos_flex / demos / linux / windows / etc / examples / linux / windows / help / en_US / scicos_flex_doc / fr_FR / images / includes / locales / macros / flex_code_gen /(* the universal code generator : Scilab macros only *) native_integer /(* the IFs used for native integer simulation *) targets /(* target specific IFs macros *) rtai / dspic / preemt_rt / <target_name> / templates / palettes/ native_integer dummy_sim embcg flex dspicdsc sci_gateway / c / fortran / src / c / native_integer dummy_for_sim / (*used for dummy simulation inside Scicos *) targets /(* target specific CFs routines *) rtai / dspic / preempt_rt / <target_name> / scicos_flex.start scicos_flex.quit
1. External dependencies and tools
For the Scilab binary versions:
For the Scilab source versions