exponenta event banner

Советы и ограничения

Блок инициированной модели

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

Отклонения в профилях времени выполнения

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

Всплески связаны с опережением процесса, которое происходит в многозадачной операционной системе хоста. Если операционная система прерывает процесс SIL и выполняет другой процесс, измеренное время выполнения включает в себя время, в течение которого процесс SIL приостанавливается. При моделировании PIL всплески не отображаются, поскольку выполнение кода на целевом объекте не предотвращено.

Свертывание счетчиков приводит к измерениям времени выполнения, которые меньше, чем ожидалось. Для SIL счетчик переносится, когда период времени выполнения превышает 264 галочки (232 галочки, если компилятором MEX является LCC). Для PIL точка наложения зависит от заданного таймера и может быть 28, 216, 232 или 264 засечек.

Рассмотрим пример PIL, в котором частота таймера равна 20 МГц. Для 32-разрядного таймера перенос происходит, когда период времени выполнения превышает 1/(20e6)*(2^32-1)Однако для 16-битного таймера точка, в которой происходит обертывание, составляет 0,0033 с.

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

Аппаратный таймер

Если целевая конфигурация еще не указывает таймер, создайте объект таймера, содержащий сведения об аппаратном таймере и связанных исходных файлах:

  • Для моделирования SIL длина слова таймера составляет 64 бита.

  • Для моделирования PIL укажите неподписанный 8-, 16-, 32- или 64-разрядный таймер. Дополнительные сведения см. в разделе Указание аппаратного таймера.

Переключение контекста задачи из-за приоритетного прерывания

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

В некоторых случаях, когда программное обеспечение не может точно определить поведение, оно генерирует предупреждение:

Warning: Analysis unsuccessful for one or more profiling data points. ...
Например, программное обеспечение может генерировать это предупреждение, когда не все вызовы системы mutex take (связанные с переходами скорости) инструментализированы. В случае Simulink ® Real-Time™ такая ситуация может возникнуть, если создать код для ссылочной иерархии модели без включения профилирования функций для всех ссылочных моделей (set_param(model, 'CodeProfilingInstrumentation', 'on')). Если вызов системы mutex take не инструментален, может произойти переключение контекста задачи, которое не видно при анализе профилирования выполнения.

В других случаях, хотя программное обеспечение не может точно определить поведение, оно не генерирует предупреждение.

Повторное использование кода подсистемы

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

Не удается загрузить измерения времени выполнения из предыдущей версии

Невозможно загрузить измерения времени выполнения, сохраненные в предыдущей версии. Например, с помощью R2014a можно сохранить переменные рабочей области в MAT-файл. Одна из переменных рабочей области содержит измерения времени выполнения. В R2015b при попытке загрузить MAT-файл появляется следующая ошибка:

Format of execution profiling data is invalid. This error can occur if 
you load data from a previous release. Loading data from a previous 
release is not supported.