Main Content

target.LanguageImplementation Class

Namespace: target

Provide C and C++ compiler implementation details

Description

Use the target.LanguageImplementation class to provide implementation details about the C and C++ compiler for your target hardware. For example, byte ordering.

To create a target.LanguageImplementation object, use the target.create function.

Properties

expand all

Size in bits of the largest floating-point data type that you can atomically load and store on the hardware

Attributes:

GetAccess
public
SetAccess
public

Data Types: int32

Size in bits of the largest integer that you can atomically load and store on the hardware

Attributes:

GetAccess
public
SetAccess
public

Data Types: int32

Byte ordering implemented by target hardware.

Attributes:

GetAccess
public
SetAccess
public

Provides C and C++ data type definitions through properties described in this table.

Property NamePurpose

Char

target.DataTypes.Char object for char.

Short

target.DataTypes.Short object for short.

Int

target.DataTypes.Int object for int.

Long

target.DataTypes.Long object for long.

LongLong

target.DataTypes.LongLong object for longlong.

Half

target.DataTypes.Half object for a half precision data type that the target hardware uses.

Float

target.DataTypes.Float object for float.

Double

target.DataTypes.Double object for double.

Pointer

target.DataTypes.Pointer object for pointer.

SizeT

target.DataTypes.SizeT object for size_t.

PtrDiffT

target.DataTypes.PtrDiffT object for ptrdiff_t.

NonStandardDataTypes

target.FloatingPointDataType (Simulink Coder) object array for target hardware data types that are not specified by C language standards.

Attributes:

GetAccess
public
SetAccess
private

Value of Name property.

Attributes:

GetAccess
public
SetAccess
private

Name of the target language implementation

Attributes:

GetAccess
public
SetAccess
public

Native word size for the target hardware.

Attributes:

GetAccess
public
SetAccess
public

Data Types: int32

Examples

collapse all

This example shows how to register a new hardware device.

Create a target.Processor object for the new hardware device.

myProc = target.create("Processor",Name="MyProcessor", ...
                        Manufacturer="MyManufacturer");

Create a target.LanguageImplementation object for language implementation details.

myLanguageImplementation = target.create("LanguageImplementation", ...
                                          Name="MyProcessorImplementation");

Specify language implementation details.

myLanguageImplementation.Endianess = target.Endianess.Little;

myLanguageImplementation.AtomicIntegerSize = 64;
myLanguageImplementation.AtomicFloatSize = 64;
myLanguageImplementation.WordSize = 64;

myLanguageImplementation.DataTypes.Char.Size = 8;
myLanguageImplementation.DataTypes.Short.Size = 16;
myLanguageImplementation.DataTypes.Int.Size = 32;
myLanguageImplementation.DataTypes.Long.Size = 64;
myLanguageImplementation.DataTypes.LongLong.IsSupported = true;
myLanguageImplementation.DataTypes.LongLong.Size = 64;
myLanguageImplementation.DataTypes.Float.Size = 32;
myLanguageImplementation.DataTypes.Double.Size = 64;

myLanguageImplementation.DataTypes.Pointer.Size = 32;

myLanguageImplementation.DataTypes.SizeT.Size = 64;
myLanguageImplementation.DataTypes.PtrDiffT.Size = 64;

Associate the language implementation with the hardware device.

myProc.LanguageImplementations = myLanguageImplementation;

Add the target.Processor object to an internal database.

objectsAdded = target.add(myProc);
"target.add" summary:

    Objects added to internal database for current MATLAB session:
        target.LanguageImplementation    "MyProcessorImplementation"
        target.Processor                 "MyManufacturer-MyProcessor"
  • If you are using the MATLAB® Coder™: On the Hardware tab, you see the new device. Alternatively, you can now create a coder.Hardware object for this device by using the coder.hardware function.

  • If you are using the Simulink® Coder™: On the Hardware Implementation pane, you can now set Device vendor and Device type to MyManufacturer and MyProcessor respectively.

To remove the objects from the internal database, enter:

target.remove(objectsAdded)
"target.remove" summary:

    Objects removed from internal database:
        target.LanguageImplementation    "MyProcessorImplementation"
        target.Processor                 "MyManufacturer-MyProcessor"

If an existing hardware implementation contains most of the values that you want in a new hardware implementation, you can quickly create the new implementation by creating and modifying a copy of the existing implementation.

Create a target.Processor object for the new hardware device.

myProc = target.create("Processor",Name="MyProcessor", ...
                        Manufacturer="MyManufacturer");

Create a target.LanguageImplementation object that copies an existing language implementation.

myCopiedImplementation = target.create("LanguageImplementation", ...
                                      Name="MyCopiedImplementation", ...
                                      Copy="Atmel-AVR");

Specify the required language implementation details. For example, byte ordering.

myCopiedImplementation.Endianess = target.Endianess.Big;

Associate the language implementation with the hardware device.

myProc.LanguageImplementations = myCopiedImplementation;

Add the target.Processor object to an internal database.

objectsAdded = target.add(myProc);
"target.add" summary:

    Objects added to internal database for current MATLAB session:
        target.LanguageImplementation    "MyCopiedImplementation"
        target.Processor                 "MyManufacturer-MyProcessor"

To remove the objects from the internal database, enter:

target.remove(objectsAdded)
"target.remove" summary:

    Objects removed from internal database:
        target.LanguageImplementation    "MyCopiedImplementation"
        target.Processor                 "MyManufacturer-MyProcessor"

If your hardware device requires the same hardware implementation as an existing implementation, you can reuse the existing implementation.

Create a target.Processor object for the new hardware device.

myProc = target.create( "Processor",Name="MyProcessor", ...
                        Manufacturer="MyManufacturer");

Retrieve the existing implementation by using the identifier for the device vendor and type.

existingImplementation = target.get("LanguageImplementation", ...
                                  "ARM Compatible-ARM Cortex");

Associate the language implementation with the hardware device.

myProc.LanguageImplementations = existingImplementation;

Add the target.Processor object to an internal database.

objectsAdded = target.add(myProc);
"target.add" summary:

    Objects added to internal database for current MATLAB session:
        target.Processor                 "MyManufacturer-MyProcessor"
    Objects not added because they already exist:
        target.LanguageImplementation    "ARM Compatible-ARM Cortex"

To remove the objects from the internal database, enter:

target.remove(objectsAdded);
"target.remove" summary:

    Objects removed from internal database:
        target.Processor    "MyManufacturer-MyProcessor"

Version History

Introduced in R2019a