Настройте сгенерированные интерфейсы функции C

Опции для конфигурирования сгенерированных интерфейсов функции C

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

НастройкаСмотрите
Правила именования значения по умолчанию для категорий функций (инициализируют/отключают, выполнение и совместно использованная утилита) через модельСконфигурируйте генерацию кода по умолчанию для функций
Назовите для отдельных функций точки входа (замените правило именования значения по умолчанию),Замените именование значения по умолчанию для функций точки входа индивидуума C
Интерфейс ступенчатой функции (имя функции, возвращаемое значение, и спецификаторы типа аргумента C, имена и порядок) для точки входа шага базовой ставки функционирует в интерактивном режимеЗначение по умолчанию переопределения C интерфейс ступенчатой функции
Функциональный интерфейс (имя функции, возвращаемое значение, и спецификаторы типа аргумента C, имена и порядок) для точки входа шага базовой ставки функционирует программноНастройте шаг C и инициализируйте функциональные интерфейсы программно
Функциональные интерфейсы (имя функции, возвращаемое значение, и спецификаторы типа аргумента C, имена и порядок) для Simulink Функциональная и Функциональная Вызывающая сторона блокируются в интерактивном режимеНастройте интерфейсы функции точки входа для Simulink функциональные и функциональные блоки вызывающей стороны
Функциональные интерфейсы (имя функции и спецификаторы типа аргумента C и имена) для инициализируют и ступенчатые функции для невиртуальных подсистем в интерактивном режимеНастройте функциональные интерфейсы для невиртуальных подсистем

Можно использовать программное обеспечение в цикле (SIL), тестирующий, чтобы проверить код, сгенерированный для индивидуально настраиваемых функций точки входа. Создайте блок SIL при помощи своего сгенерированного кода. Затем интегрируйте блок SIL в модель, чтобы проверить, что сгенерированный код обеспечивает тот же результат как исходная образцовая или невиртуальная подсистема. Для получения дополнительной информации смотрите, Выбирают SIL или PIL Approach.

Функциональные интерфейсные ограничения индивидуальной настройки

Эти ограничения применяются к индивидуальным настройкам за сгенерированные функциональные интерфейсы:

  • Необходимо выбрать образцовый параметр конфигурации Single output/update function.

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

  • Необходимо сконфигурировать импорт корневого уровня и выходные порты, чтобы использовать класс памяти Default.

  • Если вы принимаете решение настроить функциональный интерфейс, необходимо предоставить собственную программу main. Вы не можете сконфигурировать функциональный интерфейс со статическим rt_main.c, который обеспечивает MathWorks. Определение функциональной интерфейсной настройки кроме значения по умолчанию создает несоответствие между сгенерированным кодом и статическим rt_main.c по умолчанию.

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

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

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

  • Если у вас есть Stateflow® для диаграммы Stateflow, которая использует корневое значение импорта модели, или это вызывает подсистему, которая использует корневое значение импорта модели, сделайте одно из следующих, чтобы сгенерировать код:

    • Снимите флажок Execute (enter) Chart At Initialization в диаграмме Stateflow.

    • Сделайте функцию Stateflow функцией одноразового использования.

    • Вставьте блок Simulink® Signal Conversion сразу после корневого импорта. В диалоговом окне параметров блоков Преобразования Сигнала выберите Exclude this block from 'Block reduction' optimization.

  • Если корневое значение импорта модели соединяется с блоком преобразования Simscape™, вставьте блок Simulink Signal Conversion между корневым импортом и блок преобразования Simscape. В диалоговом окне параметров блоков Преобразования Сигнала выберите Exclude this block from 'Block reduction' optimization.

  • При создавании модели, на которую ссылаются, которая сконфигурирована с функциональным интерфейсом, не используйте виртуальные шины в качестве вводов или выводов к модели, на которую ссылаются. Используйте невиртуальные шины вместо этого.

  • Если интерфейс функции C не является значением по умолчанию, значение проигнорировано для образцового параметра конфигурации Pass fixed-size scalar root inputs by value for code generation. Для получения дополнительной информации смотрите скалярные корневые входные параметры фиксированного размера Передачи значением для генерации кода (Simulink).

Похожие темы