Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Пособие HCS12 & Elvis II v.7.01

.pdf
Скачиваний:
219
Добавлен:
03.05.2015
Размер:
4.14 Mб
Скачать

Область памяти должна быть доступна для записи, т.е. обозначена комбинацией символов uu в окне Memory (рис 4.25).

Рис. 4.24. Команда Fill Memory контекстного меню окна Memory

Рис. 4.25. Результат выполнения команды Fill Memory

Display Address – переход по заданному адресу в окне Memory (рис. 4.26).

Рис. 4.26. Команда Display Address контекстного меню окна Memory

Copymem… – копирование значений блока ячеек памяти (рис. 4.27 и 4.28). Диапазон адресов источника указывается в полях from Address и to Address области Source. Начальный адрес назначения – в области Destination. Если хотя бы одна ячейка не доступна для записи, то выводится сообщение об ошибке (рис. 4.29).

Рис. 4.27. Команда Copymem… контекстного меню окна Memory

91

Рис. 4.28. Результат выполнения команды Copymem…

Рис. 4.29. Сообщение об ошибке выполнения команды Copymem…

Search Pattern… – искать комбинацию. При расположении курсора на одной из ячеек памяти в окне Memory и открытии в контекстном меню пункта Search Pattern… можно задать поиск значения в памяти по маске, задаваемой в поле Find Expression (рис. 4.30). Поиск может осуществляться по всей области памяти или в выбранном диапазоне, установив галочку в поле Range.

Рис. 4.30. Команда Search Pattern… контекстного меню окна Memory и результат её выполнения

4.6.2. Окно Command. Полезные команды в окне Command

Окно Command показывает команды отладки, посылаемые и принимаемые из управляющего компьютера.

Полный список команд отладки и работы с текущей программой можно получить при задании в окне Command команды Help (рис. 4.31). Примеры команд отладки из окна

Command:

in>RD

Вывод текущего состояния регистров.

in>RS

Изменение значений регистров.

in>MEM

Вывод в окно команд карты памяти для выбранного МК.

in>DASM

Запись в командной строке дизассемблированного кода программы.

in>CD

Текущая директория расположения программы.

in>WAIT

Задержка несколько секунд.

92

Рис. 4.31. Окно Command

Следует выделить три особо полезные команды. Первые две – WB (записать байт) и WW (записать слово) – позволяют с командной строки занести в желаемую область памяти произвольные значения. По сути, эти команды заменяют диалоговые режимы окна Memory. Например, чтобы заполнить три ячейки памяти, начиная с адреса $E100, значениями $12, $13, $14, в окне команд следует набрать:

WB $E100 $12 $13 $14

Аналогично для двухбайтовых слов:

WW $E200 $0012 $0013 $2F64

Следует помнить, что для работы в режиме симулятора эти команды применимы как для области ОЗУ МК, так и для области ПЗУ. А при работе с реальным МК – только для области его ОЗУ.

Третья команда – это команда cycles. С помощью неё можно в любой момент времени обнулить счётчик циклов в окне Register. Для этого необходимо набрать в командной строке:

cycles 0

Результат выполнения этой команды представлен на рис. 4.32.

Рис. 4.32. Результат выполнения команды cycles 0

Общий вид команды: cycles x (x – число, которое необходимо записать в счётчик циклов).

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

4.6.3. Работа с командным файлом

93

Командный файл позволяет запомнить некоторую последовательность действий, совершаемую по управлению режимами работы симулятора, а затем воспроизвести её в автоматическом режиме.

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

Пример записи командного файла для ввода эталонного массива значений

Создадим сначала командный файл. Для этого в режиме FCS используется переход в главном меню Component Open Recorder. На экране откроется окно Recorder (рис. 4.33), оно расположится поверх остальных окон отладчика.

– строка состояния;

– воспроизведение командного файла;

– запись командного файла;

– остановка записи;

– пауза в записи;

– отражение процесса записи командного файла, с помощью контекстного меню можно показывать время записи командного файла.

Рис. 4.33. Окно Recorder и его управляющие кнопки

Запись командного файла начинается с нажатия на кнопку создание/открытие файла

в окне Recorder. После этого открывается окно для задания имени файла (наш файл будет называться 4.rec). Расширение .rec, что означает “Command Files” (рис. 4.34), установлено по умолчанию в поле «Тип файлов». Далее необходимо нажать клавишу Enter для сохранения командного файла. Командный файл должен быть расположен в одной папке c текущим проектом, к которому относится, иначе он не будет запускаться.

94

Рис. 4.34. Создание командного файла

После этого нажимаем на кнопку в окне Recorder для запуска записи 4.reс. Через командную строку, используя команду WB, создадим эталонный массив из 10

значений, начиная с адреса $0080. Для этого в командной строке запишем команду:

WB $80 $45,$56,$57,$87,$56,$67,$69,%10,$87,67

Далее нажимаем клавишу Enter. После окончания записи командного файла

нажимаем кнопку в окне Recorder. На этом запись командного файла завершена. Проверим полученный результат, запустив командный файл 4.rec на исполнение при

помощи кнопки .

Или если окно Record в процессе работы было закрыто, то можно использовать второй способ для открытия командного файла. В окне Command по команде CF сразу возникает окно Record file (рис. 4.34), далее в области «Тип файлов» необходимо выбрать “All Files”. После выбора командного файла, расположенного в папке с текущим проектом, нажимаем клавишу Enter. После этого командный файл запускается на исполнение.

После окончания исполнения командного файла на экране появится окно Replay (рис

4.35).

Исполнение файла 4.rec можно наблюдать как в окне Memory, так и в окне Command, в котором отобразятся выполняемые команды (рис. 4.36).

Рис. 4.35. Окно Replay

95

Рис. 4.36. Исполнение командного файла

Результат исполнения командного файла 4.rec приведён на рис. 4.37:

Рис. 4.37. Результат исполнения командного файла

96

4.7. Виртуальные устройства ввода/вывода

Программно-логический симулятор пакета CodeWarrior снабжен специальными утилитами внешних объектов, которые выбираются пользователем из уже готового перечня или создаются самим пользователем с использованием утилиты VisualisationTool. Утилита генерирует графический образ типовых устройств ввода и вывода для МК, а также имитирует их подключение к его портам.

Для демонстрации некоторых возможностей средств визуализации, подключим к нашей сессии симулятора светодиоды, переключатели и кнопку к соответствующим портам МК. Для этого необходимо выбрать пункт меню Component Open.

Далее откроется окно компонентов рис. 4.38. В списке необходимо выбрать элемент

VisualizationTool и нажать на кнопку OK.

Рис. 4.38. Окно Open Window Component

VisualizationTool может работать в двух режимах: Display Mode или Edit Mode.

Последний режим предназначен для того, чтобы спроектировать рабочее пространство и чтобы «собрать» необходимый макет из МК и виртуальных внешних устройств.

В режиме Display Mode можно просматривать исполнение программы в автоматическом режиме, нажимая виртуальные кнопки и переключатели. Чтобы переключиться между этими двумя режимами работы, можно использовать панель инструментов, контекстное меню, или сочетание клавиш Ctrl+E.

Изначально VisualizationTool открывается в режиме редактирования. Об этом свидетельствует надпись Edit Mode в верхнем левом углу окна (рис. 4.39).

97

Рис. 4.39. Рабочая область VisualizationTool

В таком режиме можно добавлять новые приборы, редактировать свойства уже существующих, а также настраивать сам компонент VisualizationTool. В составе последнего существует большое количество виртуальных устройств, которые можно «подключить к МК» для визуализации процесса отладки.

Чтобы добавить светодиод, нужно нажать правой кнопкой мыши на рабочей области и выбрать пункт контекстного меню Add New Instrument LED.

Рис. 4.40. Добавление нового компонента

На рабочей области появится светодиод. Компонент можно перемещать по полю, а также и изменять его размеры. Далее следует два раза нажать на компонент левой кнопкой мыши или правой кнопкой мыши открыть контекстное меню и выбрать пункт Properties. Откроется окно, показанное на рис. 4.41.

98

Рис. 4.41 Свойства компонента LED утилиты VisualizationTool

В этом окне следует «подключить» светодиод к симулируемому МК, т.е. назначить порт, к которому он будет подключен. Для этого для первого виртуального светодиода в поле Port to Display установите значение адреса, к которому подключен порт B – $0001, и номер бита в свойстве Bitnumber to display сделайте равным 4 (PRTB4). Так же в окне свойств можно указать цвет светодиода и иные настройки внешнего вида.

После настройки размеров и внешнего вида виртуального светодиода нужно выделить его и, используя команды контекстного меню Copy и Paste, добавить на рабочее поле еще 3 светодиода с одинаковыми свойствами. Далее в свойствах каждого светодиода необходимо переназначить номер линии, к которой он подключен. Для этого в свойствах каждого из светодиодов в пункте Bitnumber to display необходимо исправить номер линии порта, к которому он подключен. Для светодиода с номером 1 (не путать с первым созданным светодиодом с номером 0) задать значение, равное 1, для второго виртуального светодиода - значение равное 2, для третьего виртуального светодиода - 3. Тогда созданные 4 виртуальные светодиода будут подключены к линиям PRTB7..PRTB4.

При работе в демонстрационной версии отладки, при выборе элементов на рабочем поле могут одновременно располагаться не более трёх элементов. Для создания компонент, состоящих из большего количества элементов, когда их суммарное число достигнет трёх, необходимо выполнить операцию их группировки. Чтобы линейка светодиодов представляла собой единое целое, необходимо выделить все 4 светодиода, затем, используя контекстное меню, применить команду Group. В этом режиме нельзя будет изменять свойства сгруппированных инструментов, пока не применят команду Ungroup контекстного меню.

99

Рис. 4.42. Созданный инструмент «светодиоды»

¬ Для всех светодиодов в поле свойства Port to Display должно быть записано

значение $0001 (адрес порта B).

Для удобства восприятия добавим к светодиодам текстовые описания, указав номера битов, к которым они подключены. Для этого следует использовать пункт контекстного меню Add New Instrument Static Text (рис. 4.43).

Рис. 4.43. Добавление элемента Static Text

Далее на нужный компонент следует два раза нажать левой кнопкой мыши или один раз правой кнопкой мыши открыть контекстное меню и выбрать пункт Propertes. В появившемся окне вписать номер бита (рис. 4.44).

100