This hands-on, two-day course focuses on developing models in the Simulink® environment to deploy on embedded systems. The course is designed for Simulink users who intend to generate, validate, and customize embedded code using Embedded Coder®.
- Generated code structure and execution
- Code generation options and optimizations
- Integrating generated code with external code
- Generating code for multirate systems
- Customizing generated code
- Customizing data
Day 1 of 2
Generating Embedded Code
Objective: Configure Simulink models for embedded code generation and effectively interpret the generated code.
- Architecture of an embedded application
- System specification
- Generating code
- Code modules
- Logging intermediate signals
- Data structures in generated code
- Verifying generated code
- Embedded Coder® build process
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
- Profiling generated code
- Code generation objectives
Integrating Generated Code with External Code
Objective: Modify models and files to run generated code and external code together.
- External code integration overview
- Model entry points
- Creating an execution harness
- Controlling code destination
- Packaging generated 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
- Model function prototype considerations
- Reusable function interface
- Function defaults
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
- Impact of storage classes on symbols
Day 2 of 2
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
- Controlling storage classes with data objects
- Controlling data type and variable names
- Data dictionaries
Customizing Generated Code Architecture
Objective: Control the architecture of the generated code according to application requirements.
- Simulink model architecture
- Controlling code partitioning
- Generating reusable subsystem code
- Generating variant components
- Code placement options
Model Referencing and Bus Objects
Objective: Control the data type and storage class of bus objects and use them for generating code from models that reference other models.
- Creating reusable model references
- Controlling data type of bus signals
- Controlling storage class of bus signals
- Model Reference software testing
Scheduling Generated Code Execution
Objective: Generate code for multirate systems in single-tasking, multitasking, and function call-driven configurations.
- Execution schemes for single-rate and multirate systems
- Generated code for single-rate models
- Multirate single-tasking code
- Multirate multitasking code
- Generating exported functions
Improving Code Efficiency and Compliance
Objective: Inspect the efficiency of generated code and verify compliance with standards and guidelines.
- Model Advisor
- Hardware implementation parameters
- Compliance with standards and guidelines