кодер. MexCodeConfig

Параметры конфигурации для генерации MEX-функции из кода MATLAB

Описание

Объект coder.MexCodeConfig содержит параметры конфигурации, которые codegen использует при генерации MEX-функции. Передайте объект функции codegen при помощи опции -config.

Создание

Синтаксис

cfg = coder.config('mex')
cfg = coder.config

Описание

пример

cfg = coder.config('mex') создает объект coder.MexCodeConfig.

cfg = coder.config создает объект coder.MexCodeConfig.

Свойства

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

Максимальное количество функциональных специализаций для рекурсии времени компиляции, заданной как положительное целое число. Чтобы запретить рекурсию в коде MATLAB®, установите CompileTimeRecursionLimit на 0. Предел рекурсии времени компиляции по умолчанию является достаточно большим для большинства рекурсивных функций, которые требуют этого типа рекурсии. Если генерация кода перестала работать из-за предела рекурсии времени компиляции, и вы хотите рекурсию времени компиляции, пытаетесь увеличить предел. Также измените свой код MATLAB так, чтобы генератор кода использовал рекурсию во время выполнения. Смотрите Достигнутый Предел Рекурсии Времени компиляции.

Максимальное количество инструкций, что постоянная папка выполняется. В некоторых ситуациях генерация кода требует, чтобы конкретные инструкции были постоянными. Если сворачивание констант останавливается, прежде чем эти инструкции постоянно свернуты, сбои генерации кода. В этом случае увеличьте значение ConstantFoldingTimeout.

Смотрите оптимизацию MATLAB CODER в сгенерированном коде.

Постоянный входной режим проверки, заданный как одно из значений в этой таблице.

ЗначениеОписание
'CheckValues'

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

Когда вы вызываете MEX-функцию, она проверяет, что значение, вы предусматриваете постоянный входной параметр, является значением, заданным во время генерации кода.

Можно вызвать MEX-функцию и исходную функцию MATLAB с теми же аргументами. Поэтому можно использовать тот же тестовый файл для обеих функций.

Проверка значений может замедлить выполнение MEX-функции.

'IgnoreValues'

Когда вы вызываете MEX-функцию, она игнорирует значение, что вы предусматриваете постоянный входной параметр. Это использует значение, заданное во время генерации кода.

Можно использовать тот же тестовый файл без издержек проверки значений аргумента константы.

Удаление

Генератор кода удаляет постоянные входные параметры из подписи MEX-функции. Когда вы вызываете MEX-функцию, вы не обеспечиваете значение для постоянного входного параметра.

Эта опция обеспечивает обратную совместимость.

Смотрите, что постоянный входной параметр регистрируется в MEX-функциях.

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

Включайте папки, чтобы добавить к включать пути при компиляции сгенерированного кода. Укажите, что список включает папки как вектор символа.

Если ваш список содержит пути, которые содержат пробелы, заключают каждый экземпляр в двойные кавычки, например:

'C:\Project "C:\Custom Files"'

Пользовательский код, чтобы включать в сгенерированное инициализирует функцию, заданную как вектор символа.

Статические файлы библиотеки, чтобы соединиться со сгенерированным кодом, заданным как вектор символа. В векторе символа разделите имена файлов библиотеки пробелом.

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

Процесс сборки ищет исходные файлы сначала в текущей папке, и затем во включать папках, которые вы задаете в CustomInclude.

Если исходные файлы с тем же именем происходят в нескольких папках на пути поиска файлов, процесс сборки может использовать различный файл, чем файл, который вы задали. Например, предположите, что вы задаете foo.cpp как исходный файл. Если foo.c и foo.cpp находятся в папках на пути поиска файлов, вы не можете быть уверены, использует ли процесс сборки foo.c или foo.cpp.

Задайте код, чтобы появиться около верхней части сгенерированного .c или файла .cpp, за пределами любой функции. Задайте код как вектор символа.

Не задавайте статическое функциональное определение C.

Код, который появляется в сгенерированной оконечной функции, заданной как вектор символа.

Объект Configuration для генерации кода для глубоких образовательных сетей, заданных как объект coder.MklDNNConfig. Объект coder.MklDNNConfig содержит Intel® MKL-DNN определенные параметры, которые codegen использует для генерации Кода С++ для глубоких образовательных сетей. Чтобы создать объект coder.MklDNNConfig, используйте coder.DeepLearningConfig. Например:

cfg = coder.config('mex');
cfg.TargetLang = 'C++';
cfg.DeepLearningConfig = coder.DeepLearningConfig('mkldnn');

Генерация кода для глубоких образовательных сетей требует Глубоко Изучения Toolbox™ и Интерфейса MATLAB Coder™ для Глубокого Изучения пакета поддержки Библиотек.

Смотрите генерацию кода для глубоких образовательных сетей с MKL-DNN.

Режим динамического выделения памяти, заданный как одно из значений в этой таблице.

ЗначениеОписание
'Порог'

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

Генератор кода выделяет память динамически на куче для массивов переменного размера, размер которых (в байтах) больше, чем или равен DynamicMemoryAllocationThreshold.

'AllVariableSizeArrays'Генератор кода динамически выделяет память для всех массивов переменного размера на куче.
'off'

Генератор кода статически выделяет память для массивов переменного размера на стеке.

Неограниченные массивы переменного размера требуют динамического выделения памяти.

Зависимости:

  • EnableVariableSizing включает этот параметр.

  • Установка этого DynamicMemoryAllocation к 'Threshold' включает параметр DynamicMemoryAllocationThreshold.

Смотрите генерируют код для данных Переменного Размера.

Порог размера для динамического выделения памяти массивов переменного размера, заданных как положительное целое число. Генератор кода использует динамическое выделение памяти для массивов переменного размера, размер которых (в байтах) больше, чем или равен порогу.

Зависимость:

  • Установка DynamicMemoryAllocation к 'Threshold' включает этот параметр.

Смотрите генерируют код для данных Переменного Размера.

Повторение выражения, заданное как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

MEX-функция отображает вывод операторов, которые не заканчиваются точкой с запятой.

ложь

MEX-функция не отображает вывод операторов, которые не заканчиваются точкой с запятой.

Это свойство не применяется к общим функциям визуализации, таким как disp, plot или figure, когда они называются как внешняя функция. MEX-функции отображают вывод тех функций независимо от присутствия точки с запятой или значения EchoExpressions.

Автоматические внешние вызовы функции, заданные как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Генератор кода обрабатывает некоторые общие функции визуализации как внешние функции. Вы не должны объявлять эти функции как внешние при помощи coder.extrinsic. Эта возможность уменьшает количество времени, что вы тратите создание вашего кода, подходящего для генерации кода.

ложьГенератор кода не обрабатывает общие функции визуализации как внешние функции, если вы не объявляете их как внешних при помощи coder.extrinsic.

Некоторыми общими функциями визуализации является plot, disp и figure. Смотрите Внешние Функции.

Режим отладки компилятора C, заданный как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода не включает режим отладки компилятора C.

tRUE

Генератор кода включает режим отладки компилятора C. Когда режим отладки включен, компилятор C не оптимизирует код. Компиляция быстрее, но выполнение медленнее.

Своевременный (JIT) режим компиляции, заданный как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода создает функцию MEX C/C++ путем генерации и компиляции кода C/C++.

tRUE

Генератор кода использует своевременную (JIT) технологию компиляции для генерации MEX-функции. Генератор кода создает MEX-функцию JIT, которая содержит абстрактное представление кода MATLAB. Когда вы запускаете MEX-функцию JIT, MATLAB генерирует исполняемый код в памяти.

Чтобы ускорить генерацию MEX-функций, установите EnableJIT на true.

JIT-компиляция несовместима с определенными функциями генерации кода и опциями, такова как пользовательский код или использование библиотеки OpenMP. Если вы задаете JIT-компиляцию, и генератор кода не может использовать ее, она генерирует функцию MEX C/C++ с предупреждением. Если EnableJIT и EnableOpenMP является true, и ваш код использует parfor, генератор кода использует JIT-компиляцию и обрабатывает parfor - циклы как for - циклы.

Смотрите ускоряют генерацию MEX при помощи JIT-компиляции.

Оптимизация memcpy, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Если возможно, генератор кода использует оптимизацию memcpy. Чтобы оптимизировать код, который копирует последовательные элементы массива, оптимизация memcpy заменяет код на вызов memcpy. Когда число элементов, чтобы скопировать известно во время компиляции, генератор кода использует свойство MemcpyThreshold определить, использовать ли оптимизацию. См. memcpy Оптимизацию.

ложь

Генератор кода не использует оптимизацию memcpy.

Включение профилирования сгенерированной MEX-функции, заданной как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода не включает инструментирование для профилирования в сгенерированной MEX-функции.

tRUE

Генератор кода включает инструментирование для профилирования в сгенерированной MEX-функции. Можно затем использовать профилировщика MATLAB, чтобы профилировать MEX, Смотрите MEX-функции Профиля при помощи профилировщика MATLAB.

Распараллеливание parfor - циклы, заданные как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Если возможно, генератор кода пользуется библиотекой OpenMP, чтобы произвести итерации цикла, которые запускаются параллельно.

ложь

Генератор кода обрабатывает parfor - циклы как for - циклы.

Смотрите parfor.

Использование библиотеки OpenMP не совместимо со своевременной (JIT) компиляцией. Если EnableJIT и EnableOpenMP является true, генератор кода использует JIT-компиляцию и обрабатывает parfor - циклы как for - циклы.

Поддержка рекурсии во время выполнения, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Рекурсивные функции позволены в сгенерированном коде.

ложь

Рекурсивные функции не позволены в сгенерированном коде.

Некоторые стандарты кодирования, такие как MISRA®, не позволяют рекурсию. Чтобы увеличить вероятность генерации кода, который совместим с MISRA C®, устанавливает EnableRuntimeRecursion на false.

Если ваш код MATLAB требует рекурсии во время выполнения, и EnableRuntimeRecursion является false, сбои генерации кода.

Смотрите генерацию кода для рекурсивных функций.

Поддержка массивов переменного размера, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Массивы переменного размера позволены для генерации кода.

ложь

Массивы переменного размера не позволены для генерации кода.

Зависимость:

  • Включает Dynamic memory allocation.

Смотрите генерацию кода для массивов Переменного Размера.

Внешняя поддержка вызова функции, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Для внешней функции генератор кода производит вызов функции MATLAB. Генератор кода не генерирует внутренний код для функции.

ложь

Генератор кода игнорирует внешнюю функцию. Это не генерирует код для вызова функции MATLAB. Если внешняя функция влияет на вывод функции MATLAB, генератор кода выпускает ошибку компиляции.

Если вы устанавливаете ExtrinsicCalls на false, сгенерированная MEX-функция не может отобразить сообщения во время выполнения от операторов error или assert в вашем коде MATLAB. MEX-функция сообщает, что не может отобразить сообщение об ошибке. Чтобы видеть сообщение об ошибке, установите ExtrinsicCalls на true и сгенерируйте MEX-функцию снова.

Значение ExtrinsicCalls влияет, как MEX-функция генерирует случайные числа за rand, randi, и randn. Если ExtrinsicCalls является true, MEX-функция использует глобальный поток случайных чисел MATLAB, чтобы сгенерировать случайные числа. В противном случае MEX-функция использует автономный генератор случайных чисел.

Смотрите внешние функции.

Режим разделения файла, заданный как одно из значений в этой таблице.

ЗначениеОписание
'MapMFileToCFile'

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

Генератор кода производит отдельные файлы C/C++ для каждого файла языка MATLAB.

'SingleFile'Генератор кода производит единственный файл для функций C/C++, которые сопоставляют с вашими функциями точки входа MATLAB. Генератор кода производит отдельные файлы C/C++ для служебных функций.

Смотрите как сгенерированный код разделов MATLAB CODER.

Генерация только исходного кода, заданного как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода производит исходный код C/C++ и создает объектный код.

tRUE

Генератор кода производит исходный код C/C++, но не вызывает сделать команду или создает объектный код. Когда вы выполняете итерации между изменением кода MATLAB, и генерация кода C/C++, генерируя только код может сэкономить время.

Комментарии в сгенерированном коде, заданном как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Генератор кода помещает комментарии в сгенерированный код.

ложьГенератор кода не помещает комментарии в сгенерированный код.

Отчет генерации кода, заданный как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода представляет отчет, только если сообщения об ошибке или предупреждающие сообщения происходят, или если вы устанавливаете LaunchReport на true.

tRUEГенератор кода представляет отчет генерации кода.

Режим синхронизации глобальных данных, заданный как одно из значений в этой таблице.

ЗначениеОписание для глобальных данныхОписание для постоянных глобальных данных

'SyncAlways' (значение по умолчанию)

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

Синхронизирует глобальные данные при входе и выходе MEX-функции и для внешних призывов к максимальной непротиворечивости между MATLAB и сгенерированной MEX-функцией. Чтобы максимизировать производительность, если внешние вызовы не изменяют глобальные данные, используют эту опцию с опцией -sync:off coder.extrinsic, чтобы выключить синхронизацию для этих вызовов.

Проверяет непротиворечивость постоянных глобальных данных при записи MEX-функции и после внешних вызовов. Если значения глобальных данных в глобальной рабочей области MATLAB противоречивы со временем компиляции постоянные глобальные значения в MEX-функции, концах MEX-функции с ошибкой. Используйте опцию -sync:off coder.extrinsic, чтобы выключить проверки на непротиворечивость после определенных внешних вызовов.

'SyncAtEntryAndExits'

Синхронизирует глобальные данные при входе и выходе MEX-функции только. Чтобы максимизировать производительность, если только несколько внешних глобальных данных изменения вызовов, используют эту опцию с опцией -sync:on coder.extrinsic, чтобы включить синхронизацию для этих вызовов.

Проверяет постоянные глобальные данные при записи MEX-функции только. Если значения глобальных данных в глобальной рабочей области MATLAB противоречивы со временем компиляции постоянные глобальные значения в MEX-функции, концах MEX-функции с ошибкой. Используйте опцию -sync:on coder.extrinsic, чтобы включить проверки на непротиворечивость после определенных внешних вызовов.

'NoSync'

Отключает синхронизацию. Прежде, чем отключить синхронизацию, проверьте, что ваша MEX-функция не взаимодействует с глобальными данными MATLAB. В противном случае несоответствия между MATLAB и MEX-функцией могут произойти.

Отключает проверки на непротиворечивость.

Смотрите генерируют код для глобальных данных.

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

ЗначениеОписание
tRUE

Отчет генерации кода отображает потенциальные проблемы эффективности из-за главного строкой размещения. (Это значение является значением по умолчанию.)

ложьОтчет генерации кода не отображает проблемы, связанные с размещением массивов.

Смотрите дизайн кода для размещения главного массива строки.

Присвоение плавания и дважды обнуляет с memset, заданным как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Если возможно, генератор кода использует оптимизацию memset для присвоения нуля с плавающей точкой к последовательным элементам массива. Чтобы присвоить последовательные элементы массива, оптимизация memset использует вызов memset. Когда число элементов, чтобы присвоить известно во время компиляции, генератор кода использует свойство MemcpyThreshold определить, использовать ли оптимизацию. См. memset Оптимизацию.

ложь

Генератор кода не использует оптимизацию memset для присвоения плавания и удваивает нуль до последовательных элементов массива.

Сложите предел размера для встроенных функций, заданных как положительное целое число. Предел размера стека определяет количество стекового пространства, выделенного для локальных переменных встроенной функции.

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

Эта возможность особенно важна для встраиваемых процессоров, где размер стека может быть ограничен.

Смотрите, что управление встраивает.

Функциональный порог размера для встраивания, заданный как положительное целое число.

Если другие условия не предотвращают встраивание, генератор кода встраивает функции, которые меньше, чем порог.

Функциональный размер измеряется как отвлеченное число инструкций, не фактических инструкций MATLAB или инструкций в целевом процессоре. Получить поведение встраивания, которое вы хотите, эксперимент с порогом. Например, если пороговые результаты по умолчанию во встраивании больших функций и генерации больших сумм кода С, настройте порог, пока вы не будете удовлетворены размером сгенерированного кода.

Смотрите, что управление встраивает.

Максимальный размер функций после встраивания, заданного как положительное целое число. Если после встраивания размер функции вызова превышает InlineThresholdMax, то генератор кода не встраивает вызванную функцию.

Функциональный размер измеряется как отвлеченное число инструкций, не фактических инструкций MATLAB или инструкций в целевом процессоре. Получить поведение встраивания, которое вы хотите, эксперимент с порогом. Например, если пороговые результаты по умолчанию во встраивании больших функций и генерации больших сумм кода С, настройте порог, пока вы не будете удовлетворены размером сгенерированного кода.

Смотрите, что управление встраивает.

Проверка целостности памяти, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Сгенерированный код обнаруживает выполнение нарушений и остановок целостности памяти с диагностическим сообщением.

ложь

Сгенерированный код не обнаруживает нарушения целостности памяти.

Установка IntegrityChecks к false может улучшить производительность. Однако без проверок целостности памяти, нарушения приводят к непредсказуемому поведению. Установите IntegrityChecks на false, только если вы проверили, что проверка границ массивов и проверка размерности являются ненужными. Установка IntegrityChecks к false также отключает стек этапа выполнения.

Смотрите проверки на этапе выполнения управления.

Автоматический открытый из отчета генерации кода, заданного как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Если ошибки или предупреждения происходят, или если GenerateReport является true, генератор кода представляет отчет, но не открывает отчет.

tRUEГенератор кода производит и открывает отчет генерации кода.

Включение исходного кода MATLAB как комментарии в сгенерированном коде, заданном как одно из значений в этой таблице.

ЗначениеОписание
ложь

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

Генератор кода не вставляет исходный код MATLAB как комментарии в сгенерированном коде. Генератор кода не включает подпись функции MATLAB в функциональный баннер.

tRUE

Генератор кода вставляет исходный код MATLAB как комментарии в сгенерированном коде. Тег трассируемости сразу предшествует каждой строке исходного кода. Тег трассируемости помогает вам определить местоположение соответствующего исходного кода MATLAB. Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.

Генератор кода также включает подпись функции MATLAB в функциональный баннер.

Зависимость:

  • GenerateComments включает этот параметр.

Смотрите Трассировку Сгенерированный Код C/C++ к Исходному коду MATLAB.

Минимальный размер, в байтах, для memcpy или memset оптимизации, заданной как положительное целое число.

Чтобы оптимизировать сгенерированный код, который копирует последовательные элементы массива, генератор кода пытается заменить код на вызов memcpy. Чтобы оптимизировать сгенерированный код, который присваивает литеральную константу последовательным элементам массива, генератор кода пытается заменить код на вызов memset.

Количество байтов является количеством элементов массива, чтобы скопировать или присвоить умноженный на количество байтов, требуемых для типа данных C/C++.

Если число элементов, чтобы скопировать или присвоить является переменным (не известный во время компиляции), генератор кода игнорирует свойство MemcpyThreshold.

См. memcpy Оптимизацию и memset Оптимизацию.

Имя объекта, заданное как вектор символа.

Команда, чтобы настроить сборку, обрабатывающую после генерации MEX-функции с codegen, заданным как вектор символа.

Смотрите индивидуальную настройку процесса сборки.

Генерация кода, который использует N-мерную индексацию, заданную как одно из значений в этой таблице.

ЗначениеОписание
ложь

Сгенерируйте код, который использует одномерную индексацию. (Это значение является значением по умолчанию.)

tRUEСгенерируйте код, который использует N-мерную индексацию.

Смотрите генерируют код, который использует n-мерную индексацию.

Имена переменных, чтобы сохранить в сгенерированном коде, заданном как одно из значений в этой таблице.

ЗначениеОписание
'none'

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

Генератор кода не должен сохранять имена переменных. Это может снова использовать любые переменные, которые удовлетворяют требования для переменного повторного использования.

Если ваш код использует большие структуры или массивы, установка PreserveVariableNames к 'None' может уменьшить использование памяти или улучшить скорость выполнения.

'UserNames'

Генератор кода сохраняет имена, которые соответствуют переменным, которые вы задаете в коде MATLAB. Это не заменяет ваше имя переменной на другое имя и не использует ваше имя для другой переменной. Чтобы улучшить удобочитаемость, установите PreserveVariableNames на 'UserNames'. Затем можно более легко проследить переменные в сгенерированном коде назад к переменным в коде MATLAB.

Установка PreserveVariableNames к 'UserNames' не препятствует тому, чтобы оптимизация удалила ваши переменные из сгенерированного кода, или препятствует тому, чтобы компилятор C/C++ снова использовал переменные в сгенерированном двоичном коде.

все

Сохраните все имена переменных. Это значение параметров отключает переменное повторное использование. Используйте его только для тестирования или отладки, не для производственного кода.

Смотрите имена переменных заповедника в сгенерированном коде.

Создание отчетов разности потенциалов, заданное как одно из значений в этой таблице:

ЗначениеОписание
tRUEГенератор кода сообщает о потенциальных различиях в поведении между сгенерированным кодом и кодом MATLAB. Разности потенциалов перечислены на вкладке отчета генерации кода. Разность потенциалов является различием, которое происходит во время выполнения только при определенных обстоятельствах.
ложьГенератор кода не сообщает о разностях потенциалов.

Смотрите, что разности потенциалов сообщают.

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

Проверки скорости отклика, заданные как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Можно использовать Ctrl+C, чтобы остановить выполнение сгенерированной MEX-функции.

ложь

Чтобы закончить продолжительную MEX-функцию, вам придется отключить MATLAB.

Смотрите проверки на этапе выполнения управления.

Генерация кода, который использует размещение главного массива строки, заданное как одно из значений в этой таблице.

ЗначениеОписание
ложь

Сгенерируйте код, который использует размещение главного массива столбца. (Это значение является значением по умолчанию.)

tRUEСгенерируйте код, который использует размещение главного массива строки.

Смотрите генерируют код, который использует размещение главного массива строки.

Поддержка целочисленного переполнения, заданная как одно из значений в этой таблице.

ЗначениеОписание
tRUE

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

Генератор кода производит код, чтобы обработать целочисленное переполнение. Переполнение насыщает или к минимальному или к максимальному значению, которое может представлять тип данных.

ложь

Генератор кода не производит код, чтобы обработать целочисленное переполнение. Не устанавливайте SaturateOnIntegerOverflow на false, если вы не уверены, что ваш код не зависит от поддержки целочисленного переполнения. Если вы отключаете поддержку целочисленного переполнения, и проверки целостности включены, сгенерированный код производит ошибку для переполнения. Если вы отключаете поддержку целочисленного переполнения, и вы отключаете проверки целостности, поведение переполнения зависит от вашего целевого компилятора C. В стандарте C поведение для целочисленного переполнения не определено. Однако большинство компиляторов C переносится на переполнении.

Этот параметр применяет только к MATLAB встроенные целые типы. Это не применяется, удваивается, одиночные игры или типы данных фиксированной точки.

Смотрите отключают поддержку Integer Overflow или Nonfinites.

Максимальное использование стека на приложение, в байтах, заданных как положительное целое число. Установите предел, который ниже, чем доступный размер стека. В противном случае переполнение стека этапа выполнения может произойти. Компилятор C обнаруживает и сообщает о переполнениях стека.

Смотрите использование стекового пространства управления.

Язык, чтобы использовать в сгенерированном коде, заданном как 'C' или 'C++'. Если вы задаете C++, генератор кода переносит код С в .cpp файлы так, чтобы можно было использовать компилятор C++ и интерфейс с внешними приложениями C++. Это не генерирует классы C++.

Примеры

свернуть все

Запишите функцию MATLAB, от которой можно сгенерировать код. Этот пример использует функциональный myadd, который возвращает сумму его входных параметров.

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

Создайте объект настройки для генерации MEX-функции.

cfg = coder.config('mex');

Измените значения свойств, для которых вы не хотите использовать значения по умолчанию. Например, включите своевременную (JIT) компиляцию.

cfg.EnableJIT = true;

Сгенерируйте код при помощи codegen. Передайте объект настройки codegen при помощи опции -config. Укажите, что входные параметры являются скаляром дважды.

codegen myadd -config cfg -args {1 1} -report

Альтернативная функциональность

Чтобы использовать значения параметра конфигурации по умолчанию для генерации MEX-функции, вместо того, чтобы создать объект настройки, можно вызвать codegen, не задавая объект настройки или с опцией -config:mex.

Введенный в R2011a

Была ли эта тема полезной?