主要内容

target.LanguageImplementation 类

命名空间: 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

chartarget.DataTypes.Char 对象。

Short

shorttarget.DataTypes.Short 对象。

Int

inttarget.DataTypes.Int 对象。

Long

longtarget.DataTypes.Long 对象。

LongLong

longlongtarget.DataTypes.LongLong 对象。

Half

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

Float

floattarget.DataTypes.Float 对象。

Double

doubletarget.DataTypes.Double 对象。

Pointer

pointertarget.DataTypes.Pointer 对象。

SizeT

size_ttarget.DataTypes.SizeT 对象。

PtrDiffT

ptrdiff_ttarget.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™:在硬件实现窗格中,您现在可以将设备供应商设备类型分别设置为 MyManufacturerMyProcessor

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

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 中推出