Target Language Compiler
Customize generated code, inline code generated for S-Function blocks, and generate additional or different types of files
Target Language Compiler (TLC) is an integral part of the code generator. Use TLC to customize generated code. Through customization, you can produce platform-specific code and incorporate your own algorithmic changes for performance, code size, or compatibility with existing methods.
With the Target Language Compiler, you can :
Customize the set of options specified by your system target file.
Inline the code for S-Function blocks.
Generate additional or different types of files.
To learn about the basics of TLC, see Target Language Compiler Basics.
For simpler alternative approaches for interfacing between generated and external code, see External Code Import.
Topics
Getting Started
- Target Language Compiler Basics
Use the Target Language Compiler to produce platform-specific code and incorporate your own algorithmic changes for performance, code size, or compatibility with existing methods that you prefer to maintain. - Why Use the Target Language Compiler?
Use the Target Language Compiler to customize the set of options specified by your system target file, inline the code for S-Function blocks, or generate additional or different types of files. - The Advantages of Inlining S-Functions
Determine when, how, and why to inline S-functions. - Code Architecture
Learn what information a block object captures. - Target Language Compiler Process
Learn how the Target Language Compiler interprets
files.model
.rtw - Inlining S-Functions
Apply techniques for inlining S-functions. - Improve Code Efficiency and Integration of Inlined S-Functions
Learn how to enable the enhanced TLC block interface to effectively integrate S-Function block code into generated code.
Target Language Compiler Tutorials
- Advice About TLC Tutorials
The TLC tutorials describe why and how to use TLC. - Read Record Files with TLC
Learn how TLC accesses record files and interprets their contents. - Inline S-Functions with TLC
TLC inlines S-functions, resulting in faster, optimized code. - Explore Variable Names and Loop Rolling
Understand how and when TLC outputs loops and variable names. - Debug Your TLC Code
Invoke TLC debugger commands, set breakpoints, and trace code execution. - TLC Code Coverage to Aid Debugging
Use TLC coverage statistics to help identify bugs in TLC code. - Wrap User Code with TLC
Use TLC to integrate legacy and proprietary code into compiled models.
Code Generation Architecture
- Build Process
Create and use target language files. - Configure TLC
Customize builds by passing configuration data to theset_param
command. - Configure Generated Code with TLC
Use the Target Language Compiler to generate source code in specific ways or to give the code-specific characteristics. - Code Generation Concepts
Understand TLC variables and file and record handling. - TLC Files
Learn about the roles and varieties of system and block target files. - Data Handling with TLC
TLC library functions can transform data into data structures.
model.rtw File
- model.rtw File and Scopes
The
file is a partial representation of a model generated by the build process for use by the Target Language Compiler.model
.rtw - Data Object Information in model.rtw File
Access information about data objects in the
file.model
.rtw - Data References in the model.rtw File
Simulink® uses data references to optimize data access during code generation. - Exception to Using the Library Functions that Access model.rtw
Access parameter settings for a block in the
records.model
.rtw - Access Memory in Generated Code Using Global Data Map
Generate TLC global data map record inmodel.rtw
file.
Directives and Built-in Functions
- Target Language Compiler Directives
Learn the syntax and formats of directives, built-in functions, signal and parameter values, expressions, and comments. - Command-Line Arguments
Specify TLC calling arguments, filenames, and search paths.
S-Function Inlining
- Inline S-Functions
Write S-functions to be used for code generation. - Inline C MEX S-Functions
Handle calls made by C MEX S-functions. - TLC Coding Conventions
Observe case conventions and use library functions to make your TLC code more robust. - Block Target File Methods
Use polymorphic block functions combined with the Target Language Compiler library functions to write a block target file. - Loop Rolling
Use the%roll
directive to indicate whether the code generator unrollsfor
loops.
TLC Function Library Reference
- Target Language Compiler Library Functions Overview
Use library functions to access many of the parameter name/parameter values pairs in the block record. - Target Language Compiler Function Conventions
Apply proper TLC function syntax and conventions. - Input Signal Functions
These TLC Functions process and report on input signals. - Output Signal Functions
These TLC functions process and report on output signals. - Parameter Functions
These functions process model parameters. - Block State and Work Vector Functions
These functions handle storage and states. - Block Compatibility Functions
These TLC functions are for specifying block compatibility with code generation features. - Block Path and Error Reporting Functions
These functions navigate paths and handle error conditions. - Code Configuration Functions
These functions are for tailoring code elements and comments. - Sample Time Functions
These functions are for handling continuous and discrete time. - Miscellaneous Functions
These functions are not elsewhere classified. - Advanced Functions
These functions are generally required only for special situations.
Debugging and Error Handling
- Using the TLC Debugger
Use the TLC debugger to execute TLC code line-by-line, analyze and/or change variables in a specified block scope, and view the TLC call stack. - TLC Coverage
Determine what TLC statements are executed. - TLC Profiler
Measure the execution time of each TLC function. - TLC Error Handling
Use this alphabetical list of error messages to detect and address error conditions in your TLC code.