Чтобы упростить интегрирование внешнего и сгенерированного кода и достигнуть податливости со стандартами кода и инструкциями, можно сконфигурировать, как генератор кода производит функциональные интерфейсы из модели или подсистемы. Для этого уровня индивидуальной настройки необходимо сконфигурировать модель с основанным на ERT системным конечным файлом.
Настройка | Больше информации |
---|---|
Правила именования значения по умолчанию для категорий функций (инициализируют/отключают, выполнение и совместно использованная утилита) через модель | Сконфигурируйте генерацию кода по умолчанию для функций |
Назовите для отдельных функций точки входа (замените правило именования значения по умолчанию), | Замените именование значения по умолчанию для функций точки входа индивидуума C |
Интерфейс ступенчатой функции (имя функции, возвращаемое значение, и спецификаторы типа аргумента C, имена и порядок) для точки входа шага базовой ставки функционирует в интерактивном режиме | Значение по умолчанию переопределения C интерфейс ступенчатой функции |
Функциональные интерфейсы (имя функции, возвращаемое значение, и спецификаторы типа аргумента C, имена и порядок) для Simulink Функциональная и Функциональная Вызывающая сторона блокируются в интерактивном режиме | Настройте интерфейсы функции точки входа для Simulink функциональные и функциональные блоки вызывающей стороны |
Можно использовать программное обеспечение в цикле (SIL), тестирующий, чтобы проверить код, сгенерированный для индивидуально настраиваемых функций точки входа. Создайте блок SIL при помощи своего сгенерированного кода. Затем интегрируйте блок SIL в модель, чтобы проверить, что сгенерированный код обеспечивает тот же результат как исходная или невиртуальная подсистема модели. Для получения дополнительной информации смотрите, Выбирают SIL или PIL Approach.
Эти ограничения применяются к индивидуальным настройкам за сгенерированные функциональные интерфейсы:
Необходимо выбрать параметр конфигурации модели Single output/update function.
Многоскоростные модели поддерживаются, но необходимо сконфигурировать модели для одного управления задачами.
Необходимо сконфигурировать импорт корневого уровня и выходные порты, чтобы использовать Default
класс памяти.
Если вы принимаете решение настроить функциональный интерфейс, необходимо обеспечить собственный main
программа. Вы не можете сконфигурировать функциональный интерфейс со статическим rt_main.c
thatMathWorks® обеспечивает. Определение функциональной интерфейсной настройки кроме значения по умолчанию создает несоответствие между сгенерированным кодом и статическим rt_main.c
по умолчанию.
Генератор кода удаляет структуру данных для корневого импорта модели, если подсистема, реализованная функцией одноразового использования, не использует значение одного или нескольких из импорта.
Генератор кода удаляет структуру данных для корневых выходных портов модели кроме тех случаев, когда вы включаете логгирование MAT-файла или если шаг расчета одного или нескольких выходных портов не является основной базовой ставкой (включая постоянный уровень).
Если вы копируете блок подсистемы, чтобы создать блок в новой модели или той же модели, функциональная интерфейсная информация от исходного блока подсистемы не копируется в новый блок подсистемы.
Если у вас есть Stateflow® для диаграммы Stateflow, которая использует корневое значение импорта модели, или это вызывает подсистему, которая использует корневое значение импорта модели, сделайте одно из следующих, чтобы сгенерировать код:
Снимите флажок Execute (enter) Chart At Initialization в диаграмме Stateflow.
Сделайте функцию Stateflow функцией одноразового использования.
Вставьте блок Simulink® Signal Conversion сразу после корневого импорта. В диалоговом окне параметров блоков Signal Conversion выберите Exclude this block from 'Block reduction' optimization.
Если корневое значение импорта модели соединяется с блоком преобразования Simscape™, вставьте блок Simulink Signal Conversion между корневым импортом и блок преобразования Simscape. В диалоговом окне параметров блоков Signal Conversion выберите Exclude this block from 'Block reduction' optimization.
При создавании модели, на которую ссылаются, которая сконфигурирована с функциональным интерфейсом, не используйте виртуальные шины в качестве вводов или выводов к модели, на которую ссылаются. Используйте невиртуальные шины вместо этого.
Если интерфейс функции C не является значением по умолчанию, значение проигнорировано для параметра конфигурации модели Pass fixed-size scalar root inputs by value for code generation. Для получения дополнительной информации смотрите скалярные корневые входные параметры фиксированного размера Передачи значением для генерации кода (Simulink).