Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Motorola HC11DESC_R.DOC
Скачиваний:
1
Добавлен:
15.08.2019
Размер:
1.4 Mб
Скачать

С чего начать ?

В данном разделе описывается по шагам процесс разработки и запуска на Системе Разработки простой программы, печатаю­щей на экране терминала приветствие "Hello". Исходный текст программы приведен в прил.5. Подчеркнутые символы должны быть введены с клавиатуры.

1. С помощью любого текстового редактора наберите текст программы из прил.6 и сохраните его в файле под именем hello.asm.

2. Запустите программу ассемблера:

as11 hello.asm<Return>

3. Убедитесь, что в процессе работы ассемблера на экране не появились сообщения об ошибках, а также в том, что создался выходной файл с именем hello.s19.

4. Запустите программу коммуникационную программу Tera Term и выберите интерфейс соединения: Serial; COM3.

(параметры соединения: Baud rate 9600; Data 8 bit; Parity none;Stop 1 bit)

5. Нажмите клавишу <Return>. На экране должнен появить­ся символ '>', означающий, что монитор ожидает ввода команды.

6. Введите команду загрузки программы с терминального порта:

load t<Return>

  1. В оконном меню программы Tera Term Pro выберите раздел: File и команду: Send File

8. Дождитесь появления на экране сообщения: DONE символа '>'

9. Убедитесь в наличии вашей программы в памяти микроконтроллера :

>asm 100<Return>

0100 LDX 0109 ><Return>

0103 JSR FFC7 ><Return>

0106 JSR FF7C ><CtrlA>

>

10. Запустите программу:

>g 100<Return>

Убедитесь, что на экране появилось следующее:

Hello

>

Надпись "Hello" была выдана загруженной программой. После этого программа выполнила команду "JSR .WARMST", которая вернула управление монитору BUFFALO, о чем свидетельствует символ-приглашение '>'.

Приложение 7 Программа Hello

.WARMST equ $FF7C

.OUTSTR equ $FFC7

EOT equ $04

ORG $100 Доступное ОЗУ начинается с адреса $100

ldx #String Загружаем адрес строки

jsr .OUTSTR Выводим строку на терминал

jsr .WARMST Окончание работы - выход в BUFFALO

String: FCC 'Hello'

FCB EOT

Приложение 8 Команды монитора buffalo

ASM Assembler/Disassembler

Ассемблер/Дизассемблер

Синтаксис:

ASM [<адрес>],

где

<адрес> начальный адрес операции ассембли­ро­ва­ния.

Если не задан адрес, то по умолчанию операция произво­дится над внутренним ОЗУ с адреса 0.

Ассемблер/дизассемблер является интерактивным редакто­ром/ассемблером. Каждая входная строка в момент ввода переводится в соответствующий код инструкции и сохраняется в памяти, затирая ранее содержащуюся информацию. Для отображения инструкции машинный код дизассемблируется и мнемоника и операнды инструкции отображаются на экране. Все корректные коды инструкции переводятся в ассемблерную мнемонику. Любой некорректный код инструкции отображается как "ILLOP".

Синтаксические правила ассемблера заключаются в следующем:

· Все числовые значения рассматриваются как шестнадцати­ричные и не существует способа изменения системы счисления.

· Операнды должны разделяться одним или более пробелом или символами табуляции.

· Любые символы после мнемоники и соответствующих операндов считаются комментариями и игнорируются.

Режимы адресации различаются по следующим признакам:

· Непосредственная адресация определяется по наличию символа "#" перед операндом.

· Индексная адресация определяется по наличию символа ",". Перед запятой должно присутствовать однобайтовое отно­сительное смещение (даже если оно равно 0), а за запятой должно следовать обозначение индексного регистра X или Y (например, LDAA 0,X).

· Прямая и расширенная адресации определяются по длине адреса операнда (1 или 2 цифры определяют прямую адресацию, 3 или 4 цифры - расширенную). Можно специально выбрать режим расширенной адресации посредством расширения адреса лидирующими нулями.

· Относительные смещения для инструкций ветвления вычисля­ются ассемблером. Поэтому корректными операнда­ми для операций ветвления являются абсолютные адреса точек перехода, а не их относительные смещения.

При ассемблировании очередной строки ассемблер пере­запи­сывает то, что прежде находилось в памяти. Если никакой строки не было введено или строка содержала ошибку, содержи­мое памяти остается неизменным. Четыре пары инструкций имеют идентичную кодировку, поэтому дизас­семблер показывает следую­щие мнемоники:

· ASL/LSL показывается как ASL

· ASLD/LSLD показывается как ASLD

· BCC/BHS показывается как BCC

· BCS/BLO показывается как BCS

При попытке ввести команду по адресу, не попадающему в ОЗУ или ЭСПЗУ, выводится сообщение о неправильном адресе "rom-xxxx", где xxxx - адрес.

Дополнительные команды, доступные в режиме ассембли­рования/дизассемблирования описаны ниже. Если ассемблер обнару­живает ошибку в новой входной строке, он выводит сообще­ние об ошибке и открывает память по тому же адресу.

Дополнительные команды ассемблера:

/ Ассемблирование текущей строки и дизас­сембли­рование по тому же адресу.

^ Ассемблирование текущей строки и дизассембли­рование по предыдущему адресу.

<Return> Ассемблирование текущей строки и дизас­сембли­рование следующей инструкции.

<Ctrl-J> Ассемблирование текущей строки и дизассембли­рование следующей инструкции, если строка была введена, или дизассемблирование инструкции по следующему адресу если не было введено новой строки.

<Ctrl-A> Выход из режима ассембли­рования/дизассембли­рования.

BF Block Fill

Заполнение блока

Синтаксис:

BF <адрес1> <адрес2> <данные>,

где

<адрес1> Младшая граница блока

<адрес2> Старшая граница блока

<данные> Шестнадцатиричное значение, которым будет заполнена область памяти.

Команда BF позволяет установить каждый байт ОЗУ или ЭСПЗУ в области адресов <адрес1>-<адрес2> равным указанному значению. Если указан некорректный адрес, выводится сообщение об ошибочном адресе "rom-xxxx", где xxxx - адрес, по которому невозможно произвести запись.

BR Breakpoints

Точки останова

Синтаксис:

BR [-][<адрес>]...,

где

- удаление всех точек останова.

-<адрес> удаление точки останова по указанному адресу.

Форматы команды:

BR Показать все точки останова.

BR <адрес> Установить точку останова по указанному адресу.

BR <адрес1> <адрес2> ... Установить несколько точек останова по указанным адресам.

BR - Удалить все точки останова.

BR -<адрес1> <адрес2> Удалить точку останова по адресу <адрес1>, затем установить точку останова по адресу <адрес2>.

BR <адрес1> - <адрес2> Установить точку останова по адресу <адрес1>, удалить все точки останова и установить точку останова по адресу <адрес2>.

BR <адрес1> -<адрес2> Установить точку останова по адресу <адрес1>, затем удалить точку останова по адресу <адрес2>.

Команда BR записывает адрес в таблицу адресов точек останова или удаляет адрес из этой таблицы. Во время исполне­ния программы происходит останов перед исполнением инструк­ции, находящейся по любому адресу в таблице точек останова. Максимальное количество точек останова равно четырем. После исполнения команды BR монитор всегда пока­зывает текущее состояние таблицы адресов точек останова. При вводе одной из команд G, CALL или P монитор вставляет точки останова в код по адресам, указанным в таблице адресов точек останова.

Точки останова выполняются помещением команды программного прерывания (SWI) по адресам, указанным в табли­це адресов точек останова. Обработчик программного прерыва­ния сохраняет и отображает внутреннее состояние процессора и вос­станавливает содержимое программы по адресу останова перед возвратом управления монитору.

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

Точки останова можно устанавливать как в ОЗУ, так и в ЭСПЗУ.

BULK Bulk

Очистка ЭСПЗУ

Синтаксис:

BULK

Команда BULK позволяет полностью стереть (установить равным $FF) все ЭСПЗУ процессора в диапазоне адресов $B600-$B7FF. Цикл задержки устроен таким образом, что время очистки равно 10 мс при частоте E равной 2 МГц.

ЗАМЕЧАНИЕ:

Никакого сообщения о верификации очистки не выводится после завершения операции. Пользователь может проверить результат очистки посредством просмотра ЭСПЗУ с помощью команд MM или MD.

BULKALL Bulk All

Очистка ЭСПЗУ и CONFIG регистра

Синтаксис:

BULKALL

Команда BULKALL позволяет полностью очистить (установить равным $FF) все ЭСПЗУ процессора в диапазоне адресов $B600-$B7FF, а также, на некоторых моделях MC68HC11A8, и конфигурационный (CONFIG) регистр по адресу $103F. Цикл задержки устроен таким образом, что время очистки равно 10 мс при частоте E равной 2 МГц. Регистр CONFIG на микроконтроллерах MC68HC11E9 не может быть изменен в нормальных режимах работы.

ЗАМЕЧАНИЕ:

Никакого сообщения о верификации очистки не выводится после завершения операции. Пользователь может проверить результат очистки посредством просмотра ЭСПЗУ с помощью команд MM или MD.

CALL Call

Вызов подпрограммы

Синтаксис:

CALL [<адрес>],

где

<адрес> адрес подпрограммы пользователя.

Команда CALL позволяет пользователю вызвать свою собственную подпрограмму. Если не указан <адрес>, исполнение начинается с адреса, содержащегося в счетчике команд PC. Перед вызовом подпрограммы монитор BUFFALO помещает два байта адреса возврата в стек пользовательской подпрограммы, благодаря чему первая же команда RTS, для которой не было соответствующей команды JSR или BSR, вернет управление монитору. Таким образом, любая подпрограмма пользователя может быть вызвана и исполнена с помощью монитора. Исполнение под­программы продолжается до тех пор, пока не встретится лишняя команда RTS, не встретится точка останова или не произойдет сброс процессора.

ВНИМАНИЕ:

Если в процессе выполнения подпрограммы встретилась точка останова, монитор снимает со стека два последних байта, считая их своим адресом возврата. Поэтому, если пользователь­ская подпрограмма пользуется операциями сохранения данных в стеке, данной операцией необходимо пользоваться с осторож­ностью.

G Go

Запуск

Синтаксис:

G [<адрес>],

где

<адрес> стартовый адрес

Команда GO позволяет пользователю запустить программу на исполнение. Если не указан <адрес>, исполнение начинается с адреса, содержащегося в счетчике команд PC. Исполнение программы продолжается до тех пор, пока не встретится точка останова или не произойдет сброс процессора.

HELP Help

Подсказка

Синтаксис:

HELP

Команда HELP позволяет пользователю получить краткий перечень команд монитора BUFFALO.

LOAD Load

Загрузка

Синтаксис:

LOAD <параметр>,

где

<параметр> обозначает следующее:

· Если <параметр> пуст, то происходит действие, аналогичное действию команды TM, и загрузка не осуществляется.

· Если <параметр> = T, то загрузка будет происходить через терминальный порт.

· Если <параметр> не пуст и не равен T, то <параметр> передается в хост-компьютер и загрузка будет происходить через хост-порт.

Команда LOAD подгружает объектный код в S-формате с внешнего хост-компьютера в память микроконтроллера. Монитор обрабатывает только корректные данные, поэтому возможно, что в процессе загрузки монитор прервет операцию при получении искаженных данных. Если стартовый адрес загружаемых данных некорректен, монитор выводит сообщение "error addr xxxx", где xxxx - некорректный адрес.

ВНИМАНИЕ:

При отсутствии дополнительного порта ввода-вывода возможна только команда LOAD T, т.е. загрузка через терминаль­ный порт.

MD Memory Display

Отображение содержимого памяти

Синтаксис:

MD [<адрес1> [<адрес2>]],

где

<адрес1> Начальный адрес памяти

<адрес2> Конечный адрес памяти

Команда MD позволяет пользователю просмотреть содержимое блока памяти в диапазоне адресов <адрес1>-<адрес2>. Если <адрес2> отсутствует или меньше, чем <адрес1>, отображается 9 строк по 16 байт в каждой, начиная с <адрес1>. Если отсутствуют оба адреса, отображается содержимое блока памяти (так же, 9 строк по 16 байт), продолжающего блок, отображенный предыдущей командой MD.

Каждая отображаемая строка включает в себя:

· адрес первого байта, отображенного в строке (в шест­надцатиричном виде, 4 цифры),

· 16 чисел в шестнадцатиричном виде, отображающих содержи­мое памяти,

· 16 символов, являющихся ASCII-эквивалентами отобража­емых байтов.

MM Memory Modify

Изменение памяти

Синтаксис:

MM [<адрес>]

где

<адрес> адрес памяти, с которого начинается отображение/изменение.

Команда MM позволяет просмотреть/изменить содержимое памяти в интерактивном режиме. Команда MM также может стирать любой байт ЭСПЗУ и программировать его соответ­ствующим значением (т.е., ЭСПЗУ можно рассматривать как ОЗУ). Будучи введенной, команда MM имеет ряд режимов модификации и проверки данных. Распознаются следующие подкоманды:

<Ctrl-J>,

<пробел>,

+ Просмотреть/изменить следующий байт

<Ctrl-H>,

^,

- Просмотреть/изменить предыдущий байт

/ Заново просмотреть/изменить текущий байт

<Ввод> Закончить операцию MM

O Вычислить относительное смещение для команд ветвления

Если была произведена попытка изменить байт по некор­ректному адресу, выводится сообщение "rom". Некор­ректным адресом считается адрес байта, операция чтения которого возвращает не то значение, которое было в него записано.

MOVE Move

Пересылка

Синтаксис:

MOVE <адрес1> <адрес2> [<адрес3>],

где

<адрес1> Начальный адрес блока памяти

<адрес2> Конечный адрес блока памяти

<адрес3> (Дополнительно) Начальный адрес блока памяти, в который производится копирование.

Команда MOVE позволяет пользователю скопировать или переместить содержимое блока памяти в диапазоне адресов <адрес1>-<адрес2> в память, начиная с адреса <адрес3>. Если <адрес3> не указан, данные копируются в адрес <адрес1> + 1, т.е., перемещаются на 1 байт вверх. Копирование/перемещение данных в ЭСПЗУ перепрограммирует соответствующие ячейки.

Никакого сообщения о завершении операции не выводится.

P Proceed/Continue

Возобновить/Продолжить

Синтаксис:

P

Команда P позволяет продолжить исполнение программы (например, после отработки точки останова) без необходимости удаления точки останова по текущему адресу. Эта команда аналогична команде G, за исключением того, что запуск происходит всегда с адреса, содержащегося в счетчике команд (например, с адреса точки останова), и игнорируются точки останова, установленные на адрес первой команды.

ВНИМАНИЕ:

Данная команда подразумевает использование монитором сигналов PA3/OC5 и прерывания XIRQ. Если пользователь использует эти сигналы в своих целях, команды P, STOPAT и T будут выполняться некорректно.

RM Register Modify

Изменение регистров

Синтаксис:

RM [p, y, x, a, b, c, s],

где

p Счетчик команд PC

y Индексный регистр Y

x Индексный регистр X

a Аккумулятор A

b Аккумулятор B

c Регистр состояния процессора CCR

s Указатель стека SP

Команда RM используется для изменения регистров процессора. Значения всех регистров поочередно выводятся на экран в шестнадцатиричном виде. Можно ввести новое содержи­мое регистра или оставить его прежним. Клавиша <Ввод> изменяет содержимое регистра (если необходимо) и заканчивает команду RM. Клавиша <Пробел> изменяет содержимое регистра (если необходимо) и переходит к следующему регистру.

Аргумент в командной строке указывает, с какого регистра начинать изменения. При отсутствии аргументов изменения начинаются со счетчика команд.

STOPAT Stop at Address

Останов по адресу

Синтаксис:

STOPAT <адрес>,

где

<адрес> адрес команды, перед исполнением которой необходимо остановить испол­нение программы.

Команда STOPAT инициирует покомандное исполнение программы пользователя с адреса, содержащегося в счетчике команд, до тех пор, пока не будет достигнут указанный адрес.

Команда STOPAT отличается от использования точек останова тем, что ее адрес останова может указывать в ПЗУ, в то время как точки останова возможны только в ОЗУ и ЭСПЗУ. Кроме того, STOPAT осуществляет покомандное исполнение программы, сравнивая адрес следующей команды с адресом останова. Поэтому скорость исполнения программы значительно снижается. Адрес в команде STOPAT так же, как адреса точек останова, должен быть адресом инструкции.

ВНИМАНИЕ:

Данная команда подразумевает использование монитором сигналов PA3/OC5 и прерывания XIRQ. Если пользователь использует эти сигналы в своих целях, команды P, STOPAT и T будут выполняться некорректно.

T Trace

Трассировка

Синтаксис:

T <n>,

где

<n> шестнадцатиричное число (до $FF), указывающее количество инструкций.

Команда T позволяет покомандно проследить исполнение программы. Пользователь может указать количество исполня­емых инструкций. Если параметр <n> опущен, исполняется одна инструкция. Исполнение начинается с адреса, содержащегося в счетчике команд. После исполнения очередной команды выво­дит­ся ее мнемоника и содержимое регистров процессора.

ВНИМАНИЕ:

Данная команда подразумевает использование монитором сигналов PA3/OC5 и прерывания XIRQ. Если пользователь использует эти сигналы в своих целях, команды P, STOPAT и T будут выполняться некорректно.

TM Transparent Mode

Прозрачный режим

Синтаксис:

TM

Команда TM позволяет программно соединить между собой терминальный порт и хост-порт, обеспечивая тем самым "прямое" подключение терминала к хост-компьютеру. Это возможно только при наличии внешнего аппаратного обеспечения, реализующего второй порт RS-232.

Порты будут соединены до тех пор, пока с терминального порта не придет символ Ctrl-A.

Возможны подкоманды:

<Ctrl-A> Выход из прозрачного режима

<Ctrl-B> Послать BREAK хост-компьютеру

ВНИМАНИЕ:

Команда TM возможна только при наличии внешнего порта ввода-вывода. В противном случае будет выдано сообщение об отсутствии хост-порта.

VERF Verify

Проверка правильности загрузки

Синтаксис:

VERF <параметр>,

где

<параметр> обозначает следующее:

· Если <параметр> пуст, то происходит действие, аналогичное действию команды TM, и прием данных не осуществляется.

· Если <параметр> = T, то прием данных будет происходить через терминальный порт.

· Если <параметр> не пуст и не равен T, то <параметр> передается в хост-компьютер и прием данных будет происходить через хост-порт.

Команда VERF аналогична команде LOAD за исключением того, что принятые данные не записываются в память, а сравнива­ются с уже находящимися там. В случае несовпадения данных верификация прекращается и выдается сообщение об ошибке.

ВНИМАНИЕ:

При отсутствии дополнительного порта ввода/вывода возможна только команда VERF T, т.е. прием данных через терминальный порт.

XBOOT Transfer Data Bootstrap Mode

Передача данных для режима начальной загрузки

Синтаксис:

XBOOT [<адрес1>[ <адрес2>]],

где

<адрес1> Начальный адрес

<адрес2> Конечный адрес

Команда XBOOT передает блок данных с адреса <адрес1> по адрес <адрес2> через последовательный интерфейс SCI в целевое устройство на базе MC68HC11, установленное в режим начальной загрузки. Перед пересылкой данных посылается синхронизирую­щий символ $FF. Это является частью протокола начальной загрузки и устанавливает скорость передачи для основного блока данных. Если указан только один адрес, он считается стартовым адресом, а размер блока устанавливается равным 256 байтам. Если ни один из адресов не указан, передается блок данных с $C000 по $C0FF.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]