Process Overview
How TLC Determines S-Function Inlining Status
A Look at Inlined and Noninlined S-Function Code
Inlining Process
Search Algorithm for Locating TLC Files
Availability for Inlining and Noninlining
Related Manuals
Operating Sequence
Noninlined S-Function
Types of Inlining
Fully Inlined S-Function Example
Wrapper Inlined S-Function Example
Learning About the Structure of Record Files
Interpreting Records
Learning About the Anatomy of a TLC Script
Modifying read-guide.tlc
Passing and Using a Parameter
Review
Learning About Noninlined Code Generation
Understand Why You Use TLC to Inline S-Functions
Creating an Inlined S-Function
Getting Started
Modifying the Model
Changing the Loop Rolling Threshold
Learning More About TLC Loop Rolling
Getting Started
Generating and Running Code from the Model
Start the Debugger and Use Its Commands
Debugging timesN.tlc
Fixing the Bug and Verifying the Fix
Getting Started
Opening the Model and Generating Code
Understanding Why You Might Wrap
Getting Started
Generating Code Without a Wrapper
Generating Code Using a Wrapper
A Basic Example
Configuring for TLC Debugging
Output Streams
Variable Types
Records
Record Aliases
Available Target Files
Summary of Target File Usage
System Target Files
Simulink Coder Matrix Parameters
Object Records for Parameters
Object Records for Signals
Accessing Data Object Information via TLC
Controlling the Data Reference Threshold
Expanding Data References
Avoiding Data Reference Expansion
Restarting Code Generation
Caution Against Directly Accessing Record Fields
Exception to Using the Library Functions
Directives
Comments
Line Continuation
Target Language Value Types
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
Filenames and Search Paths
Tips for Debugging TLC Code
TLC Debugger Command Summary
Example .log File
Analyzing the Results
Analyzing the Report
Nonexecutable Directives
Improving Performance
Fully Inlined S-Functions
Function-Based or Wrapped Code Generation
S-Function Parameters
A Complete Example
Begin Identifiers with Uppercase Letters
Begin Global Variable Assignments with Uppercase Letters
Begin Local Variable Assignments with Lowercase Letters
Begin Functions Declared in block.tlc Files with Fcn
Do Not Hard-Code Variables Defined in commonsetup.tlc
Conditional Inclusion in Library Files
Code Defensively
BlockInstanceSetup(block, system)
BlockTypeSetup(block, system)
Enable(block, system)
Disable(block, system)
Start(block, system)
InitializeConditions(block, system)
Outputs(block, system)
Update(block, system)
Derivatives(block, system)
Terminate(block, system)
Overloading sigIdx
LibBlockInputSignal(portIdx, ucv, lcv, sigIdx)
LibBlockInputSignalAddr(portIdx, ucv, lcv, sigIdx)
LibBlockInputSignalAliasedThruDataTypeName(portIdx, reim)
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)
LibBlockNumInputPorts(block)
LibBlockOutputPortIndexMode(block, pidx)
LibBlockOutputSignal(portIdx, ucv, lcv, sigIdx)
LibBlockOutputSignalAddr(portIdx, ucv, lcv, sigIdx)
LibBlockOutputSignalAliasedThruDataTypeName(portIdx, reim)
LibBlockOutputSignalBeingMerged(portIdx)
LibBlockOutputSignalConnected(portIdx)
LibBlockOutputSignalDataTypeId(portIdx)
LibBlockOutputSignalDataTypeName(portIdx, reim)
LibBlockOutputSignalDimensions(portIdx)
LibBlockOutputSignalIsComplex(portldx)
LibBlockOutputSignalIsFrameData(portIdx)
LibBlockOutputSignalLocalSampleTimeIndex(portIdx)
LibBlockOutputSignalNumDimensions(portIdx)
LibBlockOutputSignalOffsetTime(portIdx)
LibBlockOutputSignalSampleTime(portIdx)
LibBlockOutputSignalSampleTimeIndex(portIdx)
LibBlockOutputSignalWidth(portIdx)
LibBlockMatrixParameterAddr(param, rucv, rlcv, ridx, cucv, clcv, cidx)
LibBlockMatrixParameterBaseAddr(param)
LibBlockParamSetting(bType, psType)
LibBlockParameter(param, ucv, lcv, sigIdx)
LibBlockParameterAddr(param, ucv, lcv, idx)
LibBlockParameterBaseAddr(param)
LibBlockParameterDataTypeId(param)
LibBlockParameterDataTypeName(param, reim)
LibBlockParameterDimensions(param)
LibBlockParameterIsComplex(param)
LibBlockParameterSize(param)
LibBlockParameterString(param)
LibBlockParameterValue(param, elIdx)
LibBlockParameterWidth(param)
LibBlockContinuousStateDerivative(ucv, lcv, idx)
LibBlockContStateDisabled(ucv, lcv, idx)
LibBlockDWork(dwork, ucv, lcv, idx)
LibBlockDWorkAddr(dwork, ucv, lcv, idx)
LibBlockDWorkDataTypeId(dwork)
LibBlockDWorkDataTypeName(dwork, reim)
LibBlockDWorkIsComplex(dwork)
LibBlockDWorkName(dwork)
LibBlockDWorkStorageClass(dwork)
LibBlockDWorkStorageTypeQualifier(dwork)
LibBlockDWorkUsedAsDiscreteState(dwork)
LibBlockDWorkWidth(dwork)
LibBlockDiscreteState(ucv, lcv, idx)
LibBlockIWork(definediwork, ucv, lcv, idx)
LibBlockMode(ucv, lcv, idx)
LibBlockNonSampledZC(ucv, lcv, NSZCIdx)
LibBlockPWork(definedpwork, ucv, lcv, idx)
LibBlockRWork(definedrwork, ucv, lcv, idx)
LibBlockZCSignalValue(ucv, lcv, zcsIdx, zcElIdx)
LibBlockReportFatalError(block, errorstring)
LibBlockReportWarning(block, warnstring)
LibGetBlockName(block)
LibGetBlockPath(block)
LibGetFormattedBlockPath(block)
LibAddToCommonIncludes(incFileName)
LibAddToModelSources(newFile)
LibCacheDefine(buffer)
LibCacheExtern(buffer)
LibCacheFunctionPrototype(buffer)
LibCacheTypedefs(buffer)
LibCallModelInitialize()
LibCallModelStep(tid)
LibCallModelTerminate()
LibCallSetEventForThisBaseStep(buffername)
LibCreateSourceFile(type, creator, name)
LibGetMdlPrvHdrBaseName()
LibGetMdlPubHdrBaseName()
LibGetMdlSrcBaseName()
LibGetModelDotCFile()
LibGetModelDotHFile()
LibGetModelName()
LibGetNumSourceFiles()
LibGetRTModelErrorStatus()
LibGetSourceFileCustomSection(file, attrib)
LibGetSourceFileFromIdx(fileIdx)
LibGetSourceFileTag(fileIdx)
LibMdlRegCustomCode(buffer, location)
LibMdlStartCustomCode(buffer, location)
LibMdlTerminateCustomCode(buffer, location)
LibSetRTModelErrorStatus(str)
LibSetSourceFileCodeTemplate(opFile, name)
LibSetSourceFileCustomSection(file, attrib, value)
LibSetSourceFileOutputDirectory(opFile, name)
LibSetSourceFileSection(fileH, section, value)
LibSystemDerivativeCustomCode(system, buffer, location)
LibSystemDisableCustomCode(system, buffer, location)
LibSystemEnableCustomCode(system, buffer, location)
LibSystemInitializeCustomCode(system, buffer, location)
LibSystemOutputCustomCode(system, buffer, location)
LibSystemUpdateCustomCode(system, buffer, location)
LibWriteModelData()
LibWriteModelInput(tid, rollThreshold)
LibWriteModelInputs()
LibWriteModelOutput(tid, rollThreshold)
LibWriteModelOutputs()
LibAsyncTaskAccessTimeInFcn(tid, fcnType)
LibBlockSampleTime(block)
LibGetClockTick(tid)
LibGetClockTickDataTypeId(tid)
LibGetClockTickHigh(tid)
LibGetClockTickStepSize(tid)
LibGetElapseTime(system)
LibGetElapseTimeCounter(system)
LibGetElapseTimeCounterDTypeId(system)
LibGetElapseTimeResolution(system)
LibGetGlobalTIDFromLocalSFcnTID(sfcnTID)
LibGetNumAsyncTasks()
LibGetNumSFcnSampleTimes(block)
LibGetNumSyncPeriodicTasks()
LibGetNumTasks()
LibGetSampleTimePeriodAndOffset(tid, idx)
LibGetSFcnTIDType(sfcnTID)
LibGetTaskTime(tid)
LibGetTaskTimeFromTID(block)
LibGetTID01EQ()
LibIsContinuous(TID)
LibIsDiscrete(TID)
LibIsSFcnSampleHit(sfcnTID)
LibIsSFcnSingleRate(block)
LibIsSFcnSpecialSampleHit(sfcnSTI, sfcnTID)
LibIsSingleRateModel()
LibIsSingleTasking()
LibIsZOHContinuous(TID)
LibNumAsynchronousSampleTimes()
LibNumDiscreteSampleTimes()
LibNumSynchronousSampleTimes()
LibPortBasedSampleTimeBlockIsTriggered(block)
LibSetVarNextHitTime(block, tNext)
LibTriggeredTID(tid)
LibBlockExecuteFcnDisable(block, callIdx)
LibBlockExecuteFcnEnable(block, callIdx)
LibBlockInputSignalAliasedThruDataTypeId(idx)
LibBlockOutputSignalAliasedThruDataTypeId(idx)
LibGenConstVectWithInit(data, typeId, varId)
LibGetBlockAttribute(block, attr)
LibGetCallerClockTickCounter(sfcnBlock)
LibGetCallerClockTickCounterHigh(sfcnBlock)
LibGetDataTypeComplexNameFromId(id)
LibGetDataTypeEnumFromId(id)
LibGetDataTypeIdAliasedThruToFromId(id)
LibGetDataTypeIdAliasedToFromId(id)
LibGetDataTypeIdResolvesToFromId(id)
LibGetDataTypeNameFromId(id)
LibGetDataTypeSLSizeFromId(id)
LibGetDataTypeStorageIdFromId(id)
LibGetFcnCallBlock(sfcnblock,callIdx)
LibGetRecordDataTypeId(rec)
LibGetRecordDimensions(rec)
LibGetRecordIsComplex(rec)
LibGetRecordWidth(rec)
LibGetT()
LibIsComplex(arg)
LibIsFirstInitCond()
LibIsMajorTimeStep()
LibIsMinorTimeStep()
LibManageAsyncCounter(sfcnBlock, callIdx)
LibMaxIntValue(dtype)
LibMinIntValue(dtype)
LibNeedAsyncCounter(sfcnBlock, callIdx)
LibSetAsyncClockTicks(sfcnBlock, callIdx, buf1, buf2)
LibSetAsyncCounter(sfcnBlock, callIdx, buf)
LibSetAsyncCounterHigh(sfcnBlock, callIdx, buf)
LibTIDInSystem(system, fcnType)
LibBlockInputSignalBufferDstPort(portIdx)
LibBlockInputSignalStorageClass(portIdx, sigIdx)
LibBlockInputSignalStorageTypeQualifier(portIdx, sigIdx)
LibBlockOutputSignalIsGlobal(portIdx)
LibBlockOutputSignalIsInBlockIO(portIdx)
LibBlockOutputSignalIsValidLValue(portIdx)
LibBlockOutputSignalStorageClass(portIdx)
LibBlockOutputSignalStorageTypeQualifier(portIdx)
LibBlockSrcSignalBlock(portIdx, sigIdx)
LibBlockSrcSignalIsDiscrete(portIdx, sigIdx)
LibBlockSrcSignalIsGlobalAndModifiable(portIdx, sigIdx)
LibBlockSrcSignalIsInvariant(portIdx, sigIdx)
LibGetModelReferenceUserData(modelName)
LibGetReferencedModelNames()
LibIsModelReferenceRTWTarget()
LibIsModelReferenceSimTarget()
LibIsModelReferenceTarget()
Usage Errors
Fatal (Internal) TLC Coding Errors
Formatting Error Messages
Testing Error Messages
Alphabetical List of Error Messages