target.Timer - Provide timer details for processor - MATLAB (original) (raw)
target.Timer Class
Namespace: target
Provide timer details for processor
Since R2020b
Description
Use the target.Timer
class to provide timer details for your processor. For example, information about the C or C++ function interface and implementation, frequency, and timer count direction. To provide information about instrumenting C or C++ code for profiling, you can associate the timer details with a target.Processor
object.
To create a target.Timer
object, use the target.create function. Create the object and then use separate steps to specify properties. Or, using name-value arguments, create the object and specify properties in a single step.
Properties
Name of timer.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Direction of timer count.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Information about the API implementation, which is used to determine the current time.
If you use name-value arguments to create a target.Timer
object, for the APIImplementation
property, specify these arguments.
Name | Description |
---|---|
'FunctionName' | Required. Name property oftarget.Function object. |
'FunctionReturnType' | Required. ReturnType property oftarget.Function object. |
'IncludeFiles' | Required. IncludeFiles property oftarget.BuildDependencies object |
'FunctionLanguage' | Optional. Language property oftarget.API object. |
'SourceFiles' | Optional. SourceFiles property oftarget.BuildDependencies object. |
'IncludePaths' | Optional. IncludePaths property oftarget.BuildDependencies object |
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Frequency of the unit returned by the timer function. This value can be used to convert timer function output to seconds. The helper classtarget.unit.Frequency
contains some common frequency units.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Data Types: uint64
Examples
Create a timer object for your development computer.
Create the function signature for a timer. In this example, the function returns a uint64
data type and the function name timestamp_x86
.
timerSignature = target.create('Function'); timerSignature.Name = 'timestamp_x86'; timerSignature.ReturnType = 'uint64';
Capture the function in an API object.
timerApi = target.create('API'); timerApi.Functions = timerSignature; timerApi.Language = target.Language.C; timerApi.Name = 'Linux Timer API';
Capture the dependencies of the function, that is, the source and header files that are required to run the function.
timerDependencies = target.create('BuildDependencies'); timerDependencies.IncludeFiles = {'host_timer_x86.h'}; timerDependencies.IncludePaths = ... {'$(MATLAB_ROOT)/toolbox/coder/profile/src'}; timerDependencies.SourceFiles = {'host_timer_x86.c'};
Create an object that combines the API and dependencies.
timerImplementation = target.create('APIImplementation'); timerImplementation.API = timerApi; timerImplementation.BuildDependencies = timerDependencies; timerImplementation.Name = 'Linux Timer Implementation';
Create the timer object and associate it with the timer information.
timer = target.create('Timer'); timer.APIImplementation = timerImplementation; timer.Name = 'Linux Timer';
Note
Using name-value arguments, you can create the timer object with this command.
timer = target.create('Timer', 'Name', 'Linux Timer', ... 'FunctionName', 'timestamp_x86', ... 'FunctionReturnType', 'uint64', ... 'FunctionLanguage', target.Language.C, ... 'SourceFiles', {'host_timer_x86.c'}, ... 'IncludeFiles', {'host_timer_x86.h'}, ... 'IncludePaths', {'$(MATLAB_ROOT)/toolbox/coder/profile/src'})
Assign the timer and add-ons to the processor object.
processor = target.get('Processor', 'Intel-x86-64 (Linux 64)'); processor.Timers = timer;
You can create a new timer object by copying an existing timer object and modifying specific property values of the copy.
newTimer = target.create('Timer', ... 'Copy', 'Linux Timer', ... 'Name', 'NewTimerName', ... 'FunctionName', 'newFunctioName');
Version History
Introduced in R2020b