Параметры конфигурации для генерации кода C/C++ из кода MATLAB с Embedded Coder
Объект coder.EmbeddedCodeConfig
содержит параметры конфигурации, которые codegen
использует для генерации статической библиотеки, динамически подключаемой библиотеки или исполняемой программы с Embedded Coder®. Передайте объект функции codegen
при помощи опции -config
.
cfg = coder.config(build_type)
cfg = coder.config(build_type,
'ecoder', true)
cfg = coder.config(
создает объект настройки генерации кода для заданного типа сборки, который может быть статической библиотекой, динамически подключаемой библиотекой или исполняемой программой. Если продукт Embedded Coder установлен, он создает объект build_type
)coder.EmbeddedCodeConfig
. В противном случае это создает объект coder.CodeConfig
.
cfg = coder.config(
создает объект build_type
,
'ecoder', true)coder.EmbeddedCodeConfig
для заданного выходного типа, даже если продукт Embedded Coder не установлен. Однако вы не можете сгенерировать код с помощью объекта coder.EmbeddedCodeConfig
, если вам не установили Embedded Coder.
build_type
— Выведите, чтобы создать из сгенерированного кода C/C++'LIB'
| 'DLL'
| 'EXE'
Выведите, чтобы создать из сгенерированного кода C/C++, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
'LIB' | Статическая библиотека |
'DLL' | Динамически подключаемая библиотека |
'EXE' | Исполняемая программа |
BuildConfiguration
— Компиляторная оптимизация или параметры настройки отладки для набора инструментальных средств'Faster Builds'
(значение по умолчанию) | 'Faster Runs'
| 'Debug'
| 'Specify'
Компиляторная оптимизация или параметры настройки отладки для набора инструментальных средств, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Faster Builds' | Оптимизирует сборку в течение более короткого времени изготовления. |
'Faster Runs' | Оптимизирует сборку для более быстрых рабочих исполняемых файлов. |
'Debug' | Оптимизирует сборку для отладки. |
'Specify' | Включает свойство |
CastingMode
— Уровень кастинга типа данных 'Nominal'
(значение по умолчанию) | 'Standards'
| 'Explicit'
Уровень кастинга типа данных для переменных в сгенерированном коде C/C++, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Nominal' | Это значение является значением по умолчанию. Генерирует код C/C++, который использует кастинг типа данных компилятора C по умолчанию. Например: short addone(short x) { int i0; i0 = x + 1; if (i0 > 32767) { i0 = 32767; } return (short)i0; } |
'Standards'
| Генерирует код C/C++, который бросает типы данных, чтобы соответствовать стандартам MISRA®. Например: short addone(short x) { int i0; i0 = (int)x + (int)1; if (i0 > (int)32767) { i0 = (int)32767; } return (short)i0; } |
'Explicit' | Генерирует код C/C++, который бросает значения типа данных явным образом. Например: short addone(short x) { int i0; i0 = (int)x + 1; if (i0 > 32767) { i0 = 32767; } return (short)i0; } |
Смотрите броски типа данных управления в сгенерированном коде (Embedded Coder).
CodeExecutionProfiling
— Время выполнения профилируя во время SIL или выполнения PILfalse
(значение по умолчанию) | true
Время выполнения профилируя во время программного обеспечения в цикле (SIL) или процессоре в цикле (PIL) выполнение, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Отключает время выполнения, профилируя во время SIL или выполнения PIL. |
true | Включает время выполнения, профилируя во время SIL или выполнения PIL. |
Смотрите, что время выполнения профилирует для SIL и PIL (Embedded Coder).
CodeTemplate
— Шаблон генерации кода для файла и функциональных баннеров[]
(значение по умолчанию) | объект coder.MATLABCodeTemplate
Шаблон генерации кода для файла и функциональных баннеров в сгенерированном коде. По умолчанию CodeTemplate
пуст, и генератор кода производит баннеры по умолчанию. Чтобы произвести пользовательские баннеры, установите CodeTemplate
на объект coder.MATLABCodeTemplate
, созданный из файла шаблона генерации кода (CGT). Смотрите Генерируют Пользовательский Файл и Функциональные Баннеры для Кода C/C++ (Embedded Coder).
CodeReplacementLibrary
— Заменяющая библиотека кода для сгенерированного кодаЗаменяющая библиотека кода для сгенерированного кода, заданного как одно из значений в этой таблице:
Значение | Описание |
---|---|
'None' | Это значение является значением по умолчанию. Не пользуется заменяющей библиотекой кода. |
Названная заменяющая библиотека кода | Генерирует вызовы определенной платформы, компилятора или заменяющей библиотеки стандартов кода. Список именованных библиотек зависит от:
|
Совместимые библиотеки зависят от этих параметров:
TargetLang
TargetLangStandard
ProdHWDeviceType
в объекте настройки аппаратной реализации.
Embedded Coder предлагает больше библиотек и способность создать и пользоваться заменяющими библиотеками пользовательского кода.
MATLAB® Coder™ генерирует минимальный набор операторов #include
для заголовочных файлов, требуемых выбранной заменяющей библиотекой кода.
Прежде, чем установить этот параметр, проверьте, что ваш компилятор поддерживает библиотеку, которой вы хотите пользоваться. Если вы выбираете значение параметров, которое не поддерживает ваш компилятор, ошибки компилятора могут произойти.
Программное обеспечение MATLAB Coder не поддерживает коллбэки TLC.
ColumnLimit
— Максимальное количество столбцов перед разрывом строки в сгенерированном кодеМаксимальное количество столбцов перед разрывом строки в сгенерированном коде, заданном как положительное целое число в области значений [45, 65536].
Другие правила для размещения разрыва строки могут быть более приоритетны по сравнению с пределом столбца, который вы задаете.
CommentStyle
Прокомментируйте стиль в сгенерированном коде'Auto'
(значение по умолчанию) | 'Single-line'
| 'Multi-line'
Прокомментируйте стиль в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Auto'
| Для C сгенерируйте многострочные комментарии. Для C++ сгенерируйте однострочные комментарии. |
'Single-line' | Сгенерируйте однострочные комментарии, которым предшествует // . |
'Multi-line' | Сгенерируйте один или многострочные комментарии, разграниченные /* и */ . |
Для генерации кода C задайте однострочный стиль комментария, только если ваш компилятор поддерживает его.
Зависимость: GenerateComments
включает этот параметр.
Смотрите Задают Стиль Комментария для Кода C/C++ (Embedded Coder).
CompileTimeRecursionLimit
— Максимальное количество функциональных специализаций для рекурсии времени компиляцииМаксимальное количество функциональных специализаций для рекурсии времени компиляции, заданной как положительное целое число. Чтобы запретить рекурсию в коде MATLAB, установите CompileTimeRecursionLimit
на 0. Предел рекурсии времени компиляции по умолчанию является достаточно большим для большинства рекурсивных функций, которые требуют этого типа рекурсии. Если генерация кода перестала работать из-за предела рекурсии времени компиляции, и вы хотите рекурсию времени компиляции, пытаетесь увеличить предел. Также измените свой код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения. Смотрите Достигнутый Предел Рекурсии Времени компиляции.
ConstantFoldingTimeout
— Максимальное количество инструкций, которые будут выполняться постоянной папкойМаксимальное количество инструкций, что постоянная папка выполняется. В некоторых ситуациях генерация кода требует, чтобы конкретные инструкции были постоянными. Если сворачивание констант останавливается, прежде чем эти инструкции постоянно свернуты, сбои генерации кода. В этом случае увеличьте значение ConstantFoldingTimeout
.
ConvertIfToSwitch
— Преобразование шаблонов if-elseif-else
к операторам switch-case
false
(значение по умолчанию) | true
Преобразование шаблонов if-elseif-else
к операторам switch-case
в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не преобразовывает шаблоны |
true | Генератор кода пытается преобразовать шаблоны if-elseif-else в операторы switch-case . Генератор кода производит оператор switch-case , только если все потенциальные case-выражения являются скалярными целочисленными значениями. |
Смотрите стиль кода С управления (Embedded Coder).
CustomBLASCallback
— Класс коллбэка BLASКласс коллбэка для библиотеки BLAS вызывает в коде, сгенерированном для определенного низкоуровневого вектора и операций над матрицей в коде MATLAB, заданном как вектор символов.
Если вы задаете класс коллбэка BLAS для определенных низкоуровневых векторных и матричных функций, генератор кода производит вызовы BLAS при помощи интерфейса CBLAS C к вашей библиотеке BLAS. Класс коллбэка обеспечивает имя вашего заголовочного файла CBLAS, имена типов данных CBLAS и информацию, запрошенную, чтобы соединиться с вашей библиотекой BLAS. Если этот параметр пуст, генератор кода производит код для матричных функций вместо вызова BLAS.
Смотрите ускоряют Матричные операции в сгенерированном автономном коде при помощи вызовов BLAS.
CustomFFTCallback
— Класс коллбэка для вызовов библиотеки FFTW Класс коллбэка для библиотеки FFTW вызывает в коде, сгенерированном для функций БПФ в коде MATLAB, заданном как вектор символов.
Чтобы улучшить скорость выполнения функций БПФ, генератор кода производит вызовы библиотеки FFTW, которую вы задаете в классе коллбэка. Если этот параметр пуст, генератор кода использует свои собственные алгоритмы для функций БПФ вместо того, чтобы вызвать библиотеку FFTW.
CustomHeaderCode
— Пользовательский код, который появляется наверху сгенерированных заголовочных файлов C/C++Пользовательский код, который появляется около верхней части каждого заголовочного файла C/C++, сгенерированного из вашего кода MATLAB, заданного как вектор символов.
CustomInclude
— Include, чтобы добавить, чтобы включать путь для компиляции сгенерированного кодаВключайте папки, чтобы добавить к включать пути при компиляции сгенерированного кода. Укажите, что список включает папки как вектор символов. В векторе символов, отдельном, включают папки символом pathsep
. Например:
cfg = coder.config('lib','ecoder',true); cfg.CustomInclude = ['C:\Project' pathsep 'C:\Custom Files'];
CustomInitializer
— Пользовательский код, чтобы включать в сгенерированное инициализирует функциюПользовательский код, чтобы включать в сгенерированное инициализирует функцию, заданную как вектор символов.
CustomLAPACKCallback
— Класс коллбэка LAPACKКласс коллбэка для библиотеки LAPACK вызывает в коде, сгенерированном для определенных функций линейной алгебры в коде MATLAB, заданном как вектор символов.
Если вы задаете класс коллбэка LAPACK для определенных функций линейной алгебры, генератор кода производит вызовы LAPACK при помощи интерфейса LAPACKE C к вашей библиотеке LAPACK. Класс коллбэка обеспечивает имя вашего заголовочного файла LAPACKE и информации, запрошенной, чтобы соединиться с вашей библиотекой LAPACK. Если этот параметр пуст, генератор кода производит код для функций линейной алгебры вместо вызова LAPACK.
Смотрите ускоряют линейную алгебру в сгенерированном автономном коде при помощи вызовов LAPACK.
CustomLibrary
— Static, чтобы соединиться со сгенерированным кодомСтатические файлы библиотеки, чтобы соединиться со сгенерированным кодом, заданным как вектор символов. В векторе символов разделите имена файлов библиотеки символом pathsep
.
CustomSource
— Исходные файлы, чтобы скомпилировать и соединиться со сгенерированным кодомИсходные файлы, чтобы скомпилировать и соединиться со сгенерированным кодом, заданным как вектор символов. В векторе символов разделите имена исходного файла символом pathsep
.
Процесс сборки ищет исходные файлы сначала в текущей папке, и затем во включать папках, которые вы задаете в CustomInclude
. Если исходные файлы с тем же именем происходят в нескольких папках на пути поиска файлов, процесс сборки может использовать различный файл, чем файл, который вы задали.
Предположим, что вы задаете foo.cpp
как исходный файл. Если foo.c
и foo.cpp
находятся оба на пути поиска файлов, вы не можете быть уверены, использует ли процесс сборки foo.c
или foo.cpp
.
CustomSourceCode
— Код, чтобы появиться около верхней части сгенерированного .c
или файла .cpp
Задайте код, чтобы появиться около верхней части сгенерированного .c
или файла .cpp
, за пределами любой функции. Задайте код как вектор символов.
Не задавайте статическое функциональное определение C.
CustomSymbolStrEMXArray
— Пользовательский формат идентификатора для типов массива EMX 'emxArray_$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных Типов массива EMX (Встраиваемые типы mxArray), заданный как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrEMXArrayFcn
— Пользовательский формат идентификатора для служебных функций массивов EMX'emx$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированного Массива EMX (Встраиваемый mxArrays) служебные функции, заданные как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrFcn
— Пользовательский формат идентификатора для идентификаторов локальной функции'm_$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных идентификаторов локальной функции, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrField
— Пользовательский формат идентификатора для имен полей в глобальных идентификаторах типов'$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных имен полей в глобальных идентификаторах типов, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrGlobalVar
— Пользовательский формат идентификатора для идентификаторов глобальной переменной'$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных идентификаторов глобальной переменной, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrMacro
— Пользовательский формат идентификатора для постоянных макро-идентификаторов'$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных постоянных макро-идентификаторов, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrTmpVar
— Пользовательский формат идентификатора для локальных идентификаторов временной переменной '$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных локальных идентификаторов временной переменной, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomSymbolStrType
— Пользовательский формат идентификатора для глобальных идентификаторов типов '$M$N'
(значение по умолчанию) | вектор символовПользовательский формат идентификатора для сгенерированных глобальных идентификаторов типов, заданных как вектор символов. Чтобы задать формат, смотрите, Настраивают Сгенерированные Идентификаторы (Embedded Coder).
CustomTerminator
— Код, который появляется в сгенерированной оконечной функции Код, который появляется в сгенерированной оконечной функции, заданной как вектор символов.
CustomToolchainOptions
— Custom для инструментов в выбранном наборе инструментальных средствПользовательские настройки для инструментов в выбранном наборе инструментальных средств, заданном как массив ячеек.
Зависимости:
Свойство Toolchain
определяет, какие инструменты и опции появляются в массиве ячеек.
Установка свойства BuildConfiguration
к Specify
включает CustomToolchainOptions
.
Во-первых, получите текущие настройки. Например:
cfg = coder.config('lib'); cfg.BuildConfiguration='Specify'; opt = cfg.CustomToolchainOptions
Затем отредактируйте значения в opt
.
Эти значения выводят из файла определения набора инструментальных средств и сторонних параметров компилятора. Смотрите Пользовательскую Регистрацию Набора инструментальных средств.
DataTypeReplacement
— Замена типа данных в сгенерированном коде'CBuiltIn'
| 'CoderTypeDefs'
Замена типа данных в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'CBuiltIn' | Это значение является значением по умолчанию. Генератор кода использует встроенные типы данных C. |
'CoderTypeDefs' | Генератор кода использует предопределенные типы данных от rtwtypes.h |
DeepLearningConfig
— Configuration для генерации кода глубокого обученияcoder.MklDNNConfig
| объект coder.ARMNEONConfig
Объект Configuration для генерации кода для нейронных сетей для глубокого обучения, заданных как объект coder.MklDNNConfig
или объект coder.ARMNEONConfig
.
Объект coder.MklDNNConfig
содержит параметры, характерные для генерации Кода С++ для глубокого обучения с помощью Intel® MKL-DNN. Чтобы создать объект coder.MklDNNConfig
, используйте coder.DeepLearningConfig
. Например:
cfg = coder.config('mex'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');
Объект coder.ARMNEONConfig
содержит параметры, характерные для генерации Кода С++ для глубокого обучения, пользующегося Библиотекой ARM® Compute. Чтобы создать объект coder.ARMNEONConfig
, используйте coder.DeepLearningConfig
. Например:
cfg = coder.config('lib'); cfg.TargetLang = 'C++'; cfg.DeepLearningConfig = coder.DeepLearningConfig('arm-compute');
Генерация кода для нейронных сетей для глубокого обучения требует Deep Learning Toolbox™ и Интерфейса MATLAB Coder для пакета поддержки Библиотек Глубокого обучения.
Смотрите, что генерация кода для нейронных сетей для глубокого обучения с MKL-DNN и генерация кода для нейронных сетей для глубокого обучения с ARM вычисляют библиотеку.
Зависимость: Если DeepLearningConfig
установлен, codegen
устанавливает TargetLang
на C++
.
Описание
Описание объекта'class CodeConfig: C code generation configuration.'
(значение по умолчанию) | вектор символовОписание объекта, заданное как вектор символов.
DynamicMemoryAllocation
— Режим динамического выделения памяти'Threshold'
(значение по умолчанию) | 'AllVariableSizeArrays'
| 'Off'
Режим динамического выделения памяти, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Threshold' | Это значение является значением по умолчанию. Генератор кода выделяет память динамически на куче для массивов переменного размера, размер которых (в байтах) больше, чем или равен |
'AllVariableSizeArrays' | Генератор кода динамически выделяет память для всех массивов переменного размера на куче. |
'Off' | Генератор кода статически выделяет память для массивов переменного размера на стеке. |
Неограниченные массивы переменного размера требуют динамического выделения памяти.
Зависимости:
EnableVariableSizing
включает этот параметр.
Установка этого DynamicMemoryAllocation
к 'Threshold'
включает параметр DynamicMemoryAllocationThreshold
.
DynamicMemoryAllocationThreshold
— Порог размера для динамического выделения памяти массивов переменного размера65536
(значение по умолчанию) | положительное целое числоПорог размера для динамического выделения памяти массивов переменного размера, заданных как положительное целое число. Генератор кода использует динамическое выделение памяти для массивов переменного размера, размер которых (в байтах) больше, чем или равен порогу.
Зависимость:
Установка DynamicMemoryAllocation
к 'Threshold'
включает этот параметр.
EnableAutoExtrinsicCalls
— Автоматические внешние вызовы функцииtrue
(значение по умолчанию) | false
Автоматические внешние вызовы функции, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода обрабатывает некоторые общие функции визуализации как внешние функции. Вы не должны объявлять эти функции как внешние при помощи |
false | Генератор кода не обрабатывает общие функции визуализации как внешние функции, если вы не объявляете их как внешних при помощи coder.extrinsic |
Некоторыми общими функциями визуализации является plot
, disp
и figure
. Смотрите Внешние Функции.
EnableCustomReplacementTypes
— Пользовательские имена для типов данных в сгенерированном кодеfalse
(значение по умолчанию) | true
Пользовательские имена для типов данных MATLAB в сгенерированном коде C/C++, заданном как одно из значений в таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Пользовательские имена для типов данных MATLAB не позволены. |
true | Пользовательские имена для типов данных MATLAB позволены. Задайте пользовательские имена при помощи |
EnableMemcpy
— оптимизация memcpy
true
(значение по умолчанию) | false
Оптимизация memcpy
, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Если возможно, генератор кода использует оптимизацию |
false | Генератор кода не использует оптимизацию |
EnableOpenMP
— распараллеливание parfor
- циклыtrue
(значение по умолчанию) | false
Распараллеливание parfor
- циклы, заданные как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Если возможно, генератор кода пользуется библиотекой OpenMP, чтобы произвести итерации цикла, которые запускаются параллельно. |
false | Генератор кода обрабатывает |
Смотрите parfor
.
Использование библиотеки OpenMP не совместимо со своевременной (JIT) компиляцией. Если EnableJIT
и EnableOpenMP
является true
, генератор кода использует JIT-компиляцию и обрабатывает parfor
- циклы как for
- циклы.
EnableRuntimeRecursion
— Поддержка рекурсии во время выполненияtrue
(значение по умолчанию) | false
Поддержка рекурсии во время выполнения, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Рекурсивные функции позволены в сгенерированном коде. |
false | Рекурсивные функции не позволены в сгенерированном коде. |
Некоторые стандарты кодирования, такие как MISRA, не позволяют рекурсию. Чтобы увеличить вероятность генерации кода, который совместим с MISRA C®, устанавливает EnableRuntimeRecursion
на false
.
Если ваш код MATLAB требует рекурсии во время выполнения, и EnableRuntimeRecursion
является false
, сбои генерации кода.
Смотрите генерацию кода для рекурсивных функций.
EnableSignedLeftShifts
— Замена умножения степенями двойки с левыми поразрядными сдвигами со знакомtrue
(значение по умолчанию) | false
Замена умножения степенями двойки с со знаком уехала, поразрядно переключает на нижний регистр сгенерированный код C/C++, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода использует подписанные сдвиги влево для умножения степенями двойки. Пример сгенерированного кода C, который использует сдвиг влево со знаком для умножения восемь: i <<= 3; |
false | Генератор кода не использует подписанные сдвиги влево для умножения степенями двойки. Пример сгенерированного кода C, который не использует сдвиг влево со знаком для умножения восемь: i = i * 8; |
Некоторые стандарты кодирования, такие как MISRA, не позволяют битовые операции на целых числах со знаком. Чтобы увеличить вероятность генерации MISRA C совместимый код, установите EnableSignedLeftShifts
на false
.
Смотрите управление сдвиги влево со знаком в сгенерированном коде (Embedded Coder).
EnableSignedRightShifts
— Право со знаком поразрядно переключает сгенерированный код на нижний регистрtrue
(значение по умолчанию) | false
Право со знаком поразрядно переключает на нижний регистр сгенерированный код, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода использует подписанные сдвиги вправо. Пример сгенерированного кода C, который использует сдвиг вправо со знаком: i >>= 3 |
false | Генератор кода заменяет сдвиги вправо на целых числах со знаком с вызовом функции в сгенерированном коде. Например: i = asr_s32(i, 3U); |
Некоторые стандарты кодирования, такие как MISRA, не позволяют битовые операции на целых числах со знаком. Чтобы увеличить вероятность генерации MISRA-C:2004 совместимый код, установите EnableSignedRightShifts
на false
.
EnableStrengthReduction
— Оптимизация сокращения силыfalse
(значение по умолчанию) | true
Оптимизация сокращения силы, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не использует оптимизацию сокращения силы. |
true | Генератор кода пытается использовать оптимизацию сокращения силы, чтобы упростить индексацию массива в циклах в сгенерированном коде. Когда возможно, для индексов массива в циклах, замены генератора кода умножаются, операции с добавляют операции. Умножьтесь операции могут быть дорогими. Когда компилятор C/C++ на целевой платформе не оптимизирует индексацию массива, оптимизация сокращения силы полезна. Даже когда оптимизация заменяет умножить операции в сгенерированном коде, возможно, что компилятор C/C++ может сгенерировать, умножают инструкции. |
EnableTraceability
— Трассируемость в отчете генерации кодаТрассируемость в отчете генерации кода, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Отчет генерации кода включает в себя трассируемость кода. Смотрите В интерактивном режиме Трассировку Между кодом MATLAB и Сгенерированным Кодом C/C++ (Embedded Coder). |
false | Отчет генерации кода не включает в себя трассируемость кода. |
EnableVariableSizing
— Поддержка массивов переменного размераtrue
(значение по умолчанию) | false
Поддержка массивов переменного размера, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Массивы переменного размера позволены для генерации кода. |
false | Массивы переменного размера не позволены для генерации кода. |
Зависимость:
Включает Dynamic memory allocation
.
FilePartitionMethod
— Режим разделения файла'MapMFileToCFile'
(значение по умолчанию) | 'SingleFile'
Режим разделения файла, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'MapMFileToCFile' | Это значение является значением по умолчанию. Генератор кода производит отдельные файлы C/C++ для каждого файла языка MATLAB. |
'SingleFile' | Генератор кода производит один файл для функций C/C++, которые сопоставляют с вашими функциями точки входа MATLAB. Генератор кода производит отдельные файлы C/C++ для служебных функций. |
GenerateCodeMetricsReport
— Статический метрический отчет кодаfalse
(значение по умолчанию) | true
Статический метрический отчет кода, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не запускает статический метрический анализ кода во время генерации кода. Можно запустить анализ и представить отчет позже путем нажатия на Code Metrics на вкладке Summary отчета генерации кода. |
true | Генератор кода запускает статический метрический анализ кода и представляет отчет во время генерации кода. |
Чтобы открыть метрический отчет кода, щелкните по ссылке Code Metrics на вкладке Summary отчета генерации кода.
Зависимость:
Генератор кода представляет статический метрический отчет кода, только если GenerateReport является true
или если вы задаете опцию -report
отчета codegen
.
Смотрите генерацию статического метрического отчета кода для кода, сгенерированного из кода MATLAB (Embedded Coder).
GenCodeOnly
— Генерация только исходного кодаfalse
(значение по умолчанию) | true
Генерация только исходного кода, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода производит исходный код C/C++ и создает объектный код. |
true | Генератор кода производит исходный код C/C++, но не вызывает сделать команду или создает объектный код. Когда вы выполняете итерации между изменением кода MATLAB, и генерация кода C/C++, генерируя только код может сэкономить время. |
GenerateCodeReplacementReport
— Заменяющий отчет кодаfalse
(значение по умолчанию) | true
Заменяющий отчет кода, заданный как на значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не представляет заменяющий отчет кода. |
true | Генератор кода представляет заменяющий отчет кода, который обобщает замены от выбранной заменяющей библиотеки кода. Отчет обеспечивает отображение между каждым заменяющим экземпляром кода и строкой кода MATLAB, который инициировал замену. |
GenerateComments
— Комментарии в сгенерированном коде true
(значение по умолчанию) | false
Комментарии в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода помещает комментарии в сгенерированный код. |
false | Генератор кода не помещает комментарии в сгенерированный код. |
GenerateDefaultInSwitch
— Случай по умолчанию для всех операторов switchfalse
(значение по умолчанию) | true
Случай по умолчанию для всех операторов switch, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не может сгенерировать случай по умолчанию для некоторых операторов switch. |
true | Генератор кода производит случай по умолчанию для всех операторов switch в сгенерированном коде. |
Некоторые стандарты кодирования, такие как MISRA, требуют случая по умолчанию для операторов switch.
GenerateExampleMain
— Пример C/C++ основная генерация файла'GenerateCodeOnly'
(значение по умолчанию) | 'DoNotGenerate'
| 'GenerateCodeAndCompile'
Пример C/C++ основная генерация файла, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
'GenerateCodeOnly' | Это значение является значением по умолчанию. Генератор кода генерирует пример C/C++ основная функция, но не компилирует его. |
'DoNotGenerate' | Генератор кода не генерирует пример C/C++ основная функция. |
'GenerateCodeAndCompile' | Генератор кода генерирует пример C/C++ основная функция и компилирует его, чтобы создать тестовый исполняемый файл. Этот исполняемый файл не возвращает выходной параметр. Если параметром |
Основная функция примера является шаблоном, чтобы помочь вам записать C/C++ основную функцию, которая вызывает сгенерированный код C/C++. Смотрите Включают Сгенерированный код Используя Пример Основная Функция.
GenerateMakefile
— Генерация make-файлаtrue
(значение по умолчанию) | false
Генерация make-файла во время процесса сборки, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода генерирует make-файл во время процесса сборки. |
false | Генератор кода не генерирует make-файл во время процесса сборки. Задайте инструкции для обработки постгенерации кода, включая компиляцию и соединение, в команде постгенерации кода. Смотрите Индивидуальную настройку Процесса сборки. |
GenerateNonFiniteFilesIfUsed
— Сгенерируйте файлы поддержки для неличных данных, только если неличные данные используютсяtrue
(значение по умолчанию) | false
Генерация файлов поддержки для неличных данных, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода производит файлы поддержки для неличных данных ( |
false | Генератор кода всегда производит файлы поддержки для неличных данных ( |
Зависимость:
Установка SupportNonFinite
к true
включает этот параметр.
GenerateReport
— Отчет генерации кодаfalse
(значение по умолчанию) | верныйОтчет генерации кода, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода представляет отчет, только если сообщения об ошибке или предупреждающие сообщения происходят, или если вы устанавливаете |
true | Генератор кода представляет отчет генерации кода. |
Hardware
— Объект, который задает аппаратную плату coder.Hardware
Объект, который задает аппаратную плату. Чтобы создать объект coder.Hardware
, используйте coder.hardware
. Например:
cfg = coder.config('lib'); hw = coder.hardware('Raspberry Pi'); cfg.Hardware = hw;
Прежде чем вы будете использовать coder.hardware
, необходимо установить пакет поддержки для аппаратной платы.
Зависимости:
Установка Hardware
настраивает объект аппаратной реализации и другие параметры конфигурации для конкретной аппаратной платы.
Если DeepLearningConfig
установлен в объект coder.ARMNEONConfig
, и Hardware
пуст, то codegen
устанавливает свойство GenCodeOnly
на true
.
Примечание:
Предположим, что вы создаете объект coder.CodeConfig
cfg
в сеансе работы с MATLAB и используете его в другом сеансе работы с MATLAB. Если хосту - компьютеру MATLAB для второго сеанса не задали аппаратную плату в свойстве cfg.Hardware
, установленном на нем, этот параметр возвращается к своему значению по умолчанию. Значением по умолчанию является []
.
Чтобы задать аппаратное управление по выполнению PIL, см. Выполнение PIL с ARM Cortex-A в Командной строке (Embedded Coder).
HardwareImplementation
— Объект аппаратной реализацииcoder.HardwareImplementation
Объект аппаратной реализации, который задает специфичные для оборудования параметры конфигурации для генерации кода C/C++. coder.config
создает объект coder.EmbeddedCodeConfig
с набором свойств HardwareImplementation
к объекту coder.HardwareImplementation
со значениями параметров по умолчанию для хоста - компьютера MATLAB.
HighlightPotentialDataTypeIssues
— Выделение потенциального типа данных выходит в отчете генерации кодаfalse
(значение по умолчанию) | true
Выделение потенциального типа данных выходит в отчете генерации кода, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Этот отчет генерации кода не подсвечивает потенциальные проблемы типа данных. |
true | Отчет генерации кода подсвечивает код MATLAB, который приводит к операциям с двойной точностью или с одинарной точностью в сгенерированном коде C/C++. Если у вас есть Fixed-Point Designer™, отчет также подсвечивает выражения в коде MATLAB, которые приводят к дорогим операциям фиксированной точки в сгенерированном коде. |
HighlightPotentialRowMajorIssues
— Потенциальные главные строкой проблемы размещенияtrue
(значение по умолчанию) | false
Отображение потенциальных главных строкой проблем эффективности размещения, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Отчет генерации кода отображает потенциальные проблемы эффективности из-за главного строкой размещения. (Это значение является значением по умолчанию.) |
false | Отчет генерации кода не отображает проблемы, связанные с размещением массивов. |
IncludeTerminateFcn
— Отключите функциональную генерациюtrue
(значение по умолчанию) | false
Оконечная функциональная генерация, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода производит оконечную функцию. |
false | Генератор кода не производит оконечную функцию. Если вы устанавливаете |
IndentSize
— Количество символов на уровень отступаКоличество символов на уровень отступа, заданный как положительное целое число в области значений [2,8].
IndentStyle
— Разработайте для размещения фигурных скобок в сгенерированном коде'K&R'
(значение по умолчанию) | 'Allman'
Разработайте для размещения фигурных скобок в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'K&R' | Это значение является значением по умолчанию. Для блоков в функции вводная фигурная скобка находится на той же строке как ее оператор управления. Например: void addone(const double x[6], double z[6]) { int i0; for (i0 = 0; i0 < 6; i0++) { z[i0] = x[i0] + 1.0; } } |
'Allman' | Для блоков в функции вводная фигурная скобка находится на своей собственной строке на том же уровне отступа как ее оператор управления. Например: void addone(const double x[6], double z[6]) { int i0; for (i0 = 0; i0 < 6; i0++) { z[i0] = x[i0] + 1.0; } } |
InitFltsAndDblsToZero
— Присвоение плавания и дважды обнуляет с memset true
(значение по умолчанию) | false
Присвоение плавания и дважды обнуляет с memset
, заданным как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Если возможно, генератор кода использует оптимизацию |
false | Генератор кода не использует оптимизацию |
InlineStackLimit
— Сложите предел размера для встроенных функцийСложите предел размера для встроенных функций, заданных как положительное целое число. Предел размера стека определяет количество стекового пространства, выделенного для локальных переменных встроенной функции.
Определение предела для стекового пространства ограничивает объем встраивания позволенного. Для исключительных функций выпущено стековое пространство для переменных, локальных для функции, когда функция возвращается. Однако для встроенных функций, стековое пространство остается занятым локальными переменными, даже когда функция возвращается.
Эта возможность особенно важна для встраиваемых процессоров, где размер стека может быть ограничен.
Смотрите, что управление встраивает.
InlineThreshold
— Функциональный порог размера для встраиванияФункциональный порог размера для встраивания, заданный как положительное целое число.
Если другие условия не предотвращают встраивание, генератор кода встраивает функции, которые меньше, чем порог.
Функциональный размер измеряется как отвлеченное число инструкций, не фактических инструкций MATLAB или инструкций в целевом процессоре. Получить поведение встраивания, которое вы хотите, эксперимент с порогом. Например, если пороговые результаты по умолчанию во встраивании больших функций и генерации больших сумм кода С, настройте порог, пока вы не будете удовлетворены размером сгенерированного кода.
Смотрите, что управление встраивает.
InlineThresholdMax
— Максимальный размер функций после встраиванияМаксимальный размер функций после встраивания, заданного как положительное целое число. Если после встраивания размер функции вызова превышает InlineThresholdMax
, то генератор кода не встраивает вызванную функцию.
Функциональный размер измеряется как отвлеченное число инструкций, не фактических инструкций MATLAB или инструкций в целевом процессоре. Получить поведение встраивания, которое вы хотите, эксперимент с порогом. Например, если пороговые результаты по умолчанию во встраивании больших функций и генерации больших сумм кода С, настройте порог, пока вы не будете удовлетворены размером сгенерированного кода.
Смотрите, что управление встраивает.
LaunchReport
— Автоматический открытый из отчета генерации кодаfalse
(значение по умолчанию) | верныйАвтоматический открытый из отчета генерации кода, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Если ошибки или предупреждения происходят, или если |
true | Генератор кода производит и открывает отчет генерации кода. |
LoopUnrollThreshold
— Порог на количестве итераций, которое определяет, развернуть ли автоматически for
- циклЦиклы с меньшим количеством итераций, чем этот порог являются кандидатами на автоматическое разворачивание генератором кода. Этот порог применяется ко всему for
- циклы в вашем коде MATLAB. Для отдельного for
- цикл, директива coder.unroll
, помещенная сразу, прежде чем, цикл более приоритетен по сравнению с оптимизацией развертывания цикла. Порог может также примениться к некоторому for
- циклы, произведенные во время генерации кода.
Смотрите разворачивают циклы for.
MATLABFcnDesc
— Текст справки функции MATLAB в функциональном баннереtrue
(значение по умолчанию) | false
Текст справки функции MATLAB в функциональном баннере в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода включает текст справки функции MATLAB в функциональный баннер в сгенерированном коде. |
false | Генератор кода обрабатывает текст справки как комментарий пользователя. |
Если не выбранный, MATLAB Coder обрабатывает текст справки как комментарий пользователя.
Зависимости:
GenerateComments
включает этот параметр.
MATLABSourceComments
— Включение исходного кода MATLAB как комментарии в сгенерированном коде false
(значение по умолчанию) | true
Включение исходного кода MATLAB как комментарии в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не вставляет исходный код MATLAB как комментарии в сгенерированном коде. Генератор кода не включает подпись функции MATLAB в функциональный баннер. |
true | Генератор кода вставляет исходный код MATLAB как комментарии в сгенерированном коде. Тег трассируемости сразу предшествует каждой строке исходного кода. Тег трассируемости помогает вам определить местоположение соответствующего исходного кода MATLAB. Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB. Если у вас есть Embedded Coder в отчете генерации кода, тег трассируемости соединяется с исходным кодом. Генератор кода также включает подпись функции MATLAB в функциональный баннер. |
Зависимость:
GenerateComments
включает этот параметр.
Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.
MaxIdLength
— Максимальное количество символов в сгенерированных идентификаторах 31
(значение по умолчанию) | положительное целое числоМаксимальное количество символов в сгенерированных идентификаторах, заданных как положительное целое число в области значений [31, 256]. Это свойство применяется к сгенерированной функции, введите определение и имена переменных. Чтобы избежать усечения идентификаторов целевым компилятором C, задайте значение, которое совпадает с максимальной длиной идентификатора целевого компилятора C.
Это свойство не применяется к экспортируемым идентификаторам, таким как сгенерированные имена для функций точки входа или emxArray API-функций. Если длина экспортируемого идентификатора превышает максимальную длину идентификатора целевого компилятора C, целевой компилятор C обрезает экспортируемый идентификатор.
MemcpyThreshold
— Минимальный размер для memcpy
или оптимизации memset
Минимальный размер, в байтах, для memcpy или memset оптимизации, заданной как положительное целое число.
Чтобы оптимизировать сгенерированный код, который копирует последовательные элементы массива, генератор кода пытается заменить код на вызов memcpy
. Чтобы оптимизировать сгенерированный код, который присваивает литеральную константу последовательным элементам массива, генератор кода пытается заменить код на вызов memset
.
Количество байтов является количеством элементов массива, чтобы скопировать или присвоить умноженный на количество байтов, требуемых для типа данных C/C++.
Если число элементов, чтобы скопировать или присвоить является переменным (не известный во время компиляции), генератор кода игнорирует свойство MemcpyThreshold
.
MultiInstanceCode
— Мультиэкземпляр, повторно используемый кодfalse
(значение по умолчанию) | true
Мультиэкземпляр, повторно используемый код, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не производит мультиэкземпляр, повторно используемый код. |
true | Генератор кода производит допускающий повторное использование, код мультиэкземпляра, который повторно используем. |
Имя
Имя объекта'MexCodeConfig'
(значение по умолчанию) | вектор символовИмя объекта, заданное как вектор символов.
'OutputType'
Выведите, чтобы создать из сгенерированного кода C/C++'LIB'
| 'DLL'
| 'EXE'
Выведите, чтобы создать из сгенерированного кода C/C++, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
'LIB' | Статическая библиотека |
'DLL' | Динамически подключаемая библиотека |
'EXE' | Исполняемая программа |
ParenthesesLevel
— Уровень Parenthesization в сгенерированном коде'Nominal'
(значение по умолчанию) | 'Minimum'
| 'Maximum'
Уровень Parenthesization в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'Nominal' | Это значение является значением по умолчанию. Генератор кода вставляет круглые скобки, чтобы сбалансировать удобочитаемость и визуальную сложность. Например:
Out = ((In2 - In1 > 1.0) && (In2 > 2.0)); |
'Maximum' | Генератор кода включает круглые скобки, чтобы задать значение, не полагаясь на приоритет оператора. Код, сгенерированный с этой установкой, соответствует требованиям MISRA. Например:
Out = (((In2 - In1) > 1.0) && (In2 > 2.0)); |
'Minimum' | Генератор кода вставляет круглые скобки при необходимости ANSI® C или C++, или заменять приоритет по умолчанию. Например:
Out = In2 - In1 > 1.0 && In2 > 2.0; Если вы генерируете код C/C++, который использует минимальный уровень для определенных настроек в некоторых компиляторах, можно получить предупреждения компилятора. Чтобы устранить эти предупреждения, попробуйте номинальный уровень. |
PassStructByReference
— Передайте структуры ссылкойtrue
(значение по умолчанию) | false
Передайте структуры в отношении функций точки входа, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Сгенерированный код передает структуры ссылкой, которая уменьшает использование памяти и время выполнения путем минимизации количества копий параметров на контурах функции точки входа. ПримечаниеФункция точки входа, которая пишет в поле параметра структуры, перезаписывает входное значение.
|
false | Сгенерированный код передает структуры значением. |
Этот параметр применяется только к функциям точки входа.
Смотрите аргументы структуры передачи ссылкой или значением в сгенерированном коде.
PostCodeGenCommand
— Команда, чтобы настроить обработку сборки''
(значение по умолчанию) | вектор символовКоманда, чтобы настроить сборку, обрабатывающую после генерации MEX-функции с codegen
, заданным как вектор символов.
Смотрите индивидуальную настройку процесса сборки.
PreserveExternInFcnDecls
— Сохранение ключевого слова extern
в объявлениях функцииtrue
(значение по умолчанию) | false
Сохранение ключевого слова extern
в объявлениях функции в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода включает ключевое слово |
false | Генератор кода удаляет ключевое слово |
PreserveArrayDimensions
— N-мерная индексацияfalse
(значение по умолчанию) | true
Генерация кода, который использует N-мерную индексацию, заданную как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Сгенерируйте код, который использует одномерную индексацию. (Это значение является значением по умолчанию.) |
true | Сгенерируйте код, который использует N-мерную индексацию. |
Смотрите генерируют код, который использует n-мерную индексацию.
PreserveVariableNames
— Имена переменных, чтобы сохранить в сгенерированном коде'None'
(значение по умолчанию) | 'UserNames'
| 'All'
Имена переменных, чтобы сохранить в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
'None' | Это значение является значением по умолчанию. Генератор кода не должен сохранять имена переменных. Это может снова использовать любые переменные, которые удовлетворяют требования для переменного повторного использования. Если ваш код использует большие структуры или массивы, установка |
'UserNames' | Генератор кода сохраняет имена, которые соответствуют переменным, которые вы задаете в коде MATLAB. Это не заменяет ваше имя переменной на другое имя и не использует ваше имя для другой переменной. Чтобы улучшить удобочитаемость, установите Установка |
'All' | Сохраните все имена переменных. Это значение параметров отключает переменное повторное использование. Используйте его только для тестирования или отладки, не для производственного кода. |
Смотрите имена переменных заповедника в сгенерированном коде.
PurelyIntegerCode
— Обнаружение кода с плавающей точкойfalse
(значение по умолчанию) | true
Обнаружение кода с плавающей точкой, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода позволяет данные с плавающей точкой и операции. |
true | Генератор кода не позволяет данные с плавающей точкой или операции. Если генератор кода обнаруживает данные с плавающей точкой или операции, концы генерации кода с ошибкой. |
Зависимость:
Установка PurelyIntegerCode
к true
отключает параметр SupportNonFinite
. Установка PurelyIntegerCode
к false
включает параметр SupportNonFinite
.
ReplacementTypes
— Задайте пользовательские имена для типов данных MATLAB ''
(значение по умолчанию) | character vector
Задайте пользовательские имена для них MATLAB встроенные типы данных: double
, single
, uint8
, uint16
, uint32
, uint64
, int8
, int16
, int32
, int64
, char
и logical
, которые находятся в сгенерированном коде C/C++.
Зависимость:
Установка EnableCustomReplacementTypes
к true
включает параметр ReplacementTypes
. Смотрите Настраивают Замену Типа данных (Embedded Coder).
ReportInfoVarName
— Имя переменных, содержащих генерацию кода, сообщает информацию''
(значение по умолчанию) | вектор символовИмя переменной, в которую вы экспортируете информацию о генерации кода, заданной как вектор символов. Генератор кода создает эту переменную в основном рабочем пространстве MATLAB. Эта переменная содержит информацию о настройках генерации кода, входных файлах, сгенерированных файлах и сообщениях генерации кода.
Смотрите, что Генерация Кода доступа Сообщает информацию Программно и кодер. Свойства ReportInfo.
ReportPotentialDifferences
— Создание отчетов разностей потенциаловtrue
(значение по умолчанию) | false
Создание отчетов разности потенциалов, заданное как одно из значений в этой таблице:
Значение | Описание |
---|---|
true | Генератор кода сообщает о потенциальных различиях в поведении между сгенерированным кодом и кодом MATLAB. Разности потенциалов перечислены на вкладке отчета генерации кода. Разность потенциалов является различием, которое происходит во время выполнения только при определенных обстоятельствах. |
false | Генератор кода не сообщает о разностях потенциалов. |
Смотрите, что разности потенциалов сообщают.
ReservedNameArray
— Имена, которые генератор кода не может использовать для функций или переменных''
(значение по умолчанию) | вектор символовИмена, которые генератор кода не может использовать для функций или переменных, заданных как вектор символов.
RowMajor
— Размещение главного массива строкиfalse
(значение по умолчанию) | true
Генерация кода, который использует размещение главного массива строки, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Сгенерируйте код, который использует размещение главного массива столбца. (Это значение является значением по умолчанию.) |
true | Сгенерируйте код, который использует размещение главного массива строки. |
Смотрите генерируют код, который использует размещение главного массива строки.
RuntimeChecks
— Обнаружение ошибки времени выполнения и сообщающий в сгенерированном кодеfalse
(значение по умолчанию) | true
Обнаружение ошибки времени выполнения и сообщающий в сгенерированном коде, заданном как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Сгенерированный код не проверяет ошибки в таком как за пределы индексация массива. |
true | Сгенерированный код проверяет ошибки в таком как за пределы индексация массива. Программное обеспечение сообщения об ошибке использует Сообщения об ошибке находятся на английском языке. |
Смотрите обнаружение ошибки времени выполнения и сообщающий в автономном коде C/C++.
SaturateOnIntegerOverflow
— Поддержка целочисленного переполненияtrue
(значение по умолчанию) | false
Поддержка целочисленного переполнения, заданная как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Генератор кода производит код, чтобы обработать целочисленное переполнение. Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных. |
false | Генератор кода не производит код, чтобы обработать целочисленное переполнение. Не устанавливайте |
Этот параметр применяет только к MATLAB встроенные целочисленные типы. Это не применяется, удваивается, одиночные игры или типы данных с фиксированной точкой.
Смотрите отключают поддержку Integer Overflow или Nonfinites.
SILDebugging
— Отладка сгенерированного кода во время выполнения SILfalse
(значение по умолчанию) | true
Отладка на уровне исходного кода сгенерированного кода во время программного обеспечения в цикле (SIL) выполнение, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Отключает отладку сгенерированного кода во время выполнения SIL. |
true | Позволяет отладчику наблюдать поведение кода во время программного обеспечения в цикле (SIL) выполнение. Поддерживаемые отладчики:
|
Смотрите сгенерированный код отладки во время выполнения SIL (Embedded Coder).
SILPILCheckConstantInputs
— Constant для SIL или выполнения PILtrue
(значение по умолчанию) | false
Постоянный входной режим проверки для SIL или выполнения PIL, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. SIL или выполнение PIL сравнивают значение, что тестовый файл предусматривает постоянный входной параметр со значением, заданным во время генерации кода. Если значения не соответствуют, ошибка происходит. |
false | SIL или выполнение PIL не сравнивают значение, что тестовый файл предусматривает постоянный входной параметр со значением, заданным во время генерации кода. SIL или выполнение PIL используют значение, заданное во время генерации кода. Если тестовый файл использует различное значение, то результаты в MATLAB могут отличаться от результатов в SIL или выполнении PIL. Возможно ускорить SIL или выполнение PIL установкой |
Смотрите Ускоряют Выполнение SIL/PIL путем Отключения Постоянной Входной Синхронизации Проверки и Глобальных данных (Embedded Coder)
SILPILSyncGlobalData
— Режим синхронизации глобальных данных для SIL или выполнения PILtrue
(значение по умолчанию) | false
Режим синхронизации глобальных данных для SIL или выполнения PIL, заданного как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. СИЛ или выполнение PIL синхронизируют значения глобальных переменных в SIL или среде выполнения PIL со значениями в рабочем пространстве MATLAB. Если глобальная переменная является постоянной и ее значение в SIL, или среда выполнения PIL отличается от своего значения в рабочем пространстве MATLAB, ошибка происходит. |
false | SIL или выполнение PIL не синхронизируют значения глобальных переменных в SIL или среде выполнения PIL со значениями в рабочем пространстве MATLAB. Если значения не синхронизируются, результаты в MATLAB могут отличаться от результатов в SIL или выполнении PIL. Возможно ускорить SIL или выполнение PIL установкой |
Смотрите Ускоряют Выполнение SIL/PIL путем Отключения Постоянной Входной Синхронизации Проверки и Глобальных данных (Embedded Coder)
StackUsageMax
— Максимальное использование стека на приложение200000
(значение по умолчанию) | положительное целое числоМаксимальное использование стека на приложение, в байтах, заданных как положительное целое число. Установите предел, который ниже, чем доступный размер стека. В противном случае переполнение стека этапа выполнения может произойти. Компилятор C обнаруживает и сообщает о переполнениях стека.
Смотрите отключают поддержку Integer Overflow или Nonfinites.
SupportNonFinite
— Поддержка неличных значенийtrue
(значение по умолчанию) | false
Поддержка неличных значений, заданных как одно из значений в этой таблице.
Значение | Описание |
---|---|
true | Это значение является значением по умолчанию. Если Если |
false | Генератор кода не производит код, чтобы поддержать неличные значения. |
Смотрите отключают поддержку Integer Overflow или Nonfinites.
TargetLang
— Язык, чтобы использовать в сгенерированном коде'C'
(значение по умолчанию) | 'C++'
Язык, чтобы использовать в сгенерированном коде, заданном как 'C'
или 'C++'
. Если вы задаете C++, генератор кода переносит код С в .cpp файлы так, чтобы можно было использовать компилятор C++ и интерфейс с внешними приложениями C++. Это не генерирует классы C++.
Зависимость: Если DeepLearningConfig
установлен, codegen
устанавливает TargetLang
на C++
.
TargetLangStandard
— Стандартная математическая библиотека, чтобы использовать для сгенерированного кода'C89/C90 (ANSI)'
| 'C99 (ISO)'
| 'C++03 (ISO)'
Стандартная математическая библиотека, чтобы использовать для сгенерированного кода, заданного как один из этих векторов символов:
'C89/C90 (ANSI)'
'C99 (ISO)'
'C++03 (ISO)'
Генератор кода пользуется стандартной математической библиотекой для вызовов математических операций. Стандартная математическая библиотека по умолчанию зависит от языка, который вы выбираете. Для C библиотекой по умолчанию является 'C99 (ISO)'
. Для C++ библиотекой по умолчанию является 'C++03 (ISO)'
.
Toolchain
— Набор инструментальных средств, чтобы использовать для создания C/C++ библиотечную или исполняемую программу'Automatically locate an installed toolchain'
(значение по умолчанию) | вектор символовНабор инструментальных средств, чтобы использовать для создания C/C++ библиотечную или исполняемую программу, заданную как вектор символов. Список доступных наборов инструментальных средств зависит от платформы хоста - компьютера и может включать пользовательские наборы инструментальных средств, которые вы добавили. Если вы не задаете набор инструментальных средств, генератор кода определяет местоположение установленного набора инструментальных средств.
Примечание:
Предположим, что вы создаете объект coder.CodeConfig
cfg
в сеансе работы с MATLAB и используете его в другом сеансе работы с MATLAB. Если хосту - компьютеру MATLAB для второго сеанса не задали набор инструментальных средств в свойстве cfg.Toolchain
, установленном на нем, этот параметр возвращается к своему значению по умолчанию. Значением по умолчанию является 'Automatically locate an installed toolchain'
.
Verbose
— Отображение успеха генерации кодаtrue
Отображение успеха генерации кода, заданное как одно из значений в этой таблице.
Значение | Описание |
---|---|
false | Это значение является значением по умолчанию. Генератор кода не отображает успех генерации кода. |
true | Генератор кода отображает успех генерации кода, включая этапы генерации кода и выход компилятора. |
VerificationMode
— Режим верификации кода'None'
(значение по умолчанию) | 'SIL'
| 'PIL'
Режим верификации кода, заданный как одно из значений в этой таблице.
Значение | Описание |
---|---|
'None' | Нормальное выполнение |
'SIL' | Программное обеспечение в цикле (SIL) выполнение |
'PIL' | Процессор в цикле (PIL) выполнение |
См. программное обеспечение Code Verification Through в цикле и процессор в выполнении цикла (Embedded Coder).
Запишите функцию MATLAB, от которой можно сгенерировать код. Этот пример использует функциональный myadd
, который возвращает сумму его входных параметров.
function c = myadd(a,b) c = a + b; end
Создайте объект настройки для генерации автономного кода C/C++ (статическая библиотека, динамически подключаемая библиотека или исполняемая программа). Например, создайте объект настройки для генерации статической библиотеки.
cfg = coder.config('lib');
Если Embedded Coder установлен, coder.config
создает объект coder.EmbeddedCodeConfig
.
Измените значения свойств, для которых вы не хотите использовать значения по умолчанию. Например, измените стиль комментария в сгенерированном коде к однострочным комментариям, которым предшествует //
.
cfg.CommentStyle = 'Single-line';
Свойство CommentStyle
доступно только в объекте настройки Embedded Coder.
Сгенерируйте код при помощи codegen
. Передайте объект настройки codegen
при помощи опции -config
. Укажите, что входные параметры являются скаляром дважды.
codegen myadd -config cfg -args {1 1} -report
Использовать параметры конфигурации по умолчанию для сборки вводит 'LIB'
, 'DLL'
или 'EXE'
, используйте опцию codegen
-config:lib
, -config:dll
или -config:exe
, соответственно. Затем вы не должны создать и передать объект настройки codegen
.
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.