Отладчик ARM extended Debugger (AXD) или другой выполняющийся в хосте отладчик, «осведомленный» о наличии RealMonitor, может осуществлять связь с целевой системой, чтобы посылать команды и получить данные. Связь между хостом и целевой системой иллюстрируется схемой, приведенной на Рис. 24.1. Целевой компонент RealMonitor (RMTarget) обменивается информацией с хостовым компонентом (RMHost), используя отладочный канал связи (DCC), данные которого передаются через интерфейс JTAG.
В то время как выполняется пользовательское приложение, RMTarget, как правило, использует запросы IRQ, сгенерированные DCC. Это означает, что если пользовательское приложение также хочет использовать запросы IRQ, оно должно передать любые прерывания в RealMonitor через DCC.
Чтобы обеспечивать возможность отладки без остановок, встроенная логическая схема ICE-RT (ICE реального времени) генерирует исключительную ситуацию (ИС) аварийного прекращения работы выбора (команд) с упреждением, когда управление достигает точки останова, либо ИС аварийного прекращения выборки данных, когда достигается контрольная точка. Эти ИС обрабатываются обработчиками исключительных ситуаций RealMonitor, которые, используя отладчик, сообщают пользователю о вызвавших ИС случаях. Это позволяет пользовательскому приложению выполняться без остановки процессора. RealMonitor «полагает», что пользовательское приложение состоит из двух частей:
1. Приоритетное приложение, выполняющееся непрерывно, как правило, в режимах User, System или Supervisor.
' Под полу-хостингом здесь понимается взаимодействие кода, выполняющегося в целевой системе ARM, и отладчика ARM, выполняющегося в хосте. Примерами средств полу-хостинга являются: ввод с клавиатуры, вывод на экран и дисковый ввод/вывод. {Прим. авт.)
SWI (программное прерывание) Аварийное прекращение работы Неопределенная команда
Рис. 24.2. Диаграмма состояний RealMonitor
24.3. Порядок работы Real Monitor я 375
2. Фоновое приложение, содержащее обработчики ИС и прерываний, которые вызваны ИС, а также следующими событиями в пользовательской системе:
• запросы IRQ или FIQ;
• аварийные прекращения работы выбора с упреждением и выборки данных (Abort), вызванные пользовательским приоритетным приложением. Эти события указывают на ошибку в отлаживаемом приложении. В обоих случаях, хост уведомляется об ошибке, и пользовательское приложение останавливается;
• исключительная ситуация (Undefined), вызванная неопределенными командами в пользовательском приоритетном приложении. Это событие указывает на ошибку в отлаживаемом приложении. В этом случае, RealMonitor приостанавливает выполнение пользовательского приложения до тех пор, пока не получит из хоста пакет «Go» («Переход»), см. Рис. 24.2.
В случае возникновения одной из вышеперечисленных исключительных ситуаций, которые не обрабатываются пользовательским приложением, происходит следующее:
НА ГЛАВНУЮ | | ЧТО ТАКОЕ PIC ? | | ПРОГРАММАТОР | | ПРОЕКТЫ | | СТАТЬИ | | ССЫЛКИ | | КАРТА САЙТА |