Чтение онлайн

на главную

Жанры

Встраиваемые системы. Проектирование приложений на микроконтроллерах семейства 68HC12/HCS12 с применением языка С

Пак Дэниэл Дж.

Шрифт:

Программа менеджера проектов считается основной в составе IDE, поскольку она управляет доступом пользователя и взаимодействием с обрабатываемыми файлами всех остальных программ пакета интегрированной среды разработки и отладки программного обеспечения (ПО) микропроцессорных систем. Кроме используемого в книге пакета ICC12, для создания прикладного ПО микроконтроллеров семейства 68HC12 могут также использоваться другие аналогичные пакеты, например CodeWarrior компании Metrowerks.

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

Рис. 3.4. Форматы представления прикладной программы на разных этапах создания файла исполняемого кода

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. дано описание этих команд.

№ команды Имя команды Код операции Данные
1 BACKGROUND 90 – (нет)
2 READ_BD_BYTE E4 16 бит адреса, 16 бит данных (вывод)
3 STATUS E4 FF01, 00000000 (вывод)
4     FF01, 10000000 (вывод)
5     FF01, 110000000 (вывод)
6 READ_BD_WORD EC 16 бит адреса, 16 бит данных (вывод)
7 READ_BYTE E0 16 бит адреса, 16 бит данных (вывод)
8 READ_WORD E8 16 бит адреса, 16 бит данных (вывод)
9 WRITE_BD_BYTE C4 16 бит адреса, 16 бит данных (ввод)
10 ENABLE_FIRMWARE C4 FF01, 1xxxxxxx (ввод)
11 WRITE_BD_ WORD CC 16 бит адреса, 16 бит данных (ввод)
12 WRITE_BYTE C0 16 бит адреса, 16 бит данных (ввод)
13 WRITE_ WORD C8 16 бит адреса, 16 бит данных (ввод)

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

№ команды по табл.3.3 Описание команды
1 Ввод в режим отладки с использованием монитора BDM
2 Чтение байта из области памяти блока BDM. Адрес указан в команде. Если адрес четный, то искомый байт содержится в старшем байте возвращаемого 16-ти разрядного слова. Если адрес нечетный, то искомый байт в младшем байте 16-разрядного слова.
3 Частный случай команды READ_BD_BYTE. Производится чтение регистра состояния модуля BDM. Считанный код 00000000 означает, что МК не может быть переведен в режим отладки и работает только под управлением прикладной программы.
4 Частный случай команды READ_BD_BYTE. Производится чтение регистра состояния модуля BDM. Считанный код 10000000 означает, что режим отладки разрешен и МК может быть переведен в режим отладки инструкцией BACKGROUND из табл. 3.3.
5 Частный случай команды READ_BD_BYTE. Производится чтение регистра состояния модуля BDM. Считанный код 11000000 означает, что МК находится в режиме отладки.
6 Чтение 16 разрядного слова из области памяти блока BDM по указанному в команде адресу. Адрес должен быть четным и указывать на старший байт возвращаемого из МК слова.
7 Чтение байта из области памяти МК. Адрес указан в команде. Если адрес четный, то искомый байт содержится
в старшем байте возвращаемого 16-тиразрядного слова. Если адрес нечетный, то искомый байт в младшем байте 16 разрядного слова.
8 Чтение слова из области памяти МК по указанному в команде адресу. Адрес должен быть четным и указывать на старший байт возвращаемого из МК слова.
9 Запись байта в область памяти блока BDM. Если в команде указан четный адрес, то байт для записи содержится в старшем байте передаваемого 16-тиразрядного слова. Если адрес нечетный, то байт для записи — в младшем байте 16 разрядного слова.
10 Частный случай команды WRITE_BD_BYTE. Производится запись в регистр состояния STATUS модуля BDM. Передаваемый в регистр состояния код 1xxxxxxx разрешает работу программно аппаратных средств модуля отладки BDM. Для перевода МК в режим отладки необходимо далее подать команду BACKGROUND из табл. 3.3.
11 Запись слова в область памяти блока BDM по указанному в команде адресу. Адрес должен быть четным и указывать на старший байт передаваемого в память BDM слова.
12 Запись байта в область памяти МК. Если в команде указан четный адрес, то байт для записи содержится в старшем байте передаваемого 16-ти разрядного слова. Если адрес нечетный, то байт для записи — в младшем байте 16-разрядного слова.
13 Запись слова в область памяти МК по указанному в команде адресу. Адрес должен быть четным и указывать на старший байт передаваемого в память МК слова.

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

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

Имя команды Код операции Данные Описание
GO 08 Исполнять прикладную программу
10 ТRAСЕ1 Выполнить одну команду прикладной программы и вернуться в монитор отладки
18 TAGGO Разрешить режим отладки и вернуться к исполнению прикладной программы
WRITE_NEXT 42 16 бит данных (ввод) X=X+2. Записать следующее слово по 0,X
WRITE_PC 43 16 бит данных (ввод) Записать данные в счетчик команд
WRITE_D 44 16 бит данных (ввод) Записать данные в аккумулятор D
WRITE_X 45 16 бит данных (ввод) Записать данные в регистр X
WRITE_Y 46 16 бит данных (ввод) Записать данные в регистр Y
WRITE_SP 47 16 бит данных (ввод) Записать данные в указатель стека
READ_NEXT 62 16 бит данных (вывод) X=X+2. Читать следующее слово по 0,X
READ_PC 63 16 бит данных (вывод) Читать счетчик команд
READ_D 64 16 бит данных (вывод) Читать аккумулятор D
READ_X 65 16 бит данных (вывод) Читать регистр X
READ_Y 66 16 бит данных (вывод) Читать регистр Y
READ_SP 67 16 бит данных (вывод) Читать указатель стека 

Табл. 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 хранит переданный из персонального компьютера код исполняемой команды отладки.

Адрес Имя регистра
0xFF00 INSTRUCTION — регистр кода выполняемой команды BDM
0xFF01 STATUS — регистр состояния блока BDM
0xFF02–0xFF03 SHIFTER — данные, передаваемые блоком BDM
0xFF04–0xFF05 ADDRESS — адрес регистра или ячейки памяти BDM
0xFF06 CCRSAV — содержимое регистра признаков CCR
Поделиться:
Популярные книги

Последний Паладин. Том 3

Саваровский Роман
3. Путь Паладина
Фантастика:
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Последний Паладин. Том 3

Последний попаданец 5

Зубов Константин
5. Последний попаданец
Фантастика:
юмористическая фантастика
рпг
5.00
рейтинг книги
Последний попаданец 5

Убивать чтобы жить 6

Бор Жорж
6. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 6

6 Секретов мисс Недотроги

Суббота Светлана
2. Мисс Недотрога
Любовные романы:
любовно-фантастические романы
эро литература
7.34
рейтинг книги
6 Секретов мисс Недотроги

Измена

Рей Полина
Любовные романы:
современные любовные романы
5.38
рейтинг книги
Измена

Курсант: Назад в СССР 13

Дамиров Рафаэль
13. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 13

Газлайтер. Том 6

Володин Григорий
6. История Телепата
Фантастика:
попаданцы
альтернативная история
аниме
5.00
рейтинг книги
Газлайтер. Том 6

Купидон с топором

Юнина Наталья
Любовные романы:
современные любовные романы
7.67
рейтинг книги
Купидон с топором

Виконт. Книга 3. Знамена Легиона

Юллем Евгений
3. Псевдоним `Испанец`
Фантастика:
фэнтези
попаданцы
аниме
7.00
рейтинг книги
Виконт. Книга 3. Знамена Легиона

Попаданка в деле, или Ваш любимый доктор - 2

Марей Соня
2. Попаданка в деле, или Ваш любимый доктор
Любовные романы:
любовно-фантастические романы
7.43
рейтинг книги
Попаданка в деле, или Ваш любимый доктор - 2

Усадьба леди Анны

Ром Полина
Любовные романы:
любовно-фантастические романы
5.00
рейтинг книги
Усадьба леди Анны

Титан империи 2

Артемов Александр Александрович
2. Титан Империи
Фантастика:
фэнтези
боевая фантастика
аниме
5.00
рейтинг книги
Титан империи 2

Вечный. Книга I

Рокотов Алексей
1. Вечный
Фантастика:
боевая фантастика
попаданцы
рпг
5.00
рейтинг книги
Вечный. Книга I

Убивать чтобы жить 5

Бор Жорж
5. УЧЖ
Фантастика:
боевая фантастика
космическая фантастика
рпг
5.00
рейтинг книги
Убивать чтобы жить 5