Ассемблер

Особенности разработки и отладки программ для микроконтроллеров AVR

Память микроконтроллера

МК AVR включают 3 вида памяти:

· Память программ (Flash-память). Предназначена для хранения управляющей программы. Выполнена по Flash – технологии, то есть энергонезависимая (данные не теряются при выключенном источнике питания).

Запись информации в память программ осуществляется при помощи специальных устройств (программаторов). Объем памяти до 64-х Кбайт.

 

· ОЗУ (SRAM) – оперативная память для данных энергозависимая. Объем ОЗУ до 2-х Кбайт. Самая распространенная на сегодняшний день построения – динамическая память. Ранее была статическая память (на D-триггерах). Хранение информации в микросхемах динамической памяти осуществляется при помощи динамически подзаряжаемых миниатюрных емкостей (конденсаторов).

Каждый конденсатор хранит один бит информации. Если значение бита должно быть 1,то схема управления заряжает конденсатор. Конденсатор может хранить заряд (информацию) в течение нескольких миллисекунд. Для того, чтобы информация не потерялась, используют регенерацию памяти (подзаряд конденсатора для битов, где единица). Схема регенерации встраивается внутрь микросхем памяти ОЗУ.

 

· Энергонезависима память для данных (EEPROM). Она также выполнена по Flash – технологии. Основное назначение: для долговременного хранения данных. Данные не теряются при выключенном источнике питания. Управляющая программа МК может в любой момент записать данные в EEPROM. Объем до 2-х Кбайт. Можно записывать информацию с помощью программатора.

 

Так как микроконтроллеры AVR появились на рынке недавно, для них пока нет большого количества средств разработки. Несмотря на это фирма Atmel уверена в том, что для AVR уже есть полный набор таких средств, и некоторые производители уже начали выпускать программные и аппаратные средства, доступные для пользователя.

Рассмотрим некоторые средства разработки программ для AVR-МК.

 

Наиболее эффективные программы получаются при использовании языка ассемблер. Строго ассемблером называется программа, которая является транслятором. Эта программа переводит последовательность команд с языка ассемблера на язык машинных кодов процессора.

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

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