exponenta event banner

кодер. ReplacementTypes

Параметр конфигурации для указания пользовательских имен для встроенных типов данных MATLAB в генерации кода C/C + +

Описание

A coder.ReplacementTypes объект содержит параметры конфигурации, используемые генератором кода для создания пользовательских имен типов данных для встроенных типов данных MATLAB ® в генерации кода C/C + +.

Необходимо связать coder.ReplacementTypes с объектом конфигурации Embedded Coder ® ( acoder.EmbeddedCodeConfig объект), который вы передаете codegen функция.

Вы можете получить доступ coder.ReplacementTypes свойства из интерфейса командной строки (см. раздел Задание пользовательских имен для встроенных типов данных MATLAB) или диалогового окна для связанного объекта конфигурации (см. раздел Доступ к свойствам типов замены через диалоговое окно).

Создание

Используйте coder.config для создания функции coder.EmbeddedCodeConfig объект для формирования автономного кода. Когда coder.config функция создает coder.EmbeddedCodeConfig объект, он устанавливает ReplacementTypes свойство для coder.ReplacementTypes объект.

Свойства

развернуть все

Пользовательское имя для double тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для single тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для uint8 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для uint16 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для uint32 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для uint64 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для int8 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для int16 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для int32 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для int64 тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для char тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Пользовательское имя для logical тип данных в сгенерированном коде C/C + +, указанном как вектор символов или строковый скаляр.

Включение или отключение импорта определений типов из внешних файлов заголовков для использования в сгенерированном коде C/C + +.

СтоимостьОписание
false

Это значение является значением по умолчанию.

В файле создаются пользовательские определения типов rtwtypes.h. Импорт определений типов из внешних файлов заголовков не допускается для создания кода.

true

Для создания кода допускается импорт определений типов из внешних файлов заголовков. Указанные файлы заголовков включены в <function>_types.h. Например, если имя функции myFunc, внешний файл заголовка включен в созданный файл заголовка myFunc_types.h.

Имена внешних заголовочных файлов, содержащих пользовательские определения типов.

Несколько файлов заголовков, указанных как одно из значений в этой таблице.

СтоимостьОписание
Строковый массив

Строковый массив в ReplacementTypes.HeaderFiles. Например, cfg.ReplacementTypes.HeaderFiles = ["myHeader1.h","myHeader2.h","myHeader3.h"].

Массив ячеек символьных векторов

Массив ячеек символьных векторов в ReplacementTypes.HeaderFiles. Например, cfg.ReplacementTypes.HeaderFiles = {'myHeader1.h','myHeader2.h','myHeader3.h'}.

Символьный вектор

Разделенный точкой с запятой список имен заголовочных файлов в ReplacementTypes.HeaderFiles. Например, cfg.ReplacementTypes.HeaderFiles = 'myHeader1.h;myHeader2.h;myHeader3.h'.

Примечание

Указание нескольких записей в объектах конфигурации кода с использованием символьных векторов будет удалено в следующей версии. Используйте строковый массив и массив ячеек символьного вектора. Дополнительные сведения см. в разделе Вопросы совместимости.

Примеры

свернуть все

Напишите функцию MATLAB, из которой можно создать код. В этом примере используется функция myAdd.m, который возвращает сумму его входных данных.

function c = myAdd(a,b)
c = a + b;
end

Создать coder.EmbeddedCodeConfig для создания статической библиотеки.

cfg = coder.config('lib','ecoder',true);

Установите EnableCustomReplacementTypes кому true.

cfg.EnableCustomReplacementTypes = true;

Укажите пользовательские имена для встроенных типов данных MATLAB. Например, в коде double назван как Custom_Double и int8 назван как Custom_Int8.

cfg.ReplacementTypes.double = "Custom_Double";
cfg.ReplacementTypes.int8 = "Custom_Int8";

Создание кода с помощью codegen функции и -config вариант.

codegen myAdd.m -args {1,int8(1)} -config cfg -report

Созданный код содержит имена пользовательских типов данных.

Создание папки для записи myFiles.

Напишите функцию MATLAB, из которой можно создать код. Сохраните функцию в myFiles. В этом примере используется функция myAdd.m, который возвращает сумму его входных данных.

function c = myAdd(a,b)
c = a + b;
end

Напишите файл заголовка myHeader.h который содержит определения типов для двух входов функции myAdd.m. Сохранить в myFiles.

#if !defined(MYHEADER)
#define MYHEADER
typedef double Custom_Double;
typedef char Custom_Int8;
#endif

Создать coder.EmbeddedCodeConfig для создания статической библиотеки.

cfg = coder.config('lib','ecoder',true);

Укажите пользовательские имена для встроенных типов данных MATLAB. Например, в коде double назван как Custom_Double и int8 назван как Custom_Int8.

cfg.EnableCustomReplacementTypes = true;
cfg.ReplacementTypes.double = "Custom_Double";
cfg.ReplacementTypes.int8 = "Custom_Int8";

Укажите свойства конфигурации для импорта внешних файлов заголовков.

% Include single header file

cfg.ReplacementTypes.IsExtern = true;
cfg.ReplacementTypes.HeaderFiles = "myHeader.h";
cfg.CustomInclude = 'C:\myFiles'; % Include path of the header file

% Include multiple header files

cfg.ReplacementTypes.IsExtern = true;
cfg.ReplacementTypes.HeaderFiles = "myHeader1.h;myHeader2.h;myHeader3.h";
cfg.CustomInclude = '"C:\Program Files\MATLAB\myFiles"'; % Include path of the header files

Создание кода с помощью codegen функции и -config вариант.

codegen myAdd.m -args {1,int8(1)} -config cfg -report

В созданном коде myAdd_types.h включает внешний файл заголовка myHeader.h.

Дополнительные сведения об импорте определений пользовательских типов данных из внешних файлов заголовков см. в разделе Импорт определений пользовательских типов данных из внешних файлов заголовков (встроенный кодер).

Откройте диалоговое окно для объекта конфигурации, который ссылается на coder.ReplacementTypes объект. Например:

cfg = coder.config('lib');
open('cfg');

В диалоговом окне перейдите на вкладку «Внешний вид кода».

Выберите Включить замену пользовательского типа данных. В таблице Замена настраиваемого типа данных (Custom Data Type Replacement) перечислены имена поддерживаемых типов данных. Укажите пользовательские имена для этих типов данных и нажмите клавишу ВВОД.

Можно импортировать собственные пользовательские определения типов из внешних файлов заголовков. Установите флажок Импортировать пользовательские типы из внешних файлов заголовков. В поле Текст заголовочных файлов введите список имен внешних заголовочных файлов, разделенных точкой с запятой. Дополнительные сведения см. в разделе Импорт определений пользовательских типов данных из внешних файлов заголовков (встроенный кодер).

Диалоговое окно объекта конфигурации не поддерживается в MATLAB Online™.

Вопросы совместимости

развернуть все

Изменение поведения в будущем выпуске

Представлен в R2019b