logo
HCS12 с применением языка С - royallib

3.13.2. Режим отладки bdm

В отличие от МК предыдущего поколения, например, 68HC11, аппаратные средства МК семейства 68HC12 позволяют вести отладку без остановки выполнения прикладной программы. В микроконтроллерах семейства 68HC11 наблюдение за состоянием внутренних ресурсов МК в процессе отладки осуществлялось с использованием специальной программы монитора отладки, которая загружалась в память МК сразу после включения питания. Эта программа передавала в персональный компьютер содержимое регистров центрального процессора и ячеек памяти каждый раз, когда этого пожелает оператор. Однако каждое обращение к программе монитора для нового просмотра вызывало генерацию программного прерывания с последующим остановом отлаживаемой прикладной программы и запуском программы монитора отладки. Такой принцип организации отладки не позволял наблюдать в реальном времени функционирование прикладных программ с множеством аппаратных прерываний.

В МК семейства 68HC12 реализован иной, более совершенный режим отладки BDM (Background Debug Mode), что в переводе означает «фоновый режим отладки». Этот режим позволяет выполнить основные процедуры отладки — просмотр и модификацию содержимого регистров и ячеек памяти без останова выполнения прикладной программы.

В процессе отладки МК обменивается данными с персональным компьютером, используя последовательный интерфейс с оригинальным протоколом. Для подключения микроконтроллера, который установлен на плате проектируемого устройства, к персональному компьютеру разработан унифицированный интерфейс, который носит название «BDM порт» (рис. 3.5). Стандартизация линий связи и типа разъема интерфейса отладки BDM позволяет разрабатывать универсальные программные пакеты и аппаратные средства отладки так, что любая аппаратная платформа на основе МК семейства 68HC12, в том числе и плата собственной разработки, способна работать под управлением любой интегрированной среды разработки для 68HC12/HCS12.

Рис. 3.5. Цоколевка разъема BDM порта

Используя порт BDM, встроенный в МК блок отладки принимает от персонального компьютера команды отладки и возвращает в персональный компьютер запрашиваемые данные. Часть команд отладки может выполняться только аппаратными средствами блока BDM, без остановки выполнения прикладной программы. При этом используются «холостые» машинные циклы внутренних магистралей, когда исполняемая прикладная программа не производит обращения к памяти. Если такие «холостые» циклы не возникают в течение 128 машинных циклов, то блок BDM захватывает последующие циклы для выполнения поступившей команды отладки. При этом выполнение прикладной программы слегка притормаживается. Обсуждаемые так называемые аппаратные команды отладки могут поступать в блок BDM от персонального компьютера не чаще, чем 1 раз в 150 машинных циклов. Перечень аппаратных команд отладки представлен в табл. 3.3. В табл. 3.4. дано описание этих команд.

Табл. 3.3. Команды отладки, исполняемые аппаратными средствами модуля отладки BDM

Табл. 3.4. Описание аппаратных команд модуля отладки BDM

Другая часть команд отладки исполняется под управлением программы монитора отладки, которая хранится в ПЗУ модуля BDM. Это ПЗУ располагается в общем адресном пространстве МК по адресам 0xFF00…0xFFFF. Память блока BDM доступна только в режиме отладки. В рабочем режиме ячейки памяти с этими адресами используются для других целей, в частности для размещения векторов прерываний. Перечень команд, исполняемых монитором отладки, представлен в табл. 3.5.

Табл. 3.5. Команды отладки, исполняемые монитором BDM

Для того, чтобы использование команд монитора отладки стало возможным, необходимо сначала установить бит ENBDM в регистре состояния STATUS (0xFF01), а затем выполнить команду BACKGROUND. Формат регистра состояния STATUS представлен на рис. 3.6.

Рис. 3.6. Формат регистра состояния модуля отладки ВDМ

Запись бита разрешения работы монитора отладки ENBDM осуществляется командой ENABLE_FIRMWARE из перечня аппаратных команд BDM (табл. 3.3). Отметим, что если МК 68HC12B32 сконфигурирован для работы в однокристальном режиме, то во время сброса бит ENBDM устанавливается в 1. Аппаратная команда отладки BACKGROUND также передается из персонального компьютера. Эта команда переводит МК в режим работы под управлением монитора отладки, когда центральный процессор на время прекращает выполнение основной программы и реализует команды монитора отладки. Для выполнения команд монитора отладки модуль BDM анализирует состояние внутренних магистралей МК. Если команда монитора требует для реализации только один машинный цикл, то работа прикладной программы не нарушается. Если же монитору необходимо несколько циклов, то работа процессора приостанавливается до завершения выполнения отладочной команды.

В области памяти модуля BDM расположены пять служебных регистров (табл. 3.6). Регистр INSTRUCTION хранит переданный из персонального компьютера код исполняемой команды отладки.

Табл. 3.6. Регистры модуля отладки BDM

Регистр состояния STATUS (рис. 3.6) отражает текущий режим работы модуля BDM. Бит ENBDM установлен, если работа программы монитора отладки разрешена, т.е. могут реализовываться не только аппаратные, но и программно исполняемые команды отладки. Установленный в 1 бит BDMACT показывает, что МК прекратил выполнение прикладной программы и ожидает поступления команды отладки. Бит ENTAG отражает перевод МК в специальный режим тегирования команд. Этот режим устанавливается после исполнения команды TAGGO монитора отладки (табл. 3.5). Бит SDV является служебным битом монитора отладки, он отражает наличие данных в регистре SHIFTER блока BDM. И, наконец, бит TRACE — это признак работы МК в режиме трассировки, который назначается после исполнения инструкции TRACE1 из списка табл. 3.5.

Регистр сдвига SHIFTER предназначен для хранения данных, передаваемых или получаемых модулем отладки по последовательному интерфейсу.

Регистр ADDRESS хранит принятый в команде отладки адрес регистра или ячейки памяти. В регистре CCRSAV сохраняется состояние регистра признаков CCR центрального процессора во время исполнения команд монитора отладки.

Режим тегирования используется для автоматического перевода МК в режим отладки при исполнении команды, которая ранее была отмечена программистом для более подробного рассмотрения результатов ее исполнения.

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