На вкладке Hardware приложения MATLAB® Coder™ можно задать параметры, которые описывают целевой компьютер и свойства компилятора для программного обеспечения MATLAB, которое позволяет:
Сгенерируйте оптимизированный код для производства или протестируйте оборудование.
Непосредственно протестируйте или разверните сгенерированный код на целевом компьютере.
Вкладка Hardware поддерживает область значений целевого компьютера. Чтобы расширить область значений, укажите новые аппаратные устройства при помощи классов target.LanguageImplementation
и target.Processor
.
Указывать новое аппаратное устройство:
Создайте объект 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
в память MATLAB.
target.add(myProc);
На вкладке Hardware вы видите новое устройство.
Если существующая аппаратная реализация содержит большинство значений, вы хотите в новой аппаратной реализации, можно быстро создать новую реализацию путем создания и изменения копии существующей реализации.
Создайте объект 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
в память MATLAB.
target.add(myProc);
Если ваше аппаратное устройство требует той же аппаратной реализации как существующая реализация, можно снова использовать существующую реализацию.
Создайте объект target.Processor
для нового аппаратного устройства.
myProc = target.create('Processor', ... 'Name', 'MyProcessor', ... 'Manufacturer', 'MyManufacturer');
Получите существующую реализацию при помощи идентификатора для поставщика устройства и введите, например, 'ARM Compatible-ARM Cortex'
.
existingImplementation = target.get('LanguageImplementation', ... 'ARM Compatible-ARM Cortex');
Сопоставьте реализацию языка с аппаратным устройством.
myProc.LanguageImplementations = existingImplementation;
Сохраните объект target.Processor
в память MATLAB.
target.add(myProc);
Чтобы создать альтернативные идентификаторы для целевых объектов функции, используйте класс target.Alias
.
Например, если объект target.Processor
имеет долгий идентификатор класса, можно создать объект target.Alias
, который обеспечивает короткий идентификатор для объекта target.Processor
.
Получите объект target.Processor
.
proccesorObj = target.get('Processor', ... 'Analog Devices-ADSP-CM40x (ARM Cortex-M)');
Используйте функцию target.create
, чтобы создать объект target.Alias
.
aliasProcessorObj = target.create('Alias');
Используйте свойства объектов target.Alias
, чтобы задать альтернативный идентификатор и исходный целевой объект функции.
aliasProcessorObj.Name = 'myShortName';
aliasProcessorObj.For = proccesorObj;
Сохраните объект target.Alias
в память MATLAB.
target.add(aliasProcessorObj);
Получать исходный объект target.Processor
, выполнение:
target.get('Processor', 'myShortName');