Электронные системы ускорителей

БАЗОВАЯ АРХИТЕКТУРА МИКРОКОНТРОЛЛЕРОВ
СЕМЕЙСТВА AT89LP51/52

Особенности архитектуры

1. ОБЗОР АРХИТЕКТУРЫ

1.1. Выполнение инструкций

1.2. Системная синхронизация

1.3. Сброс

1.4. Таймеры/счетчики

1.5. Управление прерыванием

1.6. Последовательный порт

1.7. Порты ввода/вывода

1.8. Безопасность

1.9. Программирование

2. ОРГАНИЗАЦИЯ ПАМЯТИ

2.1. Память программ

2.1.1. Интерфейс памяти программ

2.1.2. Сигнатура

2.2. Внутренняя память данных

2.2.1. DATA

2.2.2. IDATA

2.2.3. SFR

2.3. Внешняя память данных

2.3.1. XDATA

2.3.2. FDATA

2.3.3. Интерфейс внешней памяти данных

3. РЕГИСТРЫ СПЕЦИАЛЬНЫХ ФУНКЦИЙ SFR

3.1. Карта SFR

3.2. Слово состояния программы

3.3. Указатель стека

4. ПРОЦЕССОР

4.1. Быстрый режим

4.2. Расширенные указатели данных

4.3. Прерывания

ПОЛНОЕ ОПИСАНИЕ МИКРОКОНТРОЛЛЕРОВ AT89LP51/52

ИНТЕГРИРОВАННАЯ СРЕДА РАЗРАБОТКИ
"AT89LP Developer Studio"

Основные сведения

1. ОСНОВНЫЕ ЭЛЕМЕНТЫ СРЕДЫ РАЗРАБОТКИ

1.1. Пользовательский интерфейс

1.1.1. Окно решений

1.1.2. Окно вывода

1.1.3. Список наблюдения

1.2. Запуск среды разработки

1.2.1. Открытие существующего проекта

1.2.2. Создание нового проекта

2. ОТЛАДКА ПРИЛОЖЕНИЯ

2.1. Терминология

2.2. Команды управления

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

2.4. Пример отладки

2.5. Загрузка проекта

2.6. Настройка симулятора для целевого устройства

2.7. Ассемблирование программы

2.8. Начало сессии отладки

2.8.1. Проверка внутреннего состояния микроконтроллера

2.8.2. Команды отладки

2.8.3. Одиночный шаг

2.8.4. Мониторинг целевых регистров

2.8.5. Установка точек останова

2.8.6. Выполнение кода и остановка на точке останова

2.8.7. Выход из отладки

3. ОКНА

3.1. Просмотр файлов

3.2. Ввод/вывод

3.3. Информация

3.4. Конфигурация проекта

3.5. Вид сборки

3.6. Отладка

3.7. Список наблюдения

3.8. Статическое представление памяти

3.9. Редактор

3.10. Дизассемблер

4. МЕНЮ И ПАНЕЛЬ ИНСТРУМЕНТОВ

4.1. Меню разработчика

4.2. Меню файлов

4.3. Меню редактора

4.4. Меню симулятора

4.5. Меню микроконтроллера

4.6. Меню отладки

4.7. Меню инструментов

4.8. Меню вида

4.9. Меню окон

4.10. Меню помощи

4.11. Меню лицензий

4.12. Меню Стандартная панель инструментов

4.13. Панель инструментов редактора

4.14. Панель инструментов отладчика

4.15. Панель инструментов управления потоком

5. НАСТРОЙКА СИМУЛЯТОРА

5.1. Системная настройка симулятора

5.2. Настройка fuse-битов симулятора

5.3. Набор файлов памяти

5.4. Настройка симулятора для доступа к XRAM

6. НАСТРОЙКА ИНСТРУМЕНТАЛЬНЫХ СРЕДСТВ

6.1. Выбор инструментальных средств

6.2. Определение параметров для инструментов

7. ОТЛАДКА

7.1. Расширенные контрольные точки

7.1.1. Типы контрольных точек

7.1.2. Диапазон точек останова

7.1.3. Контрольные точки данных

7.1.4. Точки останова по ссылке

7.1.5. Установка точек останова

7.1.6. Добавление точки останова

7.1.7. Удаление точки останова

МЕТОДИЧЕСКИЕ УКАЗАНИЯ К ЛАБОРАТОРНОЙ РАБОТЕ

Цель работы

Предварительное задание

Задание и порядок выполнения работы

Оформление отчета

Вопросы к защите

2. Отладка приложения

В этом разделе показаны основные функции отладки, доступные в LPDS.

Кнопками управления отладкой, которые рассматриваются в данном разделе, являются: «Выполнить» (Run), «Прервать» (Break), «Шаг трассировки» (Step Over) и «Сброс» (Reset). Кроме того, могут быть заданы контрольные точки. С ними среда LPDS во время процесса отладки позволяет полностью контролировать программу.

2.1. Терминология

Термины «Режим исполнения» и «Режим отладки» используются для описания состояния микроконтроллера.

• Режим исполнения – состояние микроконтроллера, когда он работает свободно и выполняет инструкции непрерывно.

• Режим отладки – состояние микроконтроллера, когда он остановился, и потоком инструкций управляют команды отладки.

2.2. Команды управления

• Run - устанавливает микроконтроллер в режим исполнения.

• Break – устанавливает микроконтроллера в режим отладки. Это единственная доступная команда, когда микроконтроллер находится в режиме исполнения.

• Step Over – в режиме отладки позволяет микроконтроллеру выполнять следующую инструкцию перед возвратом в режим отладки.

• Reset - сбрасывает приложение и останавливает микроконтроллер на первой инструкции программы.

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

Точки останова (Breakpoints) являются мощным средством для отладки кода. Точки останова могут быть заданы для остановки микроконтроллера для выполнения конкретных инструкций. Они позволяют перевести микроконтроллер из режима выполнения в режим отладки в любом нужном месте кода. Точки останова на AT89LP зависят от предпочтения. Простейшая форма точки останова называется точкой адреса программы, когда пользователь указывает адрес инструкции в памяти, где исполнение должно остановиться.

2.4. Пример отладки

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

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

2.5. Загрузка проекта

Чтобы открыть проект «ProgressBar», запустите LPDS и нажмите на кнопку «Open» на экране приветствия. Далее появится диалоговое окно, с помощью которого можно просматривать и открывать файлы LPDS проекта. LPDS файлы проекта можно узнать по расширению .ncp. Откройте файл, после чего IDE будет выглядеть, как на рис. 7.

рис7

Рис. 7. Отладка приложения «ProgressBar»

2.6. Настройка симулятора для целевого устройства

LPDS позволяет отлаживать приложения на физическом чипе AT89LP, или можете использовать симулятор LP51SIM, который поставляется с LPDS. Так как на данном этапе нет комплекта аппаратных средств разработки AT89LP, будем использовать симулятор. Убедитесь, что в качестве цели проекта в раскрывающемся списке «Debug» на панели инструментов установлено «Simulate».

2.7. Ассемблирование программы

Чтобы осуществить сборку приложения «ProgressBar», по умолчанию, будем использовать поставляемый с LPDS ассемблер C51ASM. Ассемблируйте программу, нажав на панели инструментов кнопку «Build» слева от списка «Debug». Взгляните на вкладку «Build» в «Окне вывода", чтобы убедиться, что приложение успешно собрано, как показано на рис. 8.

рис8

Рис. 8. Вывод результата ассемблерования приложения «ProgressBar»

2.8. Начало сессии отладки

Чтобы начать отладку, нажмите кнопку «Start Debug» в разделе «Debug» на панели инструментов. При этом LPDS сбросит симулятор и установит его в режим отладки. Как только LPDS войдет в режим отладки, откроется окно отладки, содержащее дисассемблированный файл, и желтый маркер разместится на инструкции, которая будет выполняться. См. рис. 9.

рис9

Рис. 9. Начало сессии отладки

2.8.1. Проверка внутреннего состояния микроконтроллера

При отладке нужно проверять внутреннее состояние микроконтроллера, наблюдая за значениями регистров устройства, используемых в программе: аккумулятора (ACC или A), регистра общего назначения R4, и регистров порта P0, P0M0, P0M1:

• Регистр R4 используется для хранения шаблона сдвига.

• P0 является копией R4 и используется для вывода изменяемого шаблона, управляющего светодиодами на плате разработки.

• P0M0 и P0M1 являются регистрами, используемыми для настройки порта P0.

Найдите эти регистры во вкладке ввода/вывода в окне «Solution View»:

• для просмотра R4 раскройте узлы Register 0-7

• для просмотра ACC найдите узел раздела Processor

• для просмотра регистров порта нужен раздел AT89LP6440, в котором находится порт 0.

2.8.2. Команды отладки

В дополнение к использованию окна ввода/вывода для наблюдения за содержимым регистров микроконтроллера можно также создать свой собственный список регистров в списке наблюдений. Просто введите в «Watchlist» имена регистров, которые вы хотите наблюдать (ACC, R4).

2.8.3. Одиночный шаг

Сначала выполним несколько команд одиночного шага. Для этого надо воспользоваться кнопкой «Step Over» на панели инструментов «Flow Control». Можно также для этого использовать горячую клавишу F10.

Если выполнить достаточное количество шагов, то увидим, что приложение образует петлю между адресами 0x0006 и 0x0013. Этот цикл формирует «индикатор процесса» - при каждой итерации цикла в индикатор добавляется 1.

В процессе отладки, взгляните на вкладку «Debug» в окне «Output View». Здесь вы увидите историю команд отладки и адреса памяти программ (программный счетчик) для следующих выполняемых инструкций. Сравните значение счетчика со значениями, находящимися в левом поле дизассемблированного файла. Это поле содержит адреса каждой инструкции в памяти программ.

2.8.4. Мониторинг целевых регистров

Особый интерес имеет наблюдение за значениями, записываемыми в порт P0, так как этот регистр управляет светодиодами на плате разработки. Продолжая выполнять одиночные шаги, посмотрим на изменения значений порта в окне «Solution» в разделе ресурсов AT89LP6440. Обратите внимание, как значение в P0 получает сдвиг при выполнении инструкции по адресу 0x0011.

2.8.5. Установка точек останова

Во время сеанса отладки можно определить участки кода, которые хотим исследовать. В приложении «ProgressBar» в первую очередь мы заинтересованы в том, чтобы значения в P0 действительно напоминали «индикатор процесса». Ранее, когда выполнялась отладка с использованием только одного шага, необходимо было выполнить множество инструкций, прежде чем произошла смена значения в P0. Чтобы ускорить процесс отладки можно установить точку останова на инструкции, которая записывает значение в P0. Известно, что инструкция, которая формирует индикатор, расположена в памяти программ по адресу 0x0011. Здесь требуется создать точку останова. Наводим курсор мыши на эту линию на дисплее в файле .asm или .dsm и задаем точку останова, нажав на кнопку «Toggle Breakpoint» на панели инструментов «Flow Control». Можно также использовать клавишу F9 для включения и отключения точек останова.

2.8.6. Выполнение кода и остановка на точке останова

С точкой останова, установленной на инструкции по адресу 0x0011, запускаем программу. Для этого задаем рабочий режим, нажав на кнопку «Run» на панели инструментов. Также можно использовать клавишу F5 для перехода в режим выполнения. Нажмите клавишу F5 несколько раз и обратите внимание, как программа неоднократно выходит и входит в режим отладки на инструкции по адресу 0x0011. После того, как программа приостановила работу в точке останова, необходимо выполнить ещё один шаг, который запишет следующее значение «индикатора процесса» в P0.

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

2.8.7. Выход из отладки

Убедившись, что программа работает правильно, выйдите из сеанса отладки, нажав на кнопку «Stop Debug» на панели отладки.