|
IAP программирование Option Bytes (STM32F1) |
|
|
|
 |
Ответов
|
Jan 16 2015, 11:37
|
Профессионал
    
Группа: Свой
Сообщений: 1 468
Регистрация: 28-03-10
Из: Беларусь
Пользователь №: 56 256

|
Да, в доке написано, что при стирании Option Bytes включается Read Protection, а при выключении этой защиты стирается флэш. Однако проведя множество экспериментов удалось определить, что функция FLASH_EraseOptionBytes() работает как сказано в описании и не включает защиту от чтения при стирании Option Bytes, но есть один момент.
if(FLASH_GetWriteProtectionOptionByte() != ~FLASH_WRProt_Pages0to1) { FLASH_Unlock(); FLASH_EraseOptionBytes(); FLASH_EnableWriteProtection(FLASH_WRProt_Pages0to1); NVIC_SystemReset();}
Приведенный выше листинг работает правильно и в результате мы получаем выключенную защиту от чтения и включенную защиту от записи. Правда немного смущает, что: 1) в дебагере IAR после NVIC_SystemReset() указатель не прыгает в Reset, а продолжает дальше выполнение кода (Почему?) 2) в остальных ячейках nWRP1-nWRP3 (в nWRP0 и WRP0 все верно) записаны 0xFF, хотя по идее там автоматом должна выставляться инверсия 0x00.
И самый изюм всего, если написать неверное условие (например, if(FLASH_GetWriteProtectionOptionByte() != 0), то на NVIC_SystemReset(); дебаг прекращается и мы ловим защиту от чтения. Как это можно объяснить? Спасибо.
|
|
|
|
|
Jan 17 2015, 11:34
|
Гуру
     
Группа: Свой
Сообщений: 2 724
Регистрация: 14-05-07
Из: Ярославль, Россия
Пользователь №: 27 702

|
Цитата(Alt.F4 @ Jan 16 2015, 14:37)  Да, в доке написано, что при стирании Option Bytes включается Read Protection, а при выключении этой защиты стирается флэш. Однако... Попробуйте после этого временно сбросить питание и получите Level1) Цитата(Alt.F4 @ Jan 16 2015, 14:37)  после NVIC_SystemReset() указатель не прыгает в Reset, а продолжает дальше выполнение кода (Почему?) А кто обещал, что NVIC_SystemReset куда-то "прыгает"? Это всего лишь возможность на некоторое время просадить NRST-пин на землю. Если у вас там жесткая "1", то RESETа не будет)
|
|
|
|
Сообщений в этой теме
Alt.F4 IAP программирование Option Bytes (STM32F1) Jan 15 2015, 07:31 Сергей Борщ Цитата(Alt.F4 @ Jan 15 2015, 09:31) Никак... Jan 15 2015, 08:40 Alt.F4 Хочется использовать стандартную библиотеку, чтобы... Jan 15 2015, 09:42 Сергей Борщ Цитата(Alt.F4 @ Jan 15 2015, 11:42) Хочет... Jan 15 2015, 10:54 Сергей Борщ Цитата(Alt.F4 @ Jan 16 2015, 13:37) функц... Jan 16 2015, 12:32 ViKo А как запрограммировать Option Bytes средствами са... Jan 16 2015, 12:43 Сергей Борщ Цитата(ViKo @ Jan 16 2015, 14:43) средств... Jan 16 2015, 12:53  ViKo Цитата(Сергей Борщ @ Jan 16 2015, 15:53) ... Jan 16 2015, 13:48 Alt.F4 ЦитатаПоздравляю, вы нашли брешь в защитеЭто скоре... Jan 16 2015, 12:55 Сергей Борщ Цитата(Alt.F4 @ Jan 16 2015, 14:55) Это с... Jan 16 2015, 13:52  ViKo Цитата(Сергей Борщ @ Jan 16 2015, 16:52) ... Jan 16 2015, 13:56   Сергей Борщ Цитата(ViKo @ Jan 16 2015, 15:56) Я задал... Jan 16 2015, 14:32    ViKo Цитата(Сергей Борщ @ Jan 16 2015, 17:32) ... Jan 16 2015, 14:39     Сергей Борщ Цитата(ViKo @ Jan 16 2015, 16:39) Какой S... Jan 16 2015, 14:41      ViKo Цитата(Сергей Борщ @ Jan 16 2015, 17:41) ... Jan 16 2015, 15:07     Сергей Борщ Цитата(ViKo @ Jan 16 2015, 16:39) От попа... Jan 16 2015, 14:56 Alt.F4 Код/**
* @brief Erases the FLASH option bytes.
... Jan 16 2015, 14:24 Alt.F4 Интересную вещь еще заметил, если стоит защита от ... Jan 16 2015, 14:50 Сергей Борщ Цитата(Alt.F4 @ Jan 16 2015, 16:50) Это т... Jan 16 2015, 15:11 ViKo И что теперь, не стереть flash?! Шо за хня... Jan 16 2015, 15:28 ViKo А если создать в своей программе функцию стирания ... Jan 16 2015, 17:02 Сергей Борщ Цитата(ViKo @ Jan 16 2015, 19:02) Жду сов... Jan 16 2015, 21:22 toweroff Цитата(ViKo @ Jan 16 2015, 20:02) А если ... Jan 17 2015, 00:57  ViKo Цитата(toweroff @ Jan 17 2015, 03:57) есл... Jan 17 2015, 06:36 ViKo Пошарил по Интернету... какая, однако, мощная защи... Jan 16 2015, 22:08 Alt.F4 ЦитатаПопробуйте после этого временно сбросить пит... Jan 17 2015, 16:17 Сергей Борщ Цитата(Alt.F4 @ Jan 17 2015, 18:17) В дру... Jan 19 2015, 13:20 Alt.F4 Сергей Борщ, не угадали, когда флэш стирается или ... Jan 19 2015, 22:04 Сергей Борщ Цитата(Alt.F4 @ Jan 20 2015, 00:04) Кстат... Jan 19 2015, 23:31 Alt.F4 По всей видимости мне надо видео снять, как эта ма... Jan 20 2015, 07:08 Сергей Борщ Цитата(Alt.F4 @ Jan 20 2015, 09:08) По вс... Jan 20 2015, 08:25 Alt.F4 ЦитатаСнимите. Только шагайте не по исходнику, а п... Jan 20 2015, 15:52 Alt.F4 Если кому-нибудь интересно, то продолжение здесь. Jan 21 2015, 19:33
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|
|