Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Кармин Новиелло - Освоение STM32.pdf
Скачиваний:
2751
Добавлен:
23.09.2021
Размер:
47.68 Mб
Скачать

Управление Flash-памятью

561

Начальная загрузка из загрузчика в системной памяти возможна, но все команды недоступны, кроме Get, GetID и GetVersion. Обратитесь к AN2606.

JTAG, SWV (single-wire viewer), ETM и граничное сканирование отключены.

Пользовательские байты конфигурации больше не могут быть изменены.

При начальной загрузке из Flash-памяти разрешается доступ (чтение, стирание и программирование) к Flash-памяти и резервному SRAM из пользовательского кода.

Уровень 2 защиты от чтения памяти является необратимой операцией. Когда Уровень 2 активирован, уровень защиты не может быть снижен до Уровня 0 или Уровня 1. Просто еще раз уточню: это означает, что вы больше не сможете программировать и отлаживать свой микроконтроллер.

Таблица 4 резюмирует влияние заданного уровня защиты на Flash-память, на байты конфигурации и на память OTP, когда к этим ячейкам памяти обращается интерфейс отладчика, на предварительно запрограммированный загрузчик, на код, помещенный в SRAM и во Flash-память. Как видите, Уровень 2 не препятствует записи пользовательского кода во Flash-память (например, пользовательский загрузчик все еще может программировать микроконтроллер).

Таблица 4: Влияние уровней защиты от чтения на выделенную память NVM

21.4. Дополнительные памяти OTP и EEPROM

Более современные и мощные микроконтроллеры STM32 предоставляют однократно программируемую (One-Time Programmable, OTP) память. Это специальная память размером от 512 до 1024 Байт с уникальной характеристикой: когда бит этой памяти устанавливается из 1 в 0, его уже невозможно восстановить до 1. Это означает, что данная область является не стираемой. Такая область памяти особенно полезна для хранения соответствующих параметров конфигурации, связанных с конкретным устройством, таких как серийные номера, MAC-адрес, значения калибровки и так далее. Распространённая практика в электронной промышленности состоит в том, чтобы производить устройства с различными возможностями, начиная с одной и той же печатной платы или даже с одной и той же законченной платы. Данная область может также использоваться для хранения параметров конфигурации, используемых микропрограммой для адаптации возможностей платы.

Управление Flash-памятью

562

Область OTP разделена на N блоков данных OTP размером 32 Байт и один блок блокировки OTP (Lock block) из N Байт. Блоки данных и блокировки не могут быть стерты. Блок блокировки содержит N Байт LOCKBi (0 ≤ i ≤ N-1) для блокировки соответствующего блока данных OTP (блока от 0 до N). Каждый блок данных OTP может быть запрограммирован до тех пор, пока не будет запрограммировано значение 0x00 в соответствующем байте блокировки OTP (очевидно, отдельный бит, уже установленный в 0, не может быть восстановлен в 1). Байты блокировки должны содержать только значения 0x00 и 0xFF, в противном случае байты OTP могут учитываться неправильно.

Таблица 5: Организация памяти OTP в микроконтроллере STM32F401RE

В таблице 5 показана организация памяти OTP в микроконтроллере STM32F401RE, и она взята из соответствующего справочного руководства. Как видите, данный микроконтроллер предоставляет 16 блоков данных OTP общим объемом 512 Байт. Шестнадцать байтов блокировки позволяют заблокировать соответствующие блоки данных

OTP.

Другой распространенной практикой в цифровой электронике является использование выделенной и часто внешней памяти EEPROM для хранения параметров конфигурации. Память EEPROM имеет несколько преимуществ по сравнению с Flash-памятью:

Каждый ее блок можно стирать по отдельности.

Каждый блок можно стирать до 1000000 и более раз (Flash-память ограничена 100000 циклами стирания).

Номинальный срок службы обычно выше, чем у Flash-памяти.

Они обычно дешевле, чем Flash-памяти (NOR и NAND).

Существуют памяти EEPROM, способные работать при температурах до 200°C.

Однако главный недостаток памятей EEPROM заключается в том, что они обычно намного медленнее Flash-памяти и занимают дополнительное место на печатной плате.

Если ваша разработка направлена на снижение стоимости спецификации компонентов, то ST предоставляет несколько руководств по применению, в которых описывается, как эмулировать память EEPROM с помощью встроенной Flash-памяти STM32 (название этого руководства по применению “EEPROM emulation in STM32Fxx microcontrollers” (Эму-

ляция EEPROM в микроконтроллерах STM32Fxx)). В конце концов, несколько микроконтроллеров серии STM32L предоставляют интегрированную EEPROM. Для получения дополнительной информации обратитесь к техническому описанию вашего микроконтроллера.