Отладка кода

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

Рассмотрим простую модель с двумя задачами, одно высоко- и низкоприоритетное выполнение на встраиваемом процессоре и измеренное профилировщиком отладка кода. Эта схема показывает измерения, сделанные профилировщиком отладки кода, и вывод об отдельных состояниях задачи, полученный в результате этих измерений.

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

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

Ограничения

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

  • Невозможно измерить задержку ядра или компоненты задержки ядра. Задержка ядра обычно может рассматриваться как константа. Поскольку задержка ядра влияет на все время запуска задачи с примерно равным эффектом, оценка задержки ядра может быть выведена со сравнениями со временем задачи в симуляции. Для получения дополнительной информации о задержках ядра см. Раздел «Задержка ядра»

  • Невозможно захватить эффект команд, выданных ядру ОС из задачи с помощью блоков Custom Code. Профилировщик отладки кода записывает время начала, время окончания и вытеснение задачи другими задачами. Однако, когда задача совершает вызов ядра ОС, профилировщик отладки кода не записывает изменение управления между задачей и ядром как прерывание. Поскольку вызовы ядра, без подробного знания времени, могут быть обработаны как недетерминированные, измеренная длительность задачи не может быть надежно измерена с использованием профилировщика этого типа. Дополнительные сведения о длительности задачи см. в разделе Длительность задачи.

См. также

Похожие темы