2014-10-01 2 views
0

Я хочу, чтобы отладочная информация выводилась через SWO (используйте ITM). Core Cortex M3 может это сделать.Cortex M3 в привилегированном режиме

ИТМ является приложением управляемый источник трассировки, который поддерживает отладку Printf стиль для отслеживания операционной системы (ОС) и событий приложений, и выдает диагностическую информацию о системе ... link

Для этого Я должен настроить регистры ITM. Часть из них я могу писать только в привилегированном режиме.

ITM Трассировка Privilege Регистрация Используйте ITM Трассировка Privilege Зарегистрируйся, чтобы включить операционную систему, чтобы контролировать, какие стимулы порты доступны по коду пользователя. Примечание: Вы можете только зарегистрироваться на этот реестр в привилегированном режиме. see ITM Trace Privilege Register

Что это лучший способ для переключения в привилегированном режиме, если IRQs SVC, PendSV, SysTick уже используется? (Я использую FreeRTOS) Это реально?

+0

Поскольку вам, по-видимому, нужно только один раз записать этот регистр, не можете ли вы просто сделать это в коде запуска ОС, а не пытаться переключиться в режим позже? – Notlikethat

+0

Конечно, я могу это сделать. Но я хочу инициализировать регистры ITM в моей функции dbg_init(). – Lyrri

ответ

0

Либо вы настраиваете ITM перед запуском FreeRTOS (учитывая, что задачи FreeRTOS выполняются в режиме без привилегий).
Или вы добавляете поддержку для нового SVC. FreeRTOS SVC использует svc 0, вы можете добавить поддержку для нового svc, назовем его svc 1, и ваш SVC_Handler() либо перенаправит svc 0 в FreeRTOS, либо svc 1 в ваш код конфигурации ITM.

Смежные вопросы