Embedded Coder for Production Code Generation

Prerequisites

Simulink for System and Algorithm Modeling (or Simulink for Automotive System Design or Simulink for Aerospace System Design) and Simulink Model Management and Architecture. Knowledge of C programming language.

View details

Day 1 of 3
Generating Embedded Code

Objective: Configure Simulink models for embedded code generation and effectively interpret the generated code.

  • System specification
  • Generating code
  • Code modules
  • Data structures in generated code
  • Embedded Coder build process
Integrating Generated Code with External Code

Objective: Modify models and files to run generated code and external code together.

  • Overview of external code integration
  • Overview of model entry points
  • Using an execution harness
  • Including custom routines
  • Configuring data exchange with external code
Real-Time Execution

Objective: Generate code for multirate systems in single-tasking and multitasking configurations.

  • Real-time harness
  • Execution schemes for single-rate and multirate systems
  • Generated code for single-rate models
  • Multirate single-tasking code
  • Multirate multitasking code
Controlling Function Prototypes

Objective: Customize function prototypes of model entry points in the generated code.

  • Default model function prototype
  • Modifying function prototypes
  • Generated code with modified function prototypes
  • Calling generated code with customized entry points
  • Model function prototype considerations
Day 2 of 3
Optimizing Generated Code

Objective: Identify the requirements of the application at hand and configure optimization settings to satisfy these requirements.

  • Optimization considerations
  • Removing unnecessary code
  • Removing unnecessary data support
  • Optimizing data storage
  • Code generation objectives
Customizing Data Characteristics in Simulink

Objective: Control the data types and storage classes of data in Simulink.

  • Data characteristics
  • Data type classification
  • Simulink data type configuration
  • Setting signal storage classes
  • Setting state storage classes
  • Setting parameter storage classes
  • Impact of storage classes on symbols
Customizing Data Characteristics Using Data Objects

Objective: Control the data types and storage classes of data using data objects.

  • Simulink data objects overview
  • Controlling data types with data objects
  • Creating reconfigurable data types
  • Custom storage classes
  • Controlling storage classes with data objects
  • Controlling data type and variable names
Creating Custom Storage Classes

Objective: Design custom storage classes and use them for code generation.

  • User-defined custom storage classes
  • Creating a Simulink data class package
  • Creating a custom storage class
  • Using custom storage classes
Bus Object and Model Referencing

Objective: Control the data type and storage class of bus objects and use them for generating code from models that reference other models.

  • Bus signals and model referencing
  • Controlling the data type of bus signals
  • Controlling the storage class of bus signals
Day 3 of 3
Customizing Generated Code Architecture

Objective: Control the architecture of the generated code according to application requirements.

  • Simulink model architecture
  • Controlling Simulink code partitioning
  • Generating reusable code
  • Data placement options
  • Priority of data placement controls
Advanced Customization Techniques

Objective: Use code generation templates to control the generated files.

  • Review of the code generation process
  • Overview of code generation templates
  • Custom file processing
  • Defining code generation templates
  • Using code generation templates
Deploying Generated Code

Objective: Create a custom target for an Arduino® board and deploy code using the target.

  • Motivation for custom targets
  • Custom target development process
  • The system target file
  • Creating a custom Arduino target
  • Template makefiles
  • Intervening in the build process
  • Deploying code to an Arduino board
  • Setting up configuration parameters
Developing Device Drivers

Objective: Identify the workflow for developing device drivers and develop device drivers for an Arduino board.

  • Device drivers overview
  • Using the Legacy Code Tool
  • Customizing device driver components
  • Creating a device driver library
Improving Code Efficiency and Compliance

Objective: Inspect the efficiency of generated code and verify compliance with standards and guidelines.

  • The Model Advisor
  • Hardware implementation parameters
  • Compliance with standards and guidelines