coder.ReplacementTypes

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

Описание

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

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

Можно получить доступ к coder.ReplacementTypes свойства от любого, интерфейс командной строки (см., Задает Пользовательские Имена для MATLAB Встроенные Типы данных), или диалоговое окно для связанного объекта настройки (см. Access Replacement Types Properties Через Диалоговое окно).

Создание

Используйте 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.

Чтобы читать больше об импорте определений пользовательского типа данных от внешних заголовочных файлов, см. Определения Пользовательского типа данных Импорта от Внешних Заголовочных файлов (Embedded Coder).

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

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

В диалоговом окне кликните по вкладке Code Appearance.

Выберите Enable custom data type replacement. Таблица Custom Data Type Replacement приводит имя поддерживаемых типов данных. Задайте свои пользовательские имена для этих типов данных и нажмите Enter.

Можно импортировать собственные определения типа из внешних заголовочных файлов. Установите флажок Import custom types from external header files. В текстовом поле Header files введите разделенный от точки с запятой список внешних имен заголовочного файла. Для получения дополнительной информации см. Определения Пользовательского типа данных Импорта от Внешних Заголовочных файлов (Embedded Coder).

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

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

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

Изменение поведения в будущем релизе

Введенный в R2019b
Для просмотра документации необходимо авторизоваться на сайте