Генерация кода объектов параметра со значениями выражения

Как описано в Установленном Значении переменных при помощи Математического выражения можно установить значение Simulink.Parameter возразите против выражения, включающего другие объекты переменных MATLAB® или объекты параметра. Когда вы генерируете код из модели, которая использует такой объект параметра, чтобы достигнуть вашей цели, использовать информацию в таблице.

ЦельМетод и больше информации

Сгенерируйте код без Embedded Coder®.

Для объекта параметра, который использует выражение, примените доступный класс памяти (см. Настройку генерации кода C для Элементов Интерфейса модели).

Для объектов параметра, используемых в выражении, примените только класс памяти Auto.

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

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

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

Для объекта параметра, который использует выражение, примените класс памяти, который дает к макросу в сгенерированном коде, таком как Define (см. макроопределения (#define) (Embedded Coder)).

Для объектов параметра, используемых в выражении, примените классы памяти, то выражение импортировало макросы. Например, используйте класс памяти ImportedDefine. Ваш внешний код должен задать их макросы.

Факторы и ограничения

  • Избегать ошибок, которые предотвращают генерацию кода, если вы применяете класс памяти кроме Auto к зависимому объекту параметра (который использует выражение в качестве его значения), объекты параметра, используемые в выражении, должны использовать любой Auto или класс памяти, который дает к макросу в сгенерированном коде.

  • Вы не можете установить значение объекта параметра, который представляет символьную размерность (см. Варианты Размерности Реализации для Размеров Массивов в Сгенерированном коде (Embedded Coder)) к выражению.

  • С Embedded Coder можно сгенерировать код, который сохраняет выражение, но только в целях статичной инициализации значения глобальной переменной или макрос, который соответствует зависимому объекту параметра. Следуйте инструкциям в Сохранении Выражения.

Сохранение выражения

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

  • Зависимый объект параметра должен использовать класс памяти кроме Auto. Например, чтобы сгенерировать глобальную переменную и инициализировать ее при помощи выражения, используйте ExportedGlobal или ExportToFile.

  • Объекты параметра, используемые в выражении, должны:

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

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

  • Выражение может использовать только эти операторы (в синтаксисе MATLAB):

    • Математический: +, -, *

    • Реляционный: ==, ~=, <, >, <=, >=

  • Эти инструкции по вводу данных применяются:

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

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

    • Если вы хотите использовать объект параметра в нескольких различных выражениях, и зависимые объекты параметра имеют различные типы данных, оставляют DataType свойство независимого объекта в значении по умолчанию, auto. В сгенерированном коде значение макроса описывается как число с плавающей запятой (с эффективным типом данных double), и код инициализирует зависимые параметры путем преобразования типа результата каждого выражения.

Смотрите также

Похожие темы