- •Проектирование микропроцессорных устройств
- •1. Разработка принципиальной схемы
- •2. Разработка управляющих программ
- •2.1. Написание программ для микропроцессоров.
- •2.2. Система команд
- •2.3. Режимы адресации
- •2.4. Стадии подготовки программного обеспечения для микроконтроллеров
- •3. Языки программирования для микроконтроллеров.
- •4. Виды компиляторов
- •5. Применение комментариев
- •6. Применение подпрограмм
2.3. Режимы адресации
Для взаимодействия с различными модулями в ЭВМ должны быть средства идентификации ячеек внешней памяти, ячеек внутренней памяти, регистров МП и регистров устройств ввода/вывода. Поэтому каждой из запоминающих ячеек присваивается адрес, т.е. однозначная комбинация бит. Количество бит определяет число идентифицируемых ячеек. Обычно ЭВМ имеет различные адресные пространства памяти и регистров МП, а иногда - отдельные адресные пространства регистров устройств ввода/вывода и внутренней памяти. Кроме того, память хранит как данные, так и команды. Поэтому для ЭВМ разработано множество способов обращения к памяти, называемых режимами адресации.
Режим адресации памяти - это процедура или схема преобразования адресной информации об операнде в его исполнительный адрес. При введении нескольких режимов адресации необходимо отвести в команде биты, указывающие режимы адресации для каждого операнда. Если предусмотрено восемь режимов адресации, то для задания каждого из них нужно три бита.
Возможные способы адресации:
1) непосредственная. В этом случае операнд записывается в самой команде;
2) прямая, когда исполнительный адрес берется непосредственно из команды или вычисляется с использованием значения, указанного в команде, и содержимого какого-либо регистра (прямая адресация, регистровая, базовая, индексная и т.д.);
2) косвенная, которая предполагает, что в команде содержится значение косвенного адреса, т.е. адреса ячейки памяти, в которой находится окончательный исполнительный адрес.
В каждой микроЭВМ реализованы только некоторые режимы адресации, использование которых, как правило, определяется архитектурой МП.
С целью уменьшения числа разрядов адреса пространства оперативной памяти и памяти программ разбивается на крупные фрагменты называемые в некоторых микроконтроллерах (например в МК MicrochipиIntel) банками и страницами соответственно. Номер банка или страницы в адресах команд отсутствует, но микроконтроллер пользуется тем банком который перед этим был выбран специальной командой (например BANKSEL и PAGESEL– в ассемблереMPASM).
2.4. Стадии подготовки программного обеспечения для микроконтроллеров
Разработка и подготовка программ для микроконтроллеров имеет свою специфику и отличается от подготовки программ для универсальных вычислительных машин и персональных компьютеров. Это объясняется отсутствием развитых отладочных средств в самом микроконтроллере и хранением его программы в постоянной памяти. Кроме того, микроконтроллер работает по одной программе, которая не меняется, а универсальный процессор предназначен для выполнения неопределенного набора программ с оперативной загрузкой их в память.
Можно использовать следующий порядок работ по подготовке программы для микроконтроллеров:
1. Разработка алгоритма.
2. Написание модулей программы на мнемоническом языке программирования (Ассемблер, Си, Паскаль и т.д.).
3. Ввод исходного текста программы текстовым редактором.
4. Компиляция программы в объектные модули с относительными адресами, т.е. перевод из мнемонического языка в машинный в виде двоичных кодов при этом каждый модуль начинается с нулевого адреса. По итогам компиляции производится предварительная отладка программы в части исправления синтаксических ошибок.
5. Сборка отдельных объектных модулей в единую программу в двоичном коде (HEX-файл) и с абсолютными адресами в памяти.
6. Отладка с помощью моделирующего отладчика в среде проектирования.
7. Макетная отладка с помощью отладочной платы, эмулирующей выбранный процессор или с процессором этого типа.
8. Занесение программы в память программ микроконтроллера (программирование или прошивка) с помощью программатора.
9. Макетная отладка на экспериментальном образце с помощью внутрисхемного отладчика и программатора.