С Embedded Coder®, можно запустить программное обеспечение в цикле (SIL) и процессор в цикле (PIL) симуляции модели. Эти симуляции генерируют исходный код или для топ-модели или для части модели. SIL симуляция скомпилировала и запустила сгенерированный код на вашем компьютере разработчика. PIL симуляция кросс-компилирует исходный код на вашем компьютере разработчика, и затем загружает и запускает объектный код на целевом процессоре или эквивалентном симуляторе процессора.
С SIL симуляциями и PIL симуляциями, вы можете:
Протестируйте, эквивалентны ли ваш типовой кодекс и сгенерированный код численно.
Наблюдайте покрытие кода.
Выполните профилирование выполнения кода.
Через SIL и PIL, вы можете рано на тесте и фиксировать дефекты. Например, можно смоделировать и протестировать компонент системы в режиме normal mode. Затем можно переиспользовать тестовые наборы в SIL симуляции или PIL симуляции, которая запускает скомпилированный сгенерированный код. Чтобы проверять числовую эквивалентность, вы сравниваете нормальную и SIL симуляцию или результаты PIL симуляции. Вы не должны оставлять Simulink® среда, чтобы протестировать сгенерированный код на отдельной инфраструктуре.
Эта таблица описывает ситуации, где можно использовать SIL и PIL.
Ситуация | Использование |
---|---|
Протестируйте числовую эквивалентность между типовым кодексом и сгенерированным кодом путем многократного использования тестовых векторов, разработанных для симуляции режима normal mode, чтобы проверить числовой выход сгенерированных (или наследие) код. Смотрите Рабочий процесс Верификации SIL/PIL Manager и Тест Две Симуляции для Эквивалентности (Simulink Test) | SIL и PIL |
Соберите метрики для сгенерированного кода:
| SIL и PIL |
(Требует лицензии IEC Certification Kit.) Выполните действия верификации и валидации на сгенерированном коде C/C++ в соответствии с требованиями полного жизненного цикла безопасности программного обеспечения, как задано ISO 26262-6, IEC 61508-3, IEC 62304, EN 50128 и стандарты EN 50657 функциональной безопасности. Для получения дальнейшей информации о SIL и действиях верификации PIL в рабочем процессе Модельно-ориентированного проектирования IEC Certification Kit, смотрите Рабочий процесс для Встроенных Приложений C/C++ ( | SIL и PIL |
(Требует лицензии DO Qualification Kit.) Протестируйте выход процесса интеграции, чтобы удовлетворить соответствующим целям в DO - 178C и DO 333 стандарта безопасности. Для получения дополнительной информации смотрите Тестирование Выходных параметров Процесса интеграции (DO Qualification Kit). Эта информация доступна также в Рабочем процессе Модельно-ориентированного проектирования для DO - 178C ( | SIL и PIL |
Без целевого компьютера получите удобную альтернативу PIL. | SIL |
С целевым компьютером, например, оценочной платой или симулятором процессора:
Нормальные методы симуляции не составляют ограничения и требования, чтобы оборудование наложило, такие как ресурсы ограниченной памяти или поведение целевого оптимизированного кода. Для получения информации о выполнении PIL симуляций на определенных целях смотрите Демонстрационные Пользовательские Цели. | PIL |
Примечание
SIL симуляция и режимы PIL симуляции не спроектированы для сокращения времен симуляции модели. Если вы хотите ускорить симуляцию своей модели, используйте быстрый режим Accelerator. Для получения дополнительной информации смотрите то, Что Ускорение?.
В SIL симуляции или PIL симуляции, код сгенерирован или для топ-модели или для части модели. С SIL этот код скомпилирован для и выполнен на вашем компьютере разработчика. С PIL код кросс-компилируется для целевого компьютера и работает на целевом процессоре.
Через канал связи Simulink отправляет входные сигналы в код на вашем компьютере или на целевой процессор для каждого шага расчета симуляции.
Для топ-модели Simulink использует сигналы стимула от базового рабочего пространства или рабочего пространства модели.
Если вы определяли только часть модели симулировать в режиме SIL или PIL, то часть модели остается в Simulink, и код не сгенерирован для этой части модели. Как правило, вы конфигурируете эту часть модели, чтобы обеспечить тестовые векторы для программного обеспечения, выполняющегося на оборудовании. Эта часть модели может представлять другие части алгоритма или среды, в которой действует алгоритм.
Когда ваш процессор компьютера или целевой процессор получают сигналы от Simulink, процессор выполняет SIL или алгоритм PIL для одного демонстрационного шага. SIL или алгоритм PIL возвращают выходные сигналы, вычисленные во время этого шага к Simulink через канал связи. Один демонстрационный цикл симуляции завершен, и Simulink переходит к следующему демонстрационному интервалу. Процесс продолжает повторяться и прогресс симуляции. SIL симуляции и PIL симуляции не запускаются в режиме реального времени. В каждый период расчета Simulink и объектный код обмениваются данными о вводе-выводе.
Тип SIL симуляции или PIL симуляции | Что происходит в SIL симуляции | Что происходит в PIL симуляции |
---|---|---|
Задайте через:
|
|
|
Используйте блок SIL или PIL, созданный из подсистемы. |
|
|
Вы генерируете автономный код, когда вы выполняете, например, топ-модель или щелкаете правой кнопкой по сборке подсистемы для одного развертываемого компонента. Можно скомпилировать и соединить автономный код в независимый исполняемый файл или интегрировать его с другим кодом. Для получения дополнительной информации об автономном интерфейсе кода смотрите, Конфигурируют генерацию кода C для Функций Точки входа Модели.
Когда вы генерируете код для иерархии модели, на которую ссылаются, программное обеспечение генерирует код независимого исполняемого файла для топ-модели, и модуль библиотеки вызвал цель модели-ссылки для каждой модели, на которую ссылаются. Когда код выполняется, независимый исполняемый файл вызывает применимые цели модели-ссылки, чтобы вычислить выходные параметры модели, на которые ссылаются. Для получения дополнительной информации смотрите Цели модели-ссылки Сборки.
Чтобы интегрировать сгенерированный код с унаследованным кодом, используйте автономный код, потому что автономный интерфейс кода документируется.
Примечание
SIL симуляции и PIL симуляции не оказывают прямую поддержку для интерфейсов пользовательского кода. Можно включить эти интерфейсы в Simulink как S-функция, например, с помощью Legacy Code Tool, S-Function Builder или рукописного кода. Затем можно проверить пользовательский код при помощи SIL симуляций и PIL симуляций.
Эта таблица обеспечивает интерфейсы, которые генерируют SIL симуляции и PIL симуляции.
SIL/PIL СИМУЛЯЦИЯ | Интерфейс кода |
---|---|
Топ-модель | SIL/PIL СИМУЛЯЦИЯ генерирует автономный интерфейс кода. Если код существует, симуляция вызывает автономный код для модели. Если код не существует, симуляция генерирует автономный код. |
Блок Model | Если вы устанавливаете параметры блоков Code interface на Если вы устанавливаете параметры блоков Code interface на |
Блок SIL или PIL | Блокируйте использование автономный интерфейс кода. |
Элемент | Информация |
---|---|
Алгебраические циклы | Существуют алгебраические петли, которые происходят в SIL и PIL симуляциях, но не в симуляциях режима normal mode:
Для получения дополнительной информации см.:
|
Экспортируемые функции в обратной связи | Если ваша модель имеет подсистемы вызова функций, и вы экспортируете подсистему, которая имеет контекстно-зависимые входные параметры (например, сигналы обратной связи), результаты SIL/PIL симуляции со сгенерированным кодом и результаты симуляции режима normal mode вашей модели могут отличаться. Один подход, чтобы сделать SIL/PIL и симуляции режима normal mode приводит к идентичным результатам, должен использовать блоки Фиксатора Обратной связи Вызова функции в вашей модели. Можно заставить контекстно-зависимые входные параметры стать независимыми от контекста. Embedded Coder генерирует предупреждение, идентифицирующее контекстно-зависимые входные параметры экспортируемых подсистем вызова функций, если вы устанавливаете параметр конфигурации Context-dependent inputs на одно из следующего:
Для получения дополнительной информации см.:
|
SIL симуляция или PIL симуляция не изменяют код, сгенерированный из модели. Если вы используете импортированные данные, SIL симуляция или PIL симуляция генерируют дополнительный код, который требуется, чтобы поддерживать компиляцию и соединение SIL или целевого приложения PIL. Дополнительный сгенерированный код соответствует интерфейсам, которые вы задаете в модели.
В этом разделе описываются:
Для импортированных данных, когда SIL симуляция или PIL симуляция задают устройство хранения данных и когда необходимо задать устройство хранения данных.
Интерфейсы, для которых SIL симуляция или PIL симуляция генерируют дополнительный код
В SIL симуляциях и PIL симуляциях, можно использовать сигналы, параметры и хранилища данных, которые задают классы памяти с импортированными определениями данных. Симуляции задают устройство хранения данных для импортированных данных, сопоставленных с:
Сигналы на корневом уровне компонента (на контуре ввода-вывода).
Параметры в базовом рабочем пространстве или словаре данных. Для параметров в рабочем пространстве модели:
Симуляции блока SIL/PIL и SIL/PIL топ-модели задают устройство хранения данных.
SIL/PIL СИМУЛЯЦИИ блока Model не задает устройство хранения данных. Необходимо задать устройство хранения данных и задать начальные значения то соответствие значения MATLAB.
Хранилища глобальных данных.
SIL симуляции и PIL симуляции не задают устройство хранения данных для других импортированных данных. Например, симуляции не задают устройство хранения данных для импортированных данных, сопоставленных с:
Внутренние сигналы (не на контуре ввода-вывода). Обратите внимание на то, что, если данные для внутренних сигналов находятся в структурах, которые импортируются с помощью указателей, симуляции задают устройство хранения данных.
Локальные хранилища данных.
В этих случаях задайте устройство хранения данных через пользовательский код, включенный компонентом под тестом или через rtw.pil.RtIOStreamApplicationFramework
PIL API.
См. также Настраиваемые параметры и SIL/PIL.
Эта таблица описывает сценарии, где SIL симуляция или PIL симуляция генерируют дополнительный код для интерфейсов.
Сценарий | Детали |
---|---|
GetSet пользовательский класс памяти | SIL симуляции и PIL симуляции поддерживают |
Пользовательский класс памяти типа Other | Чтобы включить SIL и PIL поддерживают для пользовательского класса памяти, где Type установлен в classdef CSCOtherAttributes < Simulink.CustomStorageClassAttributes properties(PropertyType = 'logical scalar') SupportSILPIL = true; end end Для получения дополнительной информации о пользовательских атрибутах, смотрите, Далее Настраивают Сгенерированный код путем Записи Кода TLC и Точно Представления данных Управления путем Записи Кода TLC для Класса памяти. Чтобы создать интерфейс приложения SIL или PIL, генератор кода вызывает Для пользовательского класса памяти, который не сгруппирован:
Для пользовательского класса памяти, который сгруппирован:
Чтобы определить, могут ли SIL или приложение PIL получить доступ к переменной в коде адресом, генератор кода использует элементы, возвращенные
Генератор кода принимает это для Можно создать пользовательский файл TLC, сопоставленный с пользовательским классом памяти типа ... %case "contents" %if !LibIsAccessingCustomDataForSILPIL(record) %matlab functionWithSideEffects() %endif %return LibDefaultCustomStorageContents(record, idx, reim) ... См. также Другие пользовательские ограничения класса памяти. |
Среда выполнения AUTOSAR | Можно использовать топ-модель и симуляции блока SIL/PIL и SIL/PIL блока Model, чтобы выполнить модельное тестирование компонента программного обеспечения AUTOSAR. Программное обеспечение соединяет сгенерированный код для компонента программного обеспечения AUTOSAR с основной Средой выполнения AUTOSAR, зависящей от компонента, (RTE), чтобы создать тестовое приложение. Это приложение тестирует вызовы API AUTOSAR, сделанные компонентом программного обеспечения AUTOSAR. Для компонента программного обеспечения AUTOSAR верхнего уровня, который содержит модели, на которые ссылаются, можно запустить топ-модель или блок Model (набор Code interface к
Можно также запустить блок Model (набор Code interface к |