Real-Time Workshop® Embedded Coder 5.1
Latest Features
Version 5.1
Released: 01 Mar 2008Version 5.1, part of Release 2008a, includes the following enhancements:
- New AUTOSAR compliant code generation capability and demos
- Bidirectional traceability for Stateflow® charts and Embedded MATLAB functions
- More optimized inlining between Simulink blocks and Stateflow charts
- More optimized code for Bus Assignment, Bus Creator, and Bus Selector blocks
- Function prototype control supports model reference and has getPreview command
- Improved MISRA-C® compliance for matrix math utilities and lookup block utilities
- Context-sensitive help available for Configuration Parameters dialog box
See the Release Notes for details.
Update Now
- Download the latest version if your software maintenance service is current.
- Purchase or request a renewal quote if your maintenance service has lapsed.
- Try the latest version by downloading or requesting trial software.
Version 5.0.1
Released: 08 May 2008Version 5.0.1, part of the Simulink product family update for Release 2007b, resolves several key customer-reported issues.
Read about the latest bug fixes for:
- Fixed-Point Toolbox 2.1.1
- Real-Time Workshop 7.0.1
- Real-Time Workshop Embedded Coder 5.0.1
- Simscape 2.0.1
- Simulink 7.0.1
- Simulink Design Verifier 1.1.1
- Simulink Fixed Point 5.5.1
- Stateflow 7.0.1
- Stateflow Coder 7.0.1
- Simulink Verification and Validation 2.2.1 (represented in Simulink 7.0.1 reports)
Version 5.0
Released: 01 Sep 2007Version 5.0, part of Release 2007b, includes the following enhancements:
- New Target Function Library (TFL) API for mapping built-in functions and operators to target-specific code
- Bidirectional traceability now supported through automated block-to-code and code-to-block highlighting
- Code for Concat, Conjugate, Dot Product, For Iterator, Transpose, and Rate Transition blocks optimized with expression folding, scalarization, and more efficient use of buffers
- Optimized implementation for the
model_stepfunction prototype control feature introduced in R2007a - Enhanced MISRA-C compliance
- User-defined data classes able to reference custom storage classes from other packages, such as Simulink or
mpt - New interactive Guided Introduction demo for novices who want to generate optimized code for embedded systems
See the Release Notes for details.
Version 4.6.1
Released: 03 May 2007Real-Time Workshop Embedded Coder 4.6.1 resolves several key customer-reported issues. It is part of a Simulink product family update for Release 2007a. See the Release Notes for details.
In addition to Real-Time Workshop Embedded Coder, seven other products were included in this update:
- Real-Time Workshop 6.6.1
- Simulink 6.6.1
- Simulink Accelerator 6.6.1
- Simulink Fixed Point 5.4.1
- Simulink Verification and Validation 2.1.1
- Stateflow 6.6.1
- Stateflow Coder 6.6.1
Version 4.6
Released: 01 Mar 2007Version 4.6, part of Release 2007a, includes the following enhancements:
- Ability to control step function prototypes for models
- New ERT target for generating host-based shared libraries (.dll and .so)
- Enhanced software-in-the-loop (SIL) testing with new portable word sizes option
- New code style options for controlling expression optimizations in generated code
- Enhanced MISRA-C compliance
See the Release Notes for details.
Version 4.5
Released: 01 Sep 2006Version 4.5, part of Release 2006b, includes the following enhancements:
- Element-by-element optimized code for vector operations
- Improved efficiency and readability of for loops generated for wide signals that have multiple sources
- Unnecessary temporary variables no longer generated for muxed signals
- Fixed-point code generation support for enhanced N-D lookup tables
- Ability to control use of parentheses in generated code
- Enhanced HTML code report performance and content
- New general-purpose OSEK/VDX® real-time operating system (RTOS) target example
Version 4.4.1
Released: 20 Apr 2006Real-Time Workshop Embedded Coder 4.4.1 resolves many customer-reported issues. It is part of a Simulink product family update for Release 2006a. See the Release Notes for details.
In addition to Real-Time Workshop Embedded Coder, seven other products were included in this update:
- Real-Time Workshop 6.4.1
- Simulink 6.4.1
- Simulink Accelerator 6.4.1
- Simulink Fixed Point 5.2.1
- Simulink Report Generator 3.0.1
- Stateflow 6.4.1
- Stateflow Coder 6.4.1
Version 4.4
Released: 01 Mar 2006Version 4.4, part of Release 2006a, includes the following enhancements:
- New atomic subsystem option for generating modular functions
- New Export Function capability for generating software components for function-call subsystems
- New Symbol Format options for precise control of automatically generated identifiers
- New Memory Section options for target-specific data placement
- New API for registering module packaging options, including build process hooks and data object customizations
See the Release Notes for details.
Version 4.3
Released: 01 Sep 2005Version 4.3, part of Release 14 with Service Pack 3, includes the following enhancements:
- Built-in data type names can now be replaced with user-defined names.
- Header file is now an optional part of GetSet data object.
- Data Object Wizard supports more data objects including alias types and data stores.
See the Release Notes for details.
Version 4.2.1
Released: 26 May 2005Real-Time Workshop Embedded Coder 4.2.1 resolves many customer-reported issues. It is part of a Simulink product family update for Release 14 with Service Pack 2. See the Release Notes for details on version 4.2.1.
In addition to Real-Time Workshop Embedded Coder, six other products were included in this update:
- Real-Time Workshop 6.2.1
- Simulink 6.2.1
- Simulink Accelerator 6.2.1
- Simulink Fixed Point 5.1.1
- Stateflow 6.2.1
- Stateflow Coder 6.2.1
Version 4.2
Released: 07 Mar 2005- C++ target language support to facilitate integration of generated code with legacy or custom user code written in C++
- External mode support for ERT VxWorks example target
- Support for using custom storage classes (CSCs) with ERT S-functions
- Enhanced documentation of the Managing Data Dictionary chapter in the Module Packaging Features documentation, which now explains how to create Simulink data objects using the Data Object Wizard, and compares this with creating mpt data objects
Version 4.2, part of MathWorks Release 14 with Service Pack 2, also includes the latest bug fixes. See the Release Notes for details.
Version 4.1
Released: 22 Sep 2004Version 4.1 of the Real-Time Workshop Embedded Coder contains minor enhancements and latest bug fixes. It is fully compatible
with MathWorks Release 14 products.
Version 4
Released: 02 Jun 2004Module Packaging Features
The Module Packaging Features supports production needs by letting you package generated code into the desired number of .c
and .h files, control internal organization of each generated file, create complex data definitions, and locate variables
in target memory where desired.
Model Explorer
The new Simulink Model Explorer let you configure all Embedded Real-Time (ERT) target code generation options in a single
spot, the Configuration Parameters dialog box.
Custom Comments and Naming Rules
You can now insert custom comments in the code and specify identifiers using naming rules.
Code Templates
You can employ customizable code templates to internals structure of code and data files.
Data Placement Options
You can now specify the .c and .h which you would like to define and declare global data.
Support for Continuous Time
The ERT target now supports code generation for continuous time block and continuous solvers.
Noninlined S-Functions Supported
The ERT target no longer requires that S-functions in a model be inlined with a corresponding TLC file for code generation.
Code Generation Unification
Real-Time Workshop Embedded Coder fully extends the set of features provided by Real-Time Workshop. Both products now share
a common code format.
New Optimization Pane
New Optimization Pane offers the following optimizations:
- Remove root-level I/O zero initialization
- Remove internal state zero initialization
- Use memset to initialize floats and doubles
- Optimize initialization code for model reference
- Remove code that protects against division arithmetic exceptions
Code Generation With User-Defined Data Types
Real-Time Workshop Embedded Coder now provides user-defined data type objects to map your own data type definitions to Simulink
built-in data types, and to generate #include directives specifying your own header files, containing your data type definitions.
Enhanced Custom Storage Classes
Custom storage classes (CSCs) have been enhanced and incorporated into the Simulink.Signal and Simulink.Parameter classes.
This simplifies code generation with CSCs.
Custom Storage Class Designer
New Custom Storage Class Designer (cscdesigner) tool lets you graphically define and view additional CSCs tailored to your
code generation requirements.
More Efficient Multi-Rate Multitasking Code Generation
Significantly faster and clearer code is generated for multi-rate multitasking models by grouping rates into separate model_step functions for the base rate task and each sub-rate task.
Expanded Documentation Collection
The Real-Time Workshop Embedded Coder documentation collection has been expanded:
- Real-Time Workshop Embedded Coder User's Guide
- The Module Packaging Features documentation
- Developing Embedded Targets for Real-Time Workshop Embedded Coder
Version 3.2.1
Released: 29 Apr 2004Real-Time Workshop Embedded Coder 3.2.1 resolves many customer-reported issues.
For additional information about Real-Time Workshop Embedded Coder 3.2.1, see the Release Notes.
Version 3.1
Released: 22 Sep 2003Version 3.1 includes the latest bug fixes.
Model Assistant Tool
The Model Assistant Tool is a utility that lets you configure a model for code generation quickly. The Model Assistant Tool
also helps you to identify aspects of your model that impede production deployment or limit code efficiency. You can use the
Model Assistant Tool at any point in your design cycle, as it is completely independent from the code generation process.
Four main components of the Model Assistant Tool provide a powerful and centralized interface for configuring settings for
Simulink blocks, Stateflow charts, models, and subsystems:
- General code generation goals
- Detailed code generation goals
- Model advisor
- Search and modify
Use the MATLAB command modelassistant(‘help’) to obtain full online documentation on the Model Assistant Tool. For an example
of how to use this with an embedded target, see the January 2003 issue of MATLAB Digest.
File Processing APIs to Customize Generated Code Files
New commands provide you with a high degree of flexibility in customizing generated code files. These commands make it easy to:
- Add custom code banners
- Insert code segments into existing files (e.g., #includes, #defines)
- Create new code files (.c, .h)
- Create custom main files
For tips on how to use these, see the September 2003 issue of MATLAB Digest.
Unified Get/Set Parameter APIs to Customize Code Generation
Unified commands for both Simulink and Stateflow are now available to get or set code generation target parameters, uget_paramand uset_param. To obtain the full list of accessible parameters, use the MATLAB command uset_param(‘model_name’,’help’). For tips on how to use these, see the May 2003 issue of MATLAB Digest.
Optimized ERT Targets
New ERT system target files with preset code generation options let you quickly generate fixed-point and floating-point code with optimized code efficiency.
Significant Code Efficiency Improvements
Version 3.0.1
Released: 26 Sep 2002Specification:
Intrinsic Fixed Point
The Real-Time Workshop Embedded Coder supports the intrinsic fixed-point data now available in Simulink and Stateflow.
DSP Blockset
Real-Time Workshop Embedded Coder now supports the DSP Blockset.
Reusable Subsystem
Subsystems can now be set as reusable, which results in a single function definition with multiple calls in the generated
code. This vastly improves code efficiency for reused systems. The parameter structure menu lets you specify how parameter
data is generated for reusable subsystems.
Block and Data Type Production Code Analysis Tables
A new MATLAB commandshowblockdatatypetable generates a lengthy list of data types supported for each Simulink block with an analysis of its suitability for use with
production code generation.
Rate Transition Block
The Real-Time Workshop Embedded Coder now supports the newRate Transition block, simplifying multirate system specification.
New Custom Storage Class for Data Access (GetSet for Data Store Memory)
A new custom storage class,GetSet, provides access methods for memory associated with data store memory blocks. This class supports signals of non-complex
data types. Its purpose is to generate code that reads (gets) and writes (sets) data using functions, especially for multitasking
systems.
Implementation:
Unified Code Generation
Code from Simulink and Stateflow is now fully integrated within the generated code functions and files.
Revised Packaging of Generated Code Files
For both Simulink and Stateflow, all code is now packaged inmodel.c, model_data.c, model.h, model_types.h, andmodel_private.h. The code is better partitioned and easier to understand. Auto generation ofert_main.cmakes the generated code even easier to understand and interface with any environment.
Real-Time Model Structure Replaces Real-Time Object and Logging Object
The Real-Time Workshop Embedded Coder now encapsulates information about the root model in the real-time model (RTM) data
structure, improving code clarity and efficiency.
Template Makefile for VxWorks Tornado
A simplified version of the Tornado target Makefile template is available for deploying Real-Time Workshop Embedded Coder
generated code on the VxWorks operating system. See ert_tornado.tmf in your matlabroot/rtw/c/ert directory.
Code Efficiency Optimizations
Real-Time Workshop Embedded Coder leverages the code efficiency optimizations from Real-Time Workshop, including conditional input branch execution and enhanced expression folding.
Code Generation Options
New Real-Time Workshop Embedded Coder options are available via the ERT Code Generation Options menus of the Real-Time Workshop page of the Simulation Parameters dialog box.
- Auto-Generated Main Program
This option generates a fully commented, model-specific example main program module,ert_main.c. The code requires minimal modification for deployment in your target environment. A Rate Monotonic Scheduler is included for multirate systems. - Generation Reusable Code
This option generates reusable, reentrant code from a model or subsystem. When this option is selected, data structures such as block states, parameters, external outputs, are passed as arguments tomodel_stepand other generated model functions. These data structures are also exported via model.h. When this option is not selected (the default), data structures are statically allocated and accessed directly in the code, making it neither reusable nor reentrant. - External Mode
This option now includes full support for all features of Simulink External Mode. This enables you to tune parameters and view or log signals as the program executes on an external target, perhaps for on-target rapid prototyping or processor-in-the-loop testing. - Hierarchical Parameter Structures
The parameter structure menu lets you control how parameter data is generated for reusable subsystems. - Include Model Name in Global Data Structures
This option puts the name of the model(model_)as a prefix to the symbolic names of generated global data structures. - Suppress Error Status in Real-Time Model Data Structure
This option determines if the error status field is included in the real-time model (RTM) data structure. Selecting this option may also cause the real-time model data structure to disappear completely from the generated code. - Target Floating-Point Math Environment (Single-Precision ISO C)
This option enables Real-Time Workshop Embedded Coder to generate calls to the ANSI C (ANSI X3.159-1989) math library for floating-point functions or to the ISO C (ISO/IEC 9899:1999) math library wherever possible. Single-precision ISO C can yield a significant code efficiency improvement.
Integration:
Embedded Target Integration Products
Real-Time Workshop Embedded Coder supports the Embedded Target product family for integration of specific targets, such as
the Motorola MPC555 and Infineon C166/ST Microelectronics ST10 family.
Embedded Target Integration Example (ECRobot)
The Embedded Coder Robot (ECRobot) target is an example of an integrated target based on Real-Time Workshop Embedded Coder.
The ECRobot target is available as an example and demonstration. The ECRobot target files are automatically installed with
Real-Time Workshop Embedded Coder.
Improved External (Legacy) Code Interface
Incorporation of external or legacy functions calls within the resulting code has been simplified.
Documentation:
An online Real-Time Workshop Embedded Coder tutorial is now available.
Version 3
Released: 05 Aug 2002Auto-generated Main Program
This new option lets you generate a fully commented, model-specific example main program module, ert_main.c. The code requires
minimal modification for deployment in your environment.
Code Generation Options
This section describes new Real-Time Workshop Embedded Coder code generation options. These options are available via the
ERT code generation options menus of the Real-Time Workshop page of the Simulation Parameters dialog box.
External Mode
Select this option to generate external mode communications support code in the target program.
Reusable Code
When this option is selected, the Real-Time Workshop Embedded Coder generates reusable, reentrant code for the model.
Include Model Name in Global Data Structures
When this option is selected (the default), the name of the model (model_) is prefixed to the symbolic names of generated
global data structures.
Suppress Error Status in Real-Time Model Data Structure
If this option is selected, the error status field is not included in RTM. Selecting this option may also cause the real-time
model data structure to disappear completely from the generated code.
Target Floating Point Math Environment
You may now choose between having Real-Time Workshop Embedded Coder generate calls to the ANSI C (ANSI X3.159-1989) math library
for floating point functions or to the ISO C (ISO/IEC 9899:1999) math library wherever possible.
ECRobot Target Example
The ECRobot (Embedded Coder Robot) target is a simple example of a custom target based on the Real-Time Workshop Embedded
Coder. The ECRobot target is available as an example and demonstration. The ECRobot target files are automatically installed
with the Real-Time Workshop Embedded Coder.
External Mode Support
The Real-Time Workshop Embedded Coder now includes full support for all features of Simulink external mode. This enables you
to tune parameters and view or log signals as the target program executes.
GetSet Custom Storage Class for Data Store Memory
A new custom storage class, GetSet, has been added to provide accessor methods for memory associated with data store memory
blocks. This custom storage class is used in conjunction with data store memory blocks. This class supports signals of non-complex
data types. Its purpose is to generate code that reads (gets) and writes (sets) data via functions.
Hierarchical Parameter Structures
The Parameter structure menu lets you control how parameter data is generated for reusable subsystems.
Real-Time Model Structure Replaces Real-Time Object and Logging Object
The Real-Time Workshop Embedded Coder now encapsulates information about the root model in the real-time model (RTM) data
structure.
Reusable Code Generation
The Generate Reusable Code option lets you generate reusable, reentrant code from a model or subsystem. When this option is
selected, data structures such as block states, parameters, external outputs, etc. are passed in (by reference) as arguments
to model_step and other generated model functions. These data structures are also exported via model.h.
When the Generate Reusable Code option (the default) is not selected, model data structures are statically allocated and accessed
directly in the model code. Therefore, the model code is neither reusable nor reentrant.
Revised Packaging of Generated Code Files
For both Simulink and Stateflow, all code is now packaged in model.c, model_data.c, model.h, model_types.h, and model_private.h.
Code is cleanly partitioned and easy to understand. Auto generation of ert_main.c and multirate scheduling code makes the
generated code simple to understand and interface.
Template Makefile for Tornado
A simplified version of the Tornado target template is available for makefile support deployment of Real-Time Workshop Embedded
Coder code on the VxWorks operating system. See matlabroot/rtw/c/ert/ert_tornado.tmf for details.
Version 2.1
Released: 09 Jan 2002Version 2.1 (1/9/02), includes enhanced Stateflow integration, bug fixes, and the following new features.
Real-Time Workshop 2.1 is also available.
Custom Data Types and Instances Exported
The data types and data instances that are associated with the use of the predefined custom storage classes Struct, BitField,
Const, ConstVolatile, and Volatile are now declared in the exported model header file, so that they are visible to application
or legacy code.
New code generation options:
Compact file packaging option
This option controls the set of source code and header files generated in the build directory. When this feature is selected,
Embedded Coder will generate separate header files for exported and private symbols. Further file partitions are available
using subsystem block or custom storage class properties.
Include model name in exported structures option
When this option is selected, the name of the model (model_) is prefixed to the symbolic names of exported global data structures
(i.e., global data structures that are visible to externally written code). When this option is not selected, the model name
is excluded, leading to more readable code.
Version 2
Released: 02 Jul 2001Real-Time Workshop 4.1 is also available.
Real-Time Workshop Code Optimizations
Real-Time Workshop Embedded Coder 2 includes significant reductions in code size compared to version 1. By taking advantage of new code optimizations in Real-Time Workshop, the ROM and RAM size, as well as execution speed of the Real-Time Workshop Embedded Coder generated code, is comparable with optimized handwritten code. Optimizations include the following:
- Expression folding improves code efficiency and readability
- Improved buffer allocation reduces global RAM usage
- Elaborated comments improve the readability of the generated code
- Block level optimizations eliminate redundant or unnecessary operations
Custom Storage Classes for Data Objects
Improved HTML Code Generation Report
The format of the Real-Time Workshop Embedded Coder code generation report has been enhanced to improve readability. The "Optimizations"
section lists additional options that will better optimize your code. Links from the report to the online documentation have
been expanded.
Streamlined Model Initialization
Model initialization code is streamlined to avoid redundant initialization.
Enhanced Fixed-Point Blockset Support
The Real-Time Workshop Embedded Coder S-function target now supports blocks from the Fixed-Point Blockset.
Enhanced Code Generation Options
Initialize Floats and Doubles to 0.0 - This option lets you control how internal or external storage for floats and doubles
is initialized. You can initialize floats and doubles to the integer bit pattern 0 (all bits off) or set float and double
storage explicitly to the value 0.0.
MAT-File Logging Off by Default
The MAT-file logging option is now off by default. This setting is recommended because it eliminates the extra code and memory
usage required to maintain logging variables.
Virtualized Output Ports Optimization
The virtualized output ports optimization lets you eliminate code and data storage associated with root output ports.
Store
