target.MainFunction - Provide C and C++ dependencies for main function of target
hardware application - MATLAB ([original](https://in.mathworks.com/help/ecoder/ref/target.mainfunction-class.html)) ([raw](?raw))
Namespace: target
Provide C and C++ dependencies for main
function of target hardware application
Since R2020b
Description
Use the target.MainFunction
class to provide main
function dependencies for an application main
function that runs on your target hardware. For example, C and C++ initialization and termination code,include
preprocessor directives, and specification ofmain
function arguments for the application.
To create a target.MainFunction
object, use the target.create function.
Properties
Name of the collection of main
dependencies.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Compiler build tool dependencies of the main
function, which include header files, source files, and libraries.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Capture run-time command-line argument dependencies.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Array of header files that must be included in a target main
function by using the preprocessor directive #include "path-spec"
.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Array of header files that must be included in a target main
function by using the preprocessor directive #include_`<path-spec>`_
.
Attributes:
GetAccess | public |
---|---|
SetAccess | protected |
Formatted string of C or C++ code that the main
function uses to initialize target resources.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Formatted string of C or C++ code that the main
function uses to terminate target resources.
Attributes:
GetAccess | public |
---|---|
SetAccess | public |
Examples
Create a target.MainFunction
object and associate it with a target.Board object
, which captures themain
function dependencies for an Arduino® board. Workflows, such as processor-in-the-loop (PIL), can use this information when generating a main
function for an application that runs on the target hardware.
board = target.create('Board', 'Name', 'Arduino Board') mainFunction = target.create('MainFunction'); mainFunction.Name = 'Arduino Main Dependencies';
mainFunction.IncludeFiles = { 'Arduino.h' }; mainFunction.InitializationCode = fileread('arduino_main_initialization.c');
board.MainFunctions = mainFunction;
In the code snippet, arduino_main_initialization.c
contains C code. For example:
/* Initialize system */ init();
This code snippet from Set Up PIL Connectivity by Using Target Framework shows how you can create and use a target.MainFunction
object to specifymain
function arguments that are required for an API implementation.
comms = target.create('CommunicationInterface'); comms.Name = 'Linux TCP Interface'; comms.Channel = 'TCPChannel'; comms.APIImplementations = target.create('APIImplementation', ... 'Name', 'x86 rtiostream Implementation'); comms.APIImplementations.API = target.create('API', 'Name', 'rtiostream'); comms.APIImplementations.BuildDependencies = target.create('BuildDependencies'); comms.APIImplementations.BuildDependencies.SourceFiles = ... {fullfile('$(MATLABROOT)', ... 'toolbox', ... 'coder', ... 'rtiostream', ... 'src', ... 'rtiostreamtcpip', ... 'rtiostream_tcpip.c')}; comms.APIImplementations.MainFunction = target.create('MainFunction', ... 'Name', 'TCP RtIOStream Main'); comms.APIImplementations.MainFunction.Arguments = {'-blocking', '1', '-port', '0'}; hostTarget.CommunicationInterfaces = comms;
Version History
Introduced in R2020b