Флэш - память

 

Флэш-память (Flash memory) относится к классу EEPROM, но использует особую технологию построения запоминающих ячеек. В отличие от EEPROM, она может стираться только целиком, либо достаточно большими блоками. Возможность перезаписи отдельных ячеек памяти в ней отсутствует. Кристаллы с флэш - памятью всегда содержат встроенные генераторы накачки и при соответствующей аппаратной и программной поддержке позволяют реализовать режим «программирования в системе» - программирование без извлечения микроконтроллера из изделия. Необходимость использования программатора в этом случае отпадает.

Современные технологии изготовления Flash Memory обеспечивают гарантированное число циклов стирания/записи до 1000 …. 10000, срок хранения до 10 лет.

Флэш-память программ микроконтроллера может быть переписана самим микроконтроллером. Для организации этого режима в структуре памяти предусматривается специальный раздел начальной загрузки, где располагается специальная программа.

Например, микроконтроллер ATmega163 имеет 8K 16-битных ячеек Flash-памяти программ. Общий объем памяти 16 Кбайт. При этом всё адресное пространство флэш- памяти программ ($0000...$1FFF) разделено на два раздела (рис. 2.1): раздел программы начальной загрузки (Boot Program Section) размер которой может находиться в пределах от 256 до 2048 байт и раздел прикладной программы (Application Program Section).

Оба раздела могут быть программно заблокированы от записи. Кроме того, в системе команд микроконтроллера предусмотрена специальная инструкция spm (store program memory), осуществляющая запись данных в Application Program Section. Эта команда может быть использована только в Boot Program Section.

 
 

 

 


Рис. 2.1. Организация flash-памяти программ микроконтроллера ATmega 163

 

В Boot Program Section записывается программа Flash-resident Boot Loader, позволяющая процессорному ядру микроконтроллера организовать перепрограммирование раздела прикладной программы непосредственно в изделии. Программа Boot Loader может использовать различные способы связи микроконтроллера с внешними устройствами для ввода кода программы.

Весь массив 8К ячеек flash memory микроконтроллера ATMEGA163 разделен на 128 страниц по 64 слова. Размер раздела начальной загрузки может быть задан с помощью специальных fuse битов BOOTSZ, как показано в таблице 2.1.

 

Таблица 2.1. Конфигурирование секции начальной загрузки (Boot Section)

 

BOOTSZ1 BOOTSZ0 Объем (слов) К-во страниц Адреса
$1F80-$1FFF
$1F00-$1FFF
$1E00-$1FFF
$1C00-$1FFF