coder.profile.StackDriver - Specify driver to obtain stack usage data from target hardware - MATLAB (original) (raw)
Main Content
Specify driver to obtain stack usage data from target hardware
Since R2022a
Description
Specify a driver implementation that obtains stack usage data from the target hardware during processor-in-the-loop (PIL) execution
Creation
stackUsageDriver = coder.profile.StackDriver()
returns an object. Specify the driver implementation by providing values for these properties:
PtrDataType
HeaderFile
SourceFile
IncludePaths
DriverFunction
Properties
Data type of pointer that the driver function returns. If the target hardware is your development computer, use 'uint64'
.
Example: stackUsageDriver.PtrDataType = 'uint64';
Data Types: char
Name of the header file that must be included in the compilation of the driver function.
Example: stackUsageDriver.HeaderFile = 'myHeaderFile.h';
Data Types: char
Name of the source file for the driver function.
Example: stackUsageDriver.SourceFile = 'mySourceFile.c';
Data Types: char
Paths to folders that must be included in the compilation of the driver function.
Example: stackUsageDriver.IncludePaths = {'path/To/myFolder1', ... 'path/To/myFolder2', ... 'path/To/myFolder3'};
Data Types: char
Name of the driver function.
Example: stackUsageDriver.DriverFunction = 'myDriverFunction';
Data Types: char
Examples
Obtain Stack Usage Data From Target Hardware.
A PIL execution requires a driver implementation that obtains stack usage data from the target hardware.
When you set up PIL target connectivity, specify the driver through an [rtw.connectivity.Config](rtw.connectivity.config.html)
subclass. This code provides an example.
classdef overheadConnectivityConfig < rtw.connectivity.Config methods function this = customConnectivityConfig(componentArgs)
% Create builder
targetApplicationFramework = ...
mypil.TargetApplicationFramework(componentArgs);
builder = rtw.connectivity.MakefileBuilder(componentArgs, ...
targetApplicationFramework, '');
% Create launcher
launcher = mypil.Launcher(componentArgs, builder);
% Set up communication
hostCommunicator = rtw.connectivity.RtIOStreamHostCommunicator(...
componentArgs, ...
launcher, ...
rtiostreamLibTCPIP);
% Call super class constructor to register components
this@rtw.connectivity.Config(componentArgs,...
builder,...
launcher,...
hostCommunicator);
% Specify driver implementation that obtains stack usage
% data from the target hardware
stackUsageDriver = coder.profile.StackDriver();
stackUsageDriver.PtrDataType = 'uint64';
stackUsageDriver.HeaderFile = 'myHeaderFile.h';
stackUsageDriver.SourceFile = 'mySourceFile.c';
stackUsageDriver.IncludePaths = {'path/To/myFolder1', ...
'path/To/myFolder2', ...
'path/To/myFolder3'};
stackUsageDriver.DriverFunction = 'myDriverFunction';
this.setStackDriver(stackUsageDriver);
end
end end
For more information about setting up PIL target connectivity, see:
- Create PIL Target Connectivity Configuration for Simulink
- Create PIL Target Connectivity Configuration for MATLAB
Version History
Introduced in R2022a