Особенности Flash Memory

Использование блок флэш-памяти. Обеспечение функционирования встроенной системы в соответствии с требованиями пользователя. Распределение пространства Flash Memory. Разблокирование, стирание и запись в Flash. Сохранение данных в энергонезависимую память.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 22.12.2019
Размер файла 593,0 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Содержание

Введение

1. Внутренняя флэш-память

1.1 Общие положения

1.2 Распределение пространства Flash Memory

1.3 Как использовать блок флэш-памяти

2. Работа с flash memory. Практические примеры

2.1 Чтение из Flash

2.2 Разблокирование Flash

2.3 Стирание Flash

2.4 Запись в Flash

3. Пример чтения и записи

Введение

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

1. Внутренняя флэш-память

1.1 Общие положения

Зачастую возникает необходимость сохранять ряд данных в энергонезависимую память. Такими данными, например, могут быть настройки программы для МК. Если нет внешней памяти, то приходится использовать внутренние ресурсы МК. К сожалению, stm32f4 не имеет в своём составе памяти EEPROM, позволяющей писать побайтно, как в ОЗУ. Потому приходится использовать Flash. Тот самый, в который пишется и сама программа. Потому работа с этой памятью требует особой осторожности. Если её не соблюдать, то вы можете легко затереть часть (а то и всю) вашей программы и устройство перестанет работать.

Чтобы этого не произошло, в микроконтроллере stm32f4 предусмотрена защита. Для доступа к записи в эту память необходимо ввести 8-мибайтный код. Если код введён не верно, доступ к flash можно будет открыть только после сброса питания с МК.

1.2 Распределение пространства Flash Memory

Распределение внутренней флэш-памяти STM32F407 происходит следующим образом.

· Основная память разделена на 11 секторов. Первые четыре сектора (0-3) имеют размер 16 КБ, следующий сектор имеет размер 64 КБ, а остальные 5 секторов имеют размер 128 КБ каждый;

· Системная память является загрузчиком;

· 512 КБ памяти - это память с однократной записью, используемая для общих целей. Еще 16 байтов используются для блокировки данных;

· Дополнительные байты используются для настройки защиты от чтения записи, сброса Брауна (для обнаружения источника питания), аппаратного / программного контроля и т. д.

Библиотека Waijung имеет набор блоков для использования блока внутренней флэш-памяти с возможностью очистки, чтения и записи данных. Использование ограничено от сектора 5 до 11.

STM32F4DISCOVERY оснащен 1 МБ флэш-памяти микроконтроллера STM32F407VGT6. Флэш-память микроконтроллера была разделена на сектора, и каждый сектор имеет свои начальный и конечный адреса. Некоторые сектора маленькие, а некоторые большие.

Распределение пространства флэш-памяти показано на рисунке 1.1.

Рисунок 1.1. Распределение флэш-памяти в STM32F407

1.3 Как использовать блок флэш-памяти

Библиотека Simulink >> Waijung Blockset >> STM32F4 target >> On Peripheral Chip >> FLASH содержит набор блоков для управления данными во флэш-памяти. Параметры блока Flash Erase(очистки) показаны на рис. 1.2, который используется для удаления данных из секторов. Стирание данных из памяти 128 КБ занимает от 1 до 2 секунд.

Рисунок 1.2. Особенности Flash Erase Block

Параметры блока Flash Read(чтения) показаны на рисунке 1.3. Используется для чтения данных из указанной памяти. Например, если требуется прочитать адрес: 0x080E0500, выполните следующие действия.

· По нужному адресу выберите правильный сектор. Адрес: 0x080E0500 находится в секторе 11

· Для нахождения смещения = требуемый адрес - первый адрес в секторе

Таким образом, смещение = 0x80E0500 - 0x80E0000 = 0x0000500 = 20480 (в десятичном формате).

Рисунок 1.3. Характеристики Flash Read Block

Блок Flash Write(записи) показан на рисунке 1.4. Он используется для записи данных со смещением в памяти идентификатора конкретного сектора. Процедура назначения адреса и указания адреса смещения такая же, как и для блока чтения, как описано выше.

Рисунок 1.4. Характеристики Flash Write Block

2. Работа с flash memory. Практические примеры

2.1 Чтение из Flash

Тут всё просто. У нас есть адрес из которого нам надо считать. Что мы и делаем функцией:

uint32_t flash_read(uint32_t address)

{

return (*(__IO uint32_t*) address);

}

Эта функция возвращает данные из 4-х байт, начиная с заданного.

2.2 Разблокирование Flash

Прежде чем что-то делать с памятью, её нужно сначала разблокировать. Для этого надо в регистр KEYR сначала нужно записать число 0x45670123, а затем 0xCDEF89AB. при использовании StdPeriph это сводится к вызову функции:

FLASH_Unlock();

Если вы закончили писать в память, то вызовите функцию:

FLASH_Lock();

2.3 Стирание Flash

Стирать память можно только по секторам. Стирание памяти устанавливает состояние всех ячеек в 1.

Перед стиранием узнайте по приведённому выше списку в каком секторе находятся данные, подлежащие стиранию.

Затем вызовите функцию:

FLASH_EraseSector(FLASH_Sector_5, VoltageRange_3);

FLASH_Sector_5 - Вместо 5 нужно подставить номер своего сектора.

VoltageRange_3 - это диапазон питания. Есть 4 диапазона:

VoltageRange_1 - питание от 1.8 до 2.1 В

VoltageRange_2 - питание от 2.1 до 2.7 В

VoltageRange_3 - питание от 2.7 до 3.6 В

VoltageRange_4 - питание от 2.7 до 3.6 В с внешним Vpp.

Обычно 3.3В без батарейки.

2.4 Запись в Flash

Правильная запись гарантируется только если все биты в нужной ячейке равны 1. Как мы уже знаем, стирать память можно только по секторам, т.е., если вам требуется записать 1 байт, вам нужно куда-то скопировать ВЕСЬ сектор, стереть его и записать в него старые данные, заменив в них нужный байт. Записать же данные поверх текущих невозможно потому, что запись производится побитовым AND. Т.е. фактически это выглядит так:

ПАМЯТЬ=ПАМЯТЬ AND data, где data - ваши данные.

Запись также происходит по адресу одной из команд:

FLASH_ProgramDoubleWord() - запись 8-х байт.

FLASH_ProgramWord() - запись 4-х байт.

FLASH_ProgramHalfWord() - запись 2-х байт.

FLASH_ProgramByte() - запись 1-х байт.

Первым пишется адрес куда нужно записать, вторым данные которые нужно записать. Функции используются в зависимости от типа записываемых данных. Пример: FLASH_ProgramWord(0x08007F00, 0x89ABCDEF);

3. Пример чтения и записи

Фунция которая записывает 12 символов в память:

#define DEVICE_ADDRESS 0x08007F00

#define DEVICE_SECTOR FLASH_Sector_1

void WriteDeviceAddress(char* data)

{

uint8_t i;

FLASH_Unlock();

FLASH_EraseSector(DEVICE_SECTOR, VoltageRange_3);

for (i=0;i<12;i++)

{

FLASH_ProgramByte(DEVICE_ADDRESS+i, data[i]);

}

FLASH_Lock();

}

Пример чтения записанных 12-ти символов:

void ReadDeviceAddress(char* Dout)

{

uint32_t temp, i, j, k=0;

for (i=0;i<3;i++)

{

temp = flash_read(DEVICE_ADDRESS+(i*4));

for (j=0;j<4;j++)

{

Dout[k] = (char)((temp>>(j*8))&0xFF);

k++;

}

}

Dout[12]=0;

}

Использование в программе:

char TempStr[20], TempStr2[20];

sprintf(TempStr2, "0001951337B1");

WriteDeviceAddress(TempStr2);

ReadDeviceAddress(TempStr);

флэш память разблокирование запись

Если её не соблюдать осторожность, то вы можете легко затереть часть вашей программы и устройство перестанет работать. Чтобы этого не произошло, в микроконтроллере stm32f4 предусмотрена защита. Для доступа к записи в эту память необходимо ввести 8-мибайтный код. Если код введён не верно, доступ к Flash можно будет открыть только после сброса питания с МК, но это все еще не отменяет того, что работа с Flash памятью требует особой осторожности.

Размещено на Allbest.ru


Подобные документы

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

    курсовая работа [868,3 K], добавлен 23.12.2012

  • Изучение особенностей Flash-анимации, ее достоинства и недостатки. Существенные характеристики, видовые особенностей Flash-аниматора. Примеры использования Flash-технологий. Роль Flash-аниматора в сфере web-дизайна. Необходимый инструментарий web-мастера.

    контрольная работа [54,8 K], добавлен 24.05.2015

  • Создание видеоролика про хлор, используя Flash-технологии. Характеристика и принцип работы в MACROMEDIA FLASH 8. Сцены. Анимация движения объекта. Встроенные эффекты. Последовательность действий при создании Flash-фильма, его просмотр и тестирование.

    курсовая работа [504,5 K], добавлен 10.04.2008

  • Основные принципы работы с Macromedia Flash, структура программы, использование векторной графики, передача данных в потоковом режиме в Macromedia Flash, разделение данных и их представление. Разработка макета, информационной структуры и дизайна сайта.

    дипломная работа [394,3 K], добавлен 12.07.2010

  • Программа Flash компании Macromedia. Создание обучающей системы по Macromedia Flash 7. Структура программы Flash. Базовые моменты, подлежащие описанию для включения их в обучающую систему, реализованную в виде web-узла. Реализация обучающей системы.

    курсовая работа [23,3 K], добавлен 21.02.2009

  • Кодування відео у Flash. Кодек Sorenson Spark. Параметри цифрового відео. Використання імпортованих кліпів. Профілі діалогового вікна Wizard. Редагування кліпу, що імпортується засобами Flash. Macromedia Flash Video. Групи елементів Track options.

    контрольная работа [301,8 K], добавлен 28.06.2011

  • Назначение и разновидности постоянных запоминающих устройств (ПЗУ). Конструкция и виды полупроводниковых ПЗУ. История разработки и типы Flash-памяти, ее программирование и структурная организация. Характеристика современных стандартов карт памяти.

    презентация [933,6 K], добавлен 11.12.2013

  • Создание тестовой программы используя flash-технологии, Action-скрипт. Характеристика и принципы работы в программе Macromedia Flash 7 MX. Использование панели Actions-скрипт. Создание и оформление теста с помощью программы Macromedia Flash.

    курсовая работа [614,0 K], добавлен 10.04.2008

  • Основи, типові функції і настройка інтерфейсу Flash. Формати статичної графіки, робота з кольором та текстом. Бібліотеки та провідник Flash. Публікація і експорт статичної графіки. Покадрова та трансформаційна анімації. Засоби відладки ActionScript.

    дипломная работа [89,8 K], добавлен 02.05.2009

  • Сравнение языка Php с другими языками программирования web-приложений. Язык разметки гипертекстовых страниц Html. Технология Macromedia Flash, её преимущества и недостатки. Этапы создания флеш-сайта, руководство пользователя и листинг программы.

    дипломная работа [2,3 M], добавлен 04.10.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.