Data Access for Prototyping and Debugging

Configure accessibility of data in the generated code

Signals, states, and block parameters that you create in a model appear in the generated code as variables. You can control the way that the code declares and defines these variables.

  • Manage access to signal data and specify parameter tunability.

  • Improve code readability and traceability.

  • Ease the integration of the generated code with your own code by specifying identifiers and file placement of declarations and definitions.

  • Generate efficient code by reducing memory usage and specifying numeric data types.

Topics

Data Storage in the Generated Code

How Generated Code Stores Internal Signal, State, and Parameter Data

To calculate output data from input data, the generated code must store some internal data in memory, such as block state data and nonscalar parameter data.

Standard Data Structures in the Generated Code

The generated code stores data, such as signals and states, in global structures. Use the structures to access and integrate with the data.

Use the Real-Time Model Data Structure

The real-time model data structure describes the generated model code and enables your code to interact with the generated code.

Apply Storage Classes to Individual Signal, State, and Parameter Data Elements

Control data representation in the generated code by applying storage classes directly, which overrides the default storage classes that you specify in the Code Mapping Editor.

Choose Storage Class for Controlling Data Representation in Generated Code

Choose a storage class to apply to data elements in a model, such as signals, states, and block parameters.

Use Enumerated Data in Generated Code

Enumerated data is data that is restricted to a finite set of values. Create enumerations in the generated code.

Data Stores in Generated Code

Use a data store to explicitly model a piece of shared global data in the generated code.

Parameter Data Types in the Generated Code

Optimize the generated code and generate code for specific processors by controlling the data types that store parameter data in computer memory.

Share Data Between Code Generated from Simulink, Stateflow, and MATLAB

Define data shared between Simulink, Stateflow, and MATLAB.

Optimize Generated Code Using Fixed-Point Data with Simulink®, Stateflow®, and MATLAB®

Generate fixed-point code in Simulink®, Stateflow®, and MATLAB®.

Optimize Speed and Size of Signal Processing Algorithm by Using Fixed-Point Data

Model a fixed-point acoustic noise canceller.

Array Layout

Code Generation of Matrices and Arrays

Work with code that the code generator produces for matrices and arrays.

Generate Row-Major Code for S-Functions

Enable existing S-functions for row-major code generation by specifying the array layout.

Generate Row-Major Code for Model That Contains a MATLAB Function Block

Use coder.rowMajor inside the MATLAB Function block to generate row-major code.

Column-Major Layout to Row-Major Layout Conversion of Models with Lookup Table Blocks

Convert existing column-major model to row-major for code generation.

Interpolation Algorithm for Row-Major Array Layout

Simulate and generate code by using the interpolation algorithm for row-major and column-major array layout.

Interpolation with Subtable Selection Algorithm for Row-Major Array Layout

Simulate and generate code by using the interpolation with subtable selection algorithm for row-major and column-major array layout.

Direct Lookup Table Algorithm for Row-Major Array Layout

Simulate and generate code by using the Direct Lookup Table algorithm for row-major and column-major array layout.

Access Data During Execution

Access Signal, State, and Parameter Data During Execution

As you iteratively develop a model, capture output signal and state data that model execution generates. Tune parameter values during execution to observe results on the outputs.

Preserve Variables in Generated Code

As you iteratively develop a model, you can tune block parameter values during simulation or execution of generated code to observe the results on signal and state values.

Switch Between Sets of Parameter Values During Simulation and Code Execution

Switch between independent sets of values for the same block parameters by storing the sets in an array of structures.

Create Tunable Calibration Parameter in the Generated Code

In the generated code, create tunable parameter data that you can access during rapid prototyping and calibration.

Reuse Parameter Data in Different Data Type Contexts

Reuse parameter data by creating a Simulink.Parameter object or numeric MATLAB variable that you can use in different data type contexts.

Limitations for Block Parameter Tunability in Generated Code

Limitations can prevent a block parameter from appearing in the generated code as tunable, which means you cannot interact with the parameter value after compiling the code.

Control Signal and State Initialization in the Generated Code

Generate code that enables you to store tunable initial conditions in memory, for example, for modeling a system that shuts down and restarts.

Initialization of Signal, State, and Parameter Data in the Generated Code

To match the numerics of a simulation in Simulink, the generated code assigns initial values to global data, especially for block states and parameters.

Specify Instance-Specific Parameter Values for Reusable Referenced Model

When you create a reusable component as a referenced model, configure block parameters to use the same value for instances of the component or a different value for each instance.

Organize Data into Structures in Generated Code

Create structures of signal, state, and parameter data in the generated code.