
- •Часть 1
- •Содержание
- •Современный мир микроконтроллеров.
- •8‑Разрядные микроконтроллеры
- •16‑Разрядные микроконтроллеры
- •32‑Разрядные микроконтроллеры
- •Библиографический список
- •Микроконтроллер mc68hc11e9
- •Процессорный модуль
- •Встроенная память
- •Периферийные устройства
- •Система разработки
- •Монитор buffalo
- •С чего начать ?
- •Приложение 7 Программа Hello
- •Приложение 8 Команды монитора buffalo
- •Приложение 9 Подпрограммы монитора buffalo
- •Приложение 10
- •Приложение 11 Кросс-ассемблер
- •Приложение 12
- •Рекомендуемая литература
- •Часть 1
- •Новосибирск
Система разработки
Практически каждый микроконтроллер любой фирмы сопровождается некоторой аппаратно-программной поддержкой. Микроконтроллер MC68HC11E9 не является исключением. В данном практикуме используется так называемая Evaluation board, что можно перевести как система для опробирования или система для макетирования. В методических пособиях будет использоваться термин "Система Разработки" (СР), так как, на наш взгляд, он более точно отражает назначение этой системы.
Аппаратная часть СР представляет собой печатную плату размером примерно 80x170 мм. Около половины платы занимает собственно микроконтроллер MC68HC11E9 и некоторое его окружение - система питания, цепи формирования сигнала сброса, формирователь уровней RS232, разъемы расширения и т.д.
Вторая половина платы свободна. В ней проделаны отверстия для установки микросхем. Это позволяет сначала отмакетировать разрабатываемое устройство на СР, разработать и отладить программное обеспечение, а уже потом перенести схемотехнические решения в целевое устройство.
Для создания рабочего места кроме СР необходим компьютер типа IBM PC или Macintosh и любая из программ - эмуляторов терминала, например Microsoft Kermit. Компьютер (в данных лабораторных работах - IBM PC совместимый) соединяется с СР посредством стандартного интерфейса RS232.
В состав программного обеспечения входят прошитый в ПЗУ микроконтроллера отладочный монитор BUFFALO, позволяющий произвести загрузку и отладку программного обеспечения, и кросс-ассемблер для разработки этого программного обеспечения.
Монитор buffalo
В ПЗУ микроконтроллера зашита программа монитора BUFFALO (Bit User's Fast Friendly Aid to Logical Operation - небольшой быстрый дружественный помощник пользователя в логических операциях).
Монитор позволяет осуществлять:
· загрузку программного обеспечения с хост-компьютера
· запуск программы на исполнение
· просмотр и изменение регистров процессора
· просмотр и изменение содержимого памяти
· просмотр программы в дизассемблированном виде
· изменение программы с помощью встроенного строкового ассемблера
· пошаговое исполнение программы
· установку точек останова
Список команд монитора BUFFALO и детали их выполнения приведены в прил.3.
Также, монитор BUFFALO содержит ряд подпрограмм, значительно облегчающих разработку пользовательского программного обеспечения. Эти подпрограммы реализуют следующие функции:
· ввод/вывод символов и строк на терминал
· преобразование ASCII символов 0-9, A-F в цифры и наоборот
· разбор входных строк и выделение пробельных и разделительных символов
Адреса и назначение подпрограмм монитора приведены в прил.4. Поскольку имеется исходный текст монитора, используемые подпрограммы могут быть впоследствии добавлены к разработанному программному обеспечению для работы на микроконтроллерах, не содержащих прошивку BUFFALO.
Поскольку для работы монитора необходима некоторая часть ОЗУ, размер памяти, доступной для пользовательского программного обеспечения несколько меньше, чем содержится в микроконтроллере. При наличии BUFFALO свободными остаются 328 байт ОЗУ и все ЭСПЗУ. Необходимо также отметить, что BUFFALO не поддерживает изменения адресов ОЗУ и регистров ввода/вывода и требует ОЗУ в адресном пространстве $0000-$01FF, а регистры ввода/вывода - по адресам $1000-$103F.
Карта памяти приведена в табл.5.
Таблица 6. Карта памяти монитора BUFFALO.
Адреса |
Назначение |
$0000-$0047 |
Доступно пользователю. По умолчанию, BUFFALO устанавливает содержимое указателя стека пользовательской программы равным $47. |
$0048-$0065 |
Область стека BUFFALO. |
$0066-$00C3 |
Область переменных BUFFALO. |
$00C4-$00FF |
Псевдо-векторы. |
$0100-$01FF |
Доступно пользователю. |
$1000-$103F |
Область регистров ввода/вывода. |
Как описано выше, векторы прерываний процессора находятся в ПЗУ по адресам $FFD6-$FFFF. Монитор BUFFALO, прошитый в ПЗУ, направляет эти векторы в ОЗУ начиная с адреса $00C4 с шагом в 3 байта. Эту область называют областью псевдовекторов. Карта области псевдовекторов приведена в табл.7.
Если пользователь желает обрабатывать какое-либо прерывание, он должен положить в соответствующий псевдовектор команду перехода на свой обработчик. Например, если надо обрабатывать прерывания IRQ, необходимо проделать следующую последовательность действий:
1. Поместить код команды JMP ($7E) по адресу $00EE.
2. Поместить адрес пользовательского обработчика прерываний по адресам $00EF и $00F0.
Во время инициализации BUFFALO проверяет первый байт каждого псевдовектора. Обнаружение кода $7E означает, что соответствующее прерывание будет обрабатываться пользователем. В противном случае BUFFALO проделывает вышеописанную процедуру, устанавливая свой собственный обработчик. При возникновении не обрабатываемого пользователем прерывания внутренний обработчик BUFFALO остановит процессор командой STOP.
Таблица 8. Область псевдовекторов BUFFALO.
Источник прерывания |
Вектор |
Псевдовектор |
SCI |
$FFD6 |
$00C4 |
SPI |
$FFD8 |
$00C7 |
Счетчик импульсов (событие) |
$FFDA |
$00CA |
Счетчик импульсов (переполнение) |
$FFDC |
$00CD |
Переполнение таймера |
$FFDE |
$00D0 |
IC4/OC5 |
$FFE0 |
$00D3 |
OC4 |
$FFE2 |
$00D6 |
OC3 |
$FFE4 |
$00D9 |
OC2 |
$FFE6 |
$00DC |
OC1 |
$FFE8 |
$00DF |
IC3 |
$FFEA |
$00E2 |
IC2 |
$FFEC |
$00E5 |
IC1 |
$FFEE |
$00E8 |
Периодическое прерывание |
$FFF0 |
$00EB |
Параллельный ввод/вывод или IRQ |
$FFF2 |
$00EE |
XIRQ |
$FFF4 |
$00F1 |
Программное прерывание |
$FFF6 |
$00F4 |
Несуществующая команда |
$FFF8 |
$00F7 |
COP Watchdog таймаут |
$FFFA |
$00FA |
Исчезновение тактовой частоты |
$FFFC |
$00FD |