STM32F1xx:

 

1. Защита:

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

Зернистость защиты от записи:

● четыре страницы для устройств с низкой и средней плотностью

● две страницы для устройств с высокой плотностью и связностью.

 

1.1 Защита от чтения:

Защита чтения активируется путем установки байт опций RDP, а затем, применяя системный сброс для перезагрузки нового байта опций RDP.

Прим.: Если защита чтения установлена, когда отладчик все еще подключен через JTAG / SWD, примените POR (сброс при включении) вместо сброса системы (без подключения отладчика).

После того как запрограммирован защитный байт:

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

● Страницы 0-3 (для устройств с низкой и средней плотностью) или страницы 0-1 (для устройств с высокой плотностью и связностью) автоматически защищены от записи. Остальная часть памяти может быть запрограммирована кодом, выполняемым из основной флэш-памяти (для IAP, постоянного хранения и т. Д.), Но она защищена от записи / стирания (но не против стирания массы) в режиме отладки или при загрузке с встроенный SRAM.

● Все функции, связанные с загрузкой кода и выполнением кода из встроенного SRAM, по-прежнему активны (JTAG / SWD и загрузка из встроенного SRAM), и это можно использовать для отключения защиты чтения. Когда байт опции защиты чтения изменяется на значение защиты памяти, выполняется массовое стирание.

● Доступ к основной флэш-памяти через код, выполняемый с SRAM или FSMC, и доступ к Flash через чтение данных с использованием DMA1, DMA2, JTAG, SWV (просмотрщик последовательного канала), SWD (отладка последовательного интерфейса), ETM и сканирование границ не допускаются.

Состояние защиты от флэш-памяти:

Значение байта RDP Значение дополнения RDP Состояние защиты чтения 0xFF 0xFF защищенный RDPRT Дополнение байт RDP Не защищен Любое значение Не значение дополнения RDP защищенный

Прим.: Удаление байта опции не приведет к стиранию массы, поскольку стертое значение (0xFF) соответствует защищенному значению.

Снятие защиты:

Чтобы отключить защиту чтения от встроенной SRAM:

● Удалите всю область байта опций. В результате код защиты чтения (RDP) будет равен 0xFF. На этом этапе защита чтения по-прежнему включена.

● Запрограммируйте правильный код RDP 0x00A5 для снятия защиты с памяти. Эта операция сначала вынуждает Mass Erase основной флэш-памяти.

● Сбросьте устройство (POR Reset), чтобы перезагрузить байты опций (и новый код RDP) и отключить защиту чтения.

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

 

1.2 Защита от записи:

В высокой плотности и устройств подключения линии, начиная со страницы 0 до 61, защита от записи осуществляется с зернистостью двух страниц одновременно. Оставшийся блок памяти (со страницы 62 на стр. 255 в устройствах с высокой плотностью и со стр. 62 на стр. 127 в устройствах линии связи) сразу защищен от записи.

В устройствах с низкой и средней плотностью защита от записи реализуется с гранулярностью по четыре страницы за раз.

Если на защищенной странице выполняется программа или операция стирания, флэш-память возвращает флаг ошибки защиты в регистре состояния флэш-памяти (FLASH_SR).

Защита записи активируется путем настройки байтов опции WRP [3:0], а затем применяя системный сброс для перезагрузки новых байтов опций WRPx.

Снятие защиты:

Чтобы отключить защиту от записи, предусмотрены два случая применения:

● Случай 1: защита чтения отключена после защиты от записи:

– Удалите всю область байтов опций, используя бит OPTER во флэш-памяти контрольный регистр (FLASH_CR)

– Запрограммируйте правильный код RDP 0x00A5 для снятия защиты с памяти. Эта операция сначала сделает общий сброс основной флэш-памяти.

– Сбросьте устройство (сброс системы), чтобы перезагрузить байты опций (и новый WRP [3:0] байт) и отключить защиту от записи

● Случай 2: защита чтения поддерживается активной после защиты от записи, полезная для программирования приложений с помощью пользовательского загрузчика:

– Удалите всю область байтов опций, используя бит OPTER во флэш-памяти контрольный регистр (FLASH_CR)

– Сбросьте устройство (сброс системы), чтобы перезагрузить байты опций (и новый WRP [3:0] байт) и отключить защиту от записи.

 

1.3 Опция защиты от записи блока:

Байты опций всегда доступны для чтения и защищаются от записи по умолчанию. Для того, чтобы получить доступ на запись (Программа / Erase) для опционных байтов, последовательность ключей (такой же, как для блокировки) должен быть записан в OPTKEYR. Правильная последовательность ключей дает доступ на запись к байтам опций, и это указывается OPTWRE в установленном регистре FLASH_CR. Доступ к записи может быть отключен путем сброса бит через программное обеспечение.

 

2 Описание байта опций:

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

32-битное слово разделяется следующим образом в байтах опций.

Формат байта опций:

31-24 23-16 15-8 7-0 дополненный байт 1 байт опций 1 дополненный байт 0байт опций 0

Организация этих байтов внутри информационного блока приведена в следующей таблице.

Байты опций могут быть считаны из мест памяти, перечисленных в следующей таблице, или из регистра байта Option (FLASH_OBR).

Прим.: Новые запрограммированные байты опций (пользователь, защита чтения / записи) загружаются после сброса системы.

Организация байт опций:

Address [31:24] [23:16] [15:8] [7:0] 0x1FFF F800 nUSER USER nRDP RDP 0x1FFF F804 nData1 Data1 nData0 Data0 0x1FFF F808 nWRP1 WRP1 nWRP0 WRP0 0x1FFF F80C nWRP3 WRP3 nWRP2 WRP2

 

3 Уникальный идентификатор устройства (96 бит):

Уникальный идентификатор устройства идеально подходит:

● для использования в качестве серийных номеров (например, серийные номера USB-шнуров или другие конечные приложения)

● для использования в качестве ключей безопасности для повышения безопасности кода во флэш-памяти при использовании и объединении этого уникального идентификатора с программными криптографическими примитивами и протоколами перед программированием внутренней флэш-памяти

● активировать безопасные процессы загрузки и т. д.

96-битный уникальный идентификатор устройства предоставляет ссылочный номер, который уникален для любого устройства и в любом контексте. Эти биты никогда не могут быть изменены пользователем. 96-битный уникальный идентификатор устройства также может быть прочитан в отдельных байтах / словах / словах по-разному, а затем конкатенирован с использованием пользовательского алгоритма.

Базовый адрес: 0x1FFF F7E8

 

STMicroelectronics

 

Задать свой вопрос: RussianSemiResearch@ya.ru

 

 
RussianSemiResearch. © 2008-2022.E-mail: RussianSemiResearch@ya.ru