Target Language Compiler |
 |
- Introduction
- Overview of the TLC Process
- Overview of the Code Generation Process
- Capabilities
- Customizing Output
- Inlining S-Functions
- Code Generation Process
- How TLC Determines S-Function Inlining Status
- A Look at Inlined and Noninlined S-Function Code
- Advantages of Inlining S-Functions
- Motivations
- Inlining Process
- Search Algorithm for Locating Target Files
- Availability for Inlining and Noninlining
- New Features and Compatibility Issues in
Versions 4.0, 4.1, and 5.0
- New Features Added in Version 5.0
- New Features Added in Version 4.1
- New Features Added in Version 4.0
- Compatibility Issues
- Where to Go from Here
- Related Manuals
- Code Architecture
- model.rtw and Target Language Compiler Overview
- The Target Language Compiler Process
- Inlining S-Function Concepts
- Noninlined S-Function
- Types of Inlining
- Fully Inlined S-Function Example
- Wrapper Inlined S-Function Example
- Introduction
- Reading Record Files with TLC
- Structure of Record Files
- Interpreting Records
- Anatomy of a TLC Script
- Modify read-guide.tlc
- Processing model.rtw Files with TLC Scripts
- Getting Started
- Counting Blocks and Subsystems
- Listing Block Names
- Passing and Using a Parameter
- Inlining S-Functions with TLC
- Noninlined Code Generation
- Why Use TLC to Implement S-functions?
- Creating an Inlined S-Function
- Scalar or Vector, It's the Same
- Exploring Variable Names and Loop Rolling
- Getting Started
- Modify the Model
- Change the Loop Rolling Threshold
- More on TLC Loop Rolling
- Debugging Your TLC Code
- Getting Started
- Generate and Run Code from the Model
- Start the Debugger and Explore Commands
- Debug gain.tlc
- Fix the Bug and Verify the Fix
- Using TLC Code Coverage to Aid Debugging
- Getting Started
- Open the Model and Generate Code
- Log Without Inline Parameters
- Wrapping User Code with TLC
- Why Wrap?
- Getting Started
- Generate Code Without a Wrapper
- Generate Code Using a Wrapper
- Build Process
- A Basic Example
- Invoking Code Generation
- The rtwgen Command
- The tlc Command
- Configuring TLC
- Code Generation Concepts
- Output Streams
- Variable Types
- Records
- Record Aliases
- TLC Files
- Available Target Files
- Summary of Target File Usage
- System Target Files
- Block Target Files
- Block Target File Mapping
- Data Handling with TLC: An Example
- Matrix Parameters in Real-Time Workshop
- Model.rtw File Overview
- Using Scopes in the model.rtw File
- Object Information in the model.rtw File
- Using Library Functions to Access model.rtw Contents
- Caution Against Directly Accessing Record Fields
- Exception to Using the Library Functions
- Compiler Directives
- Syntax
- Comments
- Line Continuation
- Target Language Values
- Target Language Expressions
- Formatting
- Conditional Inclusion
- Multiple Inclusion
- Object-Oriented Facility for Generating Target Code
- Output File Control
- Input File Control
- Asserts, Errors, Warnings, and Debug Messages
- Built-In Functions and Values
- TLC Reserved Constants
- Identifier Definition
- Variable Scoping
- Target Language Functions
- Command Line Arguments
- Filenames and Search Paths
- About the TLC Debugger
- Tips for Debugging TLC Code
- Using the TLC Debugger
- Tutorial
- TLC Debugger Command Summary
- TLC Coverage
- Using the TLC Coverage Option
- TLC Profiler
- Using the Profiler
- Writing Block Target Files to Inline S-Functions
- Fully Inlined S-Functions
- Function-Based or Wrappered Code Generation
- Inlining C MEX S-Functions
- S-Function Parameters
- A Complete Example
- Inlining M-File S-Functions
- Inlining Fortran (F-MEX) S-Functions
- TLC Coding Conventions
- Block Target File Methods
- Block Target File Mapping
- Block Functions
- Loop Rolling
- Error Reporting
- Obsolete Functions
- Target Language Compiler Functions
- Common Function Arguments
- Input Signal Functions
- LibBlockInputSignal(portIdx, ucv, lcv, sigIdx)
- Input Arguments
- General Usage
- LibBlockInputSignalAddr(portIdx, ucv, lcv, sigIdx)
- LibBlockInputSignalConnected(portIdx)
- LibBlockInputSignalDataTypeId(portIdx)
- LibBlockInputSignalDataTypeName(portIdx, reim)
- LibBlockInputSignalDimensions(portIdx)
- LibBlockInputSignalIsComplex(portIdx)
- LibBlockInputSignalIsFrameData(portIdx)
- LibBlockInputSignalLocalSampleTimeIndex(portIdx)
- LibBlockInputSignalNumDimensions(portIdx)
- LibBlockInputSignalOffsetTime(portIdx)
- LibBlockInputSignalSampleTime(portIdx)
- LibBlockInputSignalSampleTimeIndex(portIdx)
- LibBlockInputSignalWidth(portIdx)
- Output Signal Functions
- LibBlockOutputSignal(portIdx, ucv, lcv, sigIdx)
- LibBlockOutputSignalAddr(portIdx, ucv, lcv, sigIdx)
- LibBlockOutputSignalBeingMerged(portIdx)
- LibBlockOutputSignalConnected(portIdx)
- LibBlockOutputSignalDataTypeId(portIdx)
- LibBlockOutputSignalDataTypeName(portIdx, reim)
- LibBlockOutputSignalDimensions(portIdx)
- LibBlockOutputSignalIsComplex(portIdx)
- LibBlockOutputSignalIsFrameData(portIdx)
- LibBlockOutputSignalLocalSampleTimeIndex(portIdx)
- LibBlockOutputSignalNumDimensions(portIdx)
- LibBlockOutputSignalOffsetTime(portIdx)
- LibBlockOutputSignalSampleTime(portIdx)
- LibBlockOutputSignalSampleTimeIndex(portIdx)
- LibBlockOutputSignalWidth(portIdx)
- Parameter Functions
- LibBlockMatrixParameter(param,rucv,rlcv,ridx,cucv,clcv,cidx)
- LibBlockMatrixParameterAddr(param,rucv,rlcv,ridx,cucv,clcv,cidx)
- LibBlockMatrixParameterBaseAddr(param)
- LibBlockParameter(param, ucv, lcv, sigIdx)
- LibBlockParameterAddr(param, ucv, lcv, idx)
- LibBlockParameterBaseAddr(param)
- LibBlockParameterDataTypeId(param)
- LibBlockParameterDataTypeName(param, reim)
- LibBlockParameterDimensions(param)
- LibBlockParameterIsComplex(param)
- LibBlockParameterSize(param)
- Block State and Work Vector Functions
- LibBlockContinuousState(ucv, lcv, idx)
- LibBlockDWork(dwork, ucv, lcv, sigIdx)
- LibBlockDWorkAddr(dwork, ucv, lcv, idx)
- LibBlockDWorkDataTypeId(dwork)
- LibBlockDWorkDataTypeName(dwork, reim)
- LibBlockDWorkIsComplex(dwork)
- LibBlockDWorkName(dwork)
- LibBlockDWorkStorageClass(dwork)
- LibBlockDWorkUsedAsDiscreteState(dwork)
- LibBlockDWorkWidth(dwork)
- LibBlockDiscreteState(ucv, lcv, idx)
- LibBlockIWork(definediwork, ucv, lcv, idx)
- LibBlockMode(ucv, lcv, idx)
- LibBlockNonSampledZC(ucv, lcv, NonSampledZCIdx)
- LibBlockPWork(definedpwork, ucv, lcv, idx)
- LibBlockRWork(definedrwork, ucv, lcv, idx)
- Block Path and Error Reporting Functions
- LibBlockReportError(block,errorstring)
- LibBlockReportFatalError(block,errorstring)
- LibBlockReportWarning(block,warnstring)
- LibGetBlockPath(block)
- LibGetFormattedBlockPath(block)
- Code Configuration Functions
- LibAddToCommonIncludes(incFileName)
- LibAddToModelSources(newFile)
- LibCacheDefine(buffer)
- LibCacheExtern(buffer)
- LibCacheFunctionPrototype(buffer)
- LibCacheIncludes(buffer)
- LibCacheTypedefs(buffer)
- LibRegisterGNUMathFcnPrototypes()
- LibRegisterISOCMathFcnPrototypes()
- LibRegisterMathFcnPrototype(RTWName,
RTWType, IsExprOK, IsCplx, NumInputs,
FcnName, FcnType, HdrFile)
- Sample Time Functions
- LibGetGlobalTIDFromLocalSFcnTID(sfcnTID)
- LibGetNumSFcnSampleTimes(block)
- LibGetSFcnTIDType(sfcnTID)
- LibGetTaskTimeFromTID(block)
- LibIsContinuous(TID)
- LibIsDiscrete(TID)
- LibIsSFcnSampleHit(sfcnTID)
- LibIsSFcnSingleRate(block)
- LibIsSFcnSpecialSampleHit(sfcnSTI, sfcnTID)
- LibPortBasedSampleTimeBlockIsTriggered(block)
- LibSetVarNextHitTime(block,tNext)
- Other Useful Functions
- LibCallFCSS(system, simObject, portEl, tidVal)
- LibGenConstVectWithInit(data, typeId, varId)
- LibGetDataTypeComplexNameFromId(id)
- LibGetDataTypeEnumFromId(id)
- LibGetDataTypeIdAliasedToFromId(id)
- LibGetDataTypeIdResolvesToFromId(id)
- LibGetDataTypeNameFromId(id)
- LibGetT()
- LibIsMajorTimeStep()
- LibIsMinorTimeStep()
- LibIsComplex(arg)
- LibIsFirstInitCond(s)
- LibMaxIntValue(dtype)
- LibMinIntValue(dtype)
- Advanced Functions
- LibBlockInputSignalBufferDstPort(portIdx)
- LibBlockInputSignalStorageClass(portIdx, idx)
- LibBlockInputSignalStorageTypeQualifier(portIdx, idx)
- LibBlockOutputSignalIsGlobal(portIdx)
- LibBlockOutputSignalIsInBlockIO(portIdx)
- LibBlockOutputSignalIsValidLValue(portIdx)
- LibBlockOutputSignalStorageClass(portIdx)
- LibBlockOutputSignalStorageTypeQualifier(portIdx)
- LibBlockSrcSignalBlock(portIdx, idx)
- LibBlockSrcSignalIsDiscrete(portIdx, idx)
- LibBlockSrcSignalIsGlobalAndModifiable(portIdx, idx)
- LibBlockSrcSignalIsInvariant(portIdx, idx)
- LibCreateHomogMathFcnRec(FcnName, FcnTypeId)
- LibGetMathConstant(ConstName,ioTypeId)
- LibMathFcnExists(RTWFcnName, RTWFcnTypeId)
- LibSetMathFcnRecArgExpr(FcnRec, idx, argStr)
- model.rtw File Contents
- Using the model.rtw File
- General model.rtw Concepts
- Code Data Structure Concepts
- Inline Parameters On Code Structure
- model.rtw Changes Between
Real-Time Workshop 5.0 and 4.1
- General Information and Solver Specification
- RTWGenSettings Record
- Data Logging Information (DataLoggingOpts)
- Data Structure Sizes
- Sample Time Information
- Data Type Information (DataTypes record)
- Target Properties
- Block Type Counts
- External Inputs and Outputs
- Block I/O Information
- Signal Connections
- Using BlockOutput[i].SigSrc
- Data Type Work (DWork) Information
- Continuous States
- Nonsampled Zero Crossings (NonsampledZCs)
- Zero Crossings Events (ZCEvents)
- Block Record Defaults
- Parameter Record Defaults
- Data and Control Port Defaults
- Model Parameters Record
- Reduced Blocks
- Custom Storage Class Record
- Model Hierarchy
- System Defaults (canonical inputs, outputs, and parameters)
- System Record
- Stateflow Record
- Model Checksums
- Block Specific Records
- Subsystem Block Specific Records
- Linear Block Specific Records
- Object Records
- Generating Errors from TLC-Files
- Usage Errors
- Fatal (Internal) TLC Coding Errors
- Formatting Error Messages
- TLC Error Messages
- TLC Function Library Error Messages
- The Emacs Editor
- Getting Started
- Creating a TAGS File
| Target Language Compiler | |