28.07.2014, 18:53
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
Да со стиранием как раз проблем то и нет стирание походит проверкой бита
while((FLASH-›SR&FLASH_SR_BSY));
а вот следующая строка FLASH-›CR &= ~FLASH_CR_PER; бит не сбрасывает, попробовал 0х0000 тоже не работает, а раз этот бит не сбрасывается то и следующий бит который разрешает запись во флеш не устанавливается и запись не происходит!
FLASH-›CR |= FLASH_CR_PG;
Если ставлю точку останова на записи FLASH-›CR = 0x0000;
а дальше пошагово, работает отлично!
но стоит точку останова перенести буквально на следующую строку
то FLASH-›CR = 0x0000; уже не работает!
пробовал делать контроль этого бита чтобы ждало пока бит не сбросится программа виснет на контроле! Может там какие нибудь ограничения по тактируемой частоте есть?
Вот в документации нарыл не могу понять на что это влияет!
Note: 1 These options should be used in accordance with the Flash memory access time. The wait
states represent the ratio of the SYSCLK (system clock) period to the Flash memory access
time:
zero wait state, if 0 ‹ SYSCLK ‹= 24 MHz
one wait state, if 24 MHz ‹ SYSCLK ‹= 48 MHz
two wait states, if 48 MHz ‹ SYSCLK ‹= 72 MHz
В моем случае этот регистр (FLASH_ACR) настроен на среднюю строчку.
Попробовал настроить на первую, не работает вообще.
На третью все по старому!
Последний раз редактировалось neyvert; 28.07.2014 в 22:24.
|
|
|
|
29.07.2014, 08:43
|
|
Почётный гражданин KAZUS.RU
Регистрация: 24.03.2007
Сообщений: 1,360
Сказал спасибо: 85
Сказали Спасибо 618 раз(а) в 373 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
Сообщение от neyvert
|
а дальше пошагово, работает отлично!
но стоит точку останова перенести буквально на следующую строку
то FLASH-›CR = 0x0000; уже не работает!
|
А может причина в том, что код во флэше? Может надо его в RAM перенести?
И вроде слышал, что для F10xx нужно HSI включить (но не уверен, а в даташит лезть лениво).
|
|
|
|
29.07.2014, 09:17
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 919
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
Сообщение от niXto
|
Программно тоже всё элементарно работает... Без СПЛ естественно
|
А пример можно?
|
|
|
|
29.07.2014, 09:25
|
|
Прописка
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
Сообщение от pambaru
|
А может причина в том, что код во флэше? Может надо его в RAM перенести?
И вроде слышал, что для F10xx нужно HSI включить (но не уверен, а в даташит лезть лениво).
|
Так с двойной записью
FLASH-›CR &= ~FLASH_CR_PER;
FLASH-›CR &= ~FLASH_CR_PER;
Все работает прекрасно!
|
|
|
|
12.04.2016, 21:11
|
|
Вид на жительство
Регистрация: 09.12.2009
Адрес: Россия, Тула
Сообщений: 377
Сказал спасибо: 192
Сказали Спасибо 156 раз(а) в 99 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
Если кто еще не знает как прошивке "самозапечататься", сам только сегодня озадачился:
http://tqfp.org/stm32/zashita-ot-sch...vki-stm32.html
|
|
|
|
17.04.2016, 12:13
|
|
Прописка
Регистрация: 08.10.2009
Сообщений: 101
Сказал спасибо: 2
Сказали Спасибо 11 раз(а) в 10 сообщении(ях)
|
Re: Защита Flash STM32 от копирования
У STM32F4 Level 2 ставится один раз и на всегда
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 11:21.
|
|