Flash память программ это

Память программ предназначена для хранения последовательности команд, управляющих функционированием микроконтроллера, и имеет 16-ти битную организацию. Все AVR имеют Flash-память программ, которая может быть различного размера — от 1 до 256 КБайт.

Ее главное достоинство в том, что она построена на принципе электрической перепрограммируемости, т. е. допускает многократное стирание и запись информации. Программа заносится во Flash-память AVR как с помощью обычного программатора, так и с помощью SPI-интерфейса, в том числе непосредственно на собранной плате. Все микроконтроллеры семейства Mega имеют возможность самопрограммирования, т. е. самостоятельного изменения содержимого своей памяти программ. Эта особенность позволяет создавать на их основе очень гибкие системы, алгоритм работы которых будет меняться самим микроконтроллером в зависимости от каких-либо внутренних условий или внешних событий.

Гарантированное число циклов перезаписи Flash-памяти у микроконтроллеров AVR второго поколения составляет не менее 10 тыс. циклов при типовом значении 100 тыс. циклов. (В официальной технической документации Atmel Corp. указывается значение 10 тыс. циклов.)

Как прошить флешь память. И что это такое ?

Память данных

Память данных разделена на три части: регистровая память, оперативная память (ОЗУ — оперативное запоминающее устройство или RAM) и энергонезависимая память (ЭСППЗУ или EEPROM).

Регистровая память (РОН и РВВ)

Регистровая память включает 32 регистра общего назначения (РОН или GPR), объединенных в файл, и служебные регистры ввода/вывода (РВВ). И те и другие расположены в адресном пространстве ОЗУ, но не являются его частью.

В области регистров ввода/вывода расположены различные служебные регистры (регистры управления микроконтроллером, регистры состояния и т. п.), а также регистры управления периферийными устройствами, входящими в состав микроконтроллера. По сути, управление микроконтроллером заключается в управлении этими регистрами.

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:

Источник: studopedia.ru

4.3. Flash-память программ

МК XMEGA интегрируют внутрисистемно-перепрограммируемую Flash-память, предназначенную для хранения кода программы. Чтение и запись Flash-памяти можно выполнить с помощью внешнего программатора через интерфейс PDI, или под управлением исполняемой ЦПУ программы.

Читайте также:
Программа которая запоминает действия компьютера

Все инструкции AVR являются 16- или 32-битными, а ячейки Flash-памяти — 16-битными. Flash-память МК XMEGA разделена на два основных сектора: сектор прикладной программы и загрузочный сектор (см. рисунок 4.1). Размеры каждого сектора являются фиксированными и зависят от типа МК. У каждого из секторов имеются отдельные lock-биты и предусмотрены различные уровни защиты.

Для записи Flash-памяти можно использовать инструкцию записи в память программ (SPM), но при условии ее исполнения в загрузочном секторе. В секторе прикладной программы имеется сектор таблицы приложения с отдельными lock-битами. Его можно использовать для безопасного хранения энергонезависимых данных в памяти программ.

Как работает флэш память

Рисунок 4.1. Секторы Flash-памяти

4.3.1. Сектор прикладной программы

Сектор прикладной программы является сектором Flash-памяти, который используется для хранения исполняемого кода программы. Уровень защиты сектора прикладной программы выбирается битами Boot Lock для этого сектора. В секторе прикладной программы не может храниться программа загрузчика, поскольку выполнение в этом секторе инструкции SPM не поддерживается.

4.3.2. Сектор таблицы приложения

Сектор таблицы приложения является частью сектора прикладной программы Flash-памяти и может использоваться для хранения данных. Его размер идентичен загрузочному сектору. Уровень защиты сектора таблицы приложения выбирается битами Boot Lock этого сектора. Возможность задания разных уровней защиты сектора прикладной программы и сектора таблицы приложения делает хранение параметров в памяти программ более безопасным. В случае отсутствия потребности в хранении данных в этом секторе, его можно использовать для хранения кода программы.

4.3.3. Загрузочный сектор

Если сектор прикладной программы используется для хранения кода программы приложения, то код программы загрузчика должен быть размещен в загрузочном секторе. Это связано с тем, что инструкция SPM будет работать по назначению только при выполнении ее в загрузочном секторе. Инструкция SPM может осуществлять доступ к любой части Flash-памяти, в т.ч. загрузочный сектор, из которого она выполняется. Уровень защиты загрузочного сектора задается его Lock-битами. Если в хранении в данном секторе программы загрузчика нет потребности, то его можно использовать для хранения кода прикладной программы.

Читайте также:
Схема программы на алгоритмическом языке

4.3.4. Сигнатурный код производителя

Сигнатурный код производителя — отдельный сектор памяти, в котором хранятся запрограммированные производителем данные, в т.ч. калибровочная информация таких встроенных функциональных блоков, как генераторы и аналоговые модули. Часть калибровочных данных автоматически загружается во время сброса в соответствующие модули или УВВ. Остальные же необходимо программно загрузить из сигнатурного кода производителя и записать в соответствующие регистры УВВ. Более детальная информация относительно калибровки температурной зависимости, разброса опорных напряжений и др. приведена в документации на МК.

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

4.3.5. Сигнатурный код пользователя

Сигнатурный код пользователя — отдельный сектор памяти, полностью доступный для чтения и записи и со стороны прикладной программы, и со стороны внешнего программатора. Сигнатурный код производителя равен по объему одной странице flash-памяти и предназначен для хранения статических параметров пользователя, как, например, калибровочные данные, специальные серийные номера или идентификационные коды, случайные числовые последовательности и др. Команда стирания Flash-памяти Chip Erase на данный сектор не распространяется. Для стирания сигнатурного кода пользователя предусмотрена отдельная команда стирания. Этим гарантируется сохранность параметров во время частых циклов программирования/стирания и во время работы со встроенной отладочной системой.

Источник: www.gaw.ru

3.5. Flash память программ

Контроллеры ST7 содержат отдельную энергонезависимую расширенную FLASH (XFLASH) память, которая может быть электрически стерта и программирована либо побайтно или параллельно по 32 байта.

Устройства XFlash могут быть запрограммированы вне платы (подключением в программатор) или на плате применением In-Circuit Programming или In-Application Programming. ICT (In-Circuit Testing) для загрузки и выполнения приложения пользователя с проверкой по образцу в RAM. Организация матрицы массива позволяет каждый сектор стереть и повторно запрограммировать без воздействия на другие секторы. Размер сектора 0 конфигурируется байтом выбора. Защита считывания и записи.

Читайте также:
Попадает ли координата написать программу на паскале

3.5.1. Способы программирования

Микроконтроллеры ST7 могут быть запрограммированы тремя различными способами:

— Установкой в программирующий инструмент (программатор). В этом способе строка байта и данные EEPROM (если присутствуют) могут быть запрограммированы или стерты.

— In-Circuit Programming. В этом способе в сектоторах 0 и 1 памяти FLASH, выбранные строки байт и данные EEPROM (если присутствуют), могут быть запрограммированы или стерты, не удаляя устройство с платы приложения.

— In-Application Programming. В этом способе сектор 1 и данные EEPROM (если присутствуют) могут быть запрограммированы или стерты без удаления устройства с платы приложения и в то время когда оно работает.

In-Circuit Programming (ICP)

ICP использует протокол, названный ICC (In-Circuit Communication), который позволяет ST7, включенный на печатной монтажной плате, программировать внешним устройством через кабель. Определенная последовательность сигналов по протоколу ICC подается на ICCCLK/DATA линии, в то время когда на линии RESET устанавливается низкий уровень. Когда ST7 вступает в сброс, память системы ST7 получает возможность приема данных по протоколу ICC.

In-Application Programming (iap)

Этот способ использует IAP драйвер, предварительно запрограммированный в Секторе 0 пользователем (ICP способом).

Этим способом полностью управляет пользовательское программное обеспечение.

Способ IAP может использоваться для программирования любых областей памяти кроме сектора 0, который защищают от записи/стирания в течении прогрммной операции.

Интерфейс ICC

Для связи с программирующим инструментом протокол ICP нуждается минимум 4 и до 6 линий (pin):

— RESET: сброс устройства.

— VSS: земля электропитания устройства.

— ICCCLK: выход ICC последовательность тактовых сигналов.

— ICCDATA: ICC ввод последовательных данных.

— CLKIN/PB4: главный вход тактовых сигналов от внешнего источника.

3.5.2. Защита flash памяти

Есть два различных типа защиты памяти:

Защита считывания и защита записи / стирания, которые можно применять индивидуально.

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

Защита записи / стирания лишает возможности стирания и записи новой программы, но предотвращает любое изменение содержания памяти.

Источник: studfile.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru