主要内容

target.LanguageImplementation 类

R2026b

命名空间: target

提供 C 和 C++ 编译器实现详细信息

描述

使用 target.LanguageImplementation 类为您的目标硬件提供有关 C 和 C++ 编译器的实现详细信息。例如,字节顺序。

使用 target.create 函数创建 target.LanguageImplementation 对象。

属性

全部展开

可以在硬件上以原子方式加载和存储的最大浮点数据类型的大小(以位为单位)

属性:

GetAccess
public
SetAccess
public

数据类型: int32

可以在硬件上以原子方式加载和存储的最大整数的大小(以位为单位)

属性:

GetAccess
public
SetAccess
public

数据类型: int32

由目标硬件实现的字节顺序。

属性:

GetAccess
public
SetAccess
public

通过下表中所述的属性提供 C 和 C++ 数据类型定义。

属性名称用途

Char

char 的 target.DataTypes.Char 对象。

Short

short 的 target.DataTypes.Short 对象。

Int

int 的 target.DataTypes.Int 对象。

Long

long 的 target.DataTypes.Long 对象。

LongLong

longlong 的 target.DataTypes.LongLong 对象。

Half

目标硬件使用的半精度数据类型的 target.DataTypes.Half 对象。

Float

float 的 target.DataTypes.Float 对象。

Double

double 的 target.DataTypes.Double 对象。

Pointer

pointer 的 target.DataTypes.Pointer 对象。

SizeT

size_t 的 target.DataTypes.SizeT 对象。

PtrDiffT

ptrdiff_t 的 target.DataTypes.PtrDiffT 对象。

NonStandardDataTypes

用于目标硬件数据类型的 target.FloatingPointDataType (Simulink Coder) 对象数组,这些数据类型未经 C 语言标准指定。

属性:

GetAccess
public
SetAccess
private

Name 属性的值。

属性:

GetAccess
public
SetAccess
private

目标语言实现的名称

属性:

GetAccess
public
SetAccess
public

目标硬件的原生字长。

属性:

GetAccess
public
SetAccess
public

数据类型: int32

示例

全部折叠

此示例说明如何注册新硬件设备。

为新硬件设备创建一个 target.Processor 对象。

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

为语言实现详细信息创建一个 target.LanguageImplementation 对象。

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

指定语言实现详细信息。

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;

将语言实现与硬件设备相关联。

myProc.LanguageImplementations = myLanguageImplementation;

将 target.Processor 对象添加到内部数据库中。

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

    Objects added to internal database for current MATLAB session:
        target.LanguageImplementation    "MyProcessorImplementation"
        target.Processor                 "MyManufacturer-MyProcessor"
  • 如果您使用的是 MATLAB® Coder™:在硬件选项卡上,您会看到新设备。或者,您现在可以使用 coder.hardware 函数为此设备创建一个 coder.Hardware 对象。

  • 如果您使用的是 Simulink® Coder™:在硬件实现窗格中,您现在可以将设备供应商和设备类型分别设置为 MyManufacturer 和 MyProcessor。

要从内部数据库中删除对象,请输入:

target.remove(objectsAdded)
target.remove summary:

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

如果某个现有硬件实现包含新硬件实现中所需的大部分值,则可以通过创建和修改该现有实现的副本来快速创建新实现。

为新硬件设备创建一个 target.Processor 对象。

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

创建一个用于复制现有语言实现的 target.LanguageImplementation 对象。

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

指定所需的语言实现详细信息。例如,字节顺序。

myCopiedImplementation.Endianess = target.Endianess.Big;

将语言实现与硬件设备相关联。

myProc.LanguageImplementations = myCopiedImplementation;

将 target.Processor 对象添加到内部数据库中。

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

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

要从内部数据库中删除对象,请输入:

target.remove(objectsAdded)
target.remove summary:

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

如果您的硬件设备需要与现有实现相同的硬件实现,您可以重用现有实现。

为新硬件设备创建一个 target.Processor 对象。

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

通过使用设备供应商的标识符和类型检索现有实现。

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

将语言实现与硬件设备相关联。

myProc.LanguageImplementations = existingImplementation;

将 target.Processor 对象添加到内部数据库中。

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

    Objects added to internal database for current MATLAB session:
        target.Processor                 "MyManufacturer-MyProcessor"
    1 object not added because they already exist.

要从内部数据库中删除对象,请输入:

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

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

版本历史记录

在 R2019a 中推出