Skip to Main Content Skip to Search
Home |   Select Country  Choose Country  |  Contact Us  |  Cart Store 
Create Account | Log In
Products & Services Industries Academia Support User Community Company

 

Real-Time Workshop® Embedded Coder™ 5.1

Latest Features


Version 5.1

Released: 01 Mar 2008
 

Version 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


Version 5.0.1

Released: 08 May 2008
 

Version 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:

Version 5.0

Released: 01 Sep 2007
 

Version 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_step function 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 2007
 
Real-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:

Version 4.6

Released: 01 Mar 2007
 

Version 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 2006
 

Version 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
See the Release Notes for details.

Version 4.4.1

Released: 20 Apr 2006
 
Real-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:

Version 4.4

Released: 01 Mar 2006
 

Version 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 2005
 

Version 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 2005
 
Real-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:

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 2004
 

Version 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 2004
 

Module 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 2004
 

Real-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 2003
 

Version 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

A number of code efficiency improvements were implemented especially in the area of table lookups, math operations, and RAM usage. Optimizations involve both fixed-point and floating-point code.

Version 3.0.1

Released: 26 Sep 2002
 

Specification:

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 to model_step and 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 2002
 

Auto-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 2002
 

Version 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 2001
 

Real-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

Custom Storage Classes for Data Objects

Real-Time Workshop Embedded Coder implements a number of predefined custom storage classes that let you define and generate constructs such as bit fields or structures from your model, and easily interface external, handwritten data structures. These classes extend the built-in storage classes provided by Real-Time Workshop. By associating a block signal, state, or parameter with a data object, you can easily export generated data structures into legacy code, import legacy data structures into generated code, or automatically generate data-exchange standards such as ASAM/ASAP2. Extending Simulink data objects to represent virtually any class of data is easily achieved with the new Simulink Data Class Designer. The new custom storage classes give embedded system designers greater control over the representation of data.

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.

Contact sales
Free technical kit
Trial software
E-mail this page

Get Pricing and
Licensing Options

Update to the Latest Version