2016-11-08 5 views
0

Я хочу, чтобы мой код не был зачитан, и я видел в Интернете, что у STM32 есть функция для этого. Однако мне не удалось найти какой-то пример кода, а также я не понимаю, как его использовать?STM32L0 Прочтите код примера защиты?

  • Должен ли я поместить функцию считывания READ_PROTECTION() в начале перед вызовом моего основного кода? или
  • Должен ли я разместить его в конце после вызова моего основного кода?

Примерный код для этого был бы действительно полезен для меня.

Спасибо.

+1

[Это примечание к применению ST] (http://www.st.com/content/ccc/resource/technical/document/application_note/89/12/c5/e2/0d/0e/45/7f/DM00186528. pdf/files/DM00186528.pdf/jcr: content/translations/en.DM00186528.pdf) описывает все, что вам нужно. – LPs

+0

Привет @LPs, уровень защиты от чтения 0/1/2, похоже, хорошо соответствует мне, я видел встроенную функцию, такую ​​как _FLASH_OB_RDPConfig (OB_RDP_Level_1); _, которая выполняет считывание защиты, но необоснованно я не могу найти хороший пример для использования этой функции. – bienle

+0

Итак, вы ищете готовое решение. Вам нравится легко выиграть ...;) Вы должны попытаться улучшить свои навыки, понимая использование этой функции и попытаться написать что-то самостоятельно. В случае возникновения проблемы вы можете задать вопрос о SO. – LPs

ответ

1

Флеш-память STM32 состоит из двух областей памяти: первая защищена от записи, вторая защищена от записи. См. this для справки. Все, что вам нужно, это написать правильный скрипт компоновщика, который загружает ваш код в правильную область памяти и устанавливает правильные байты параметров. Как это сделать here. И как включить файл компоновщика в eclipse, см. here.

EDT: Here является примером того, как установить опционные байты непосредственно из вашего кода с функциями, упомянутых в сообщении (см clive1 поста) эти функции кажутся частью mbed библиотеки (см this для справки). Этот код должен быть выполнен с вашей функцией main. Here - это полезная информация о программировании байтов опций из кода контроллера.

+0

Привет, @ nopasara, я быстро посмотрел ссылки, которые вы указали выше, их довольно сложно понять, так как у меня нет хороших базовых знаний в скрипте Линкера. Я искал в Интернете, и в STM32 есть встроенная функция для достижения уровня защиты 0/1/2, например _FLASH_OB_RDPConfig (OB_RDP_Level_1); _. Эта функция, похоже, хорошо заполняет то, что мне нужно, к сожалению, нет примера, как их использовать. – bienle

1

Вам не нужно добавлять его в код, поскольку код может измениться или вы можете просчитать сектора, которые не читаются. После мигания вашего кода вы можете использовать ST Link utility, чтобы выбрать конкретный раздел флеш-памяти и установить защиту для вашего кода.

+0

Как использовать OP для использования STM32 ST-Link Utility? –

+0

Утилита ST Link предоставляет вам графический интерфейс для настройки различных защит. по утилите ST link, вы можете выбрать каждый сектор флэш-памяти и назначить ей различные защиты. Как и в секторе 1: нет защиты, сектор 2: защита уровня 1 и т. Д. –

1

Вы можете включить или отключить защиту от записи с помощью кода. Но я рекомендую вместо этого использовать программное обеспечение «stm32 Flash loader» или «утилита ST Link». см. Учебник here. Чтобы отключить функцию «Отключить защиту», просто отключите Flash.

Смежные вопросы