Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту


 
Опции темы
Непрочитано 21.05.2013, 11:02  
sanstan
Прописка
 
Регистрация: 06.03.2007
Сообщений: 144
Сказал спасибо: 22
Сказали Спасибо 10 раз(а) в 10 сообщении(ях)
sanstan на пути к лучшему
По умолчанию Защита Flash STM32 от копирования

Здравствуйте.
Как реализовать защиту от копирования флеш на STM32 ?
Реклама:
sanstan вне форума  
Непрочитано 21.05.2013, 12:10  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Запускаешь STM32 ST-LINK Utility и в Option Bytes активируешь Read Out Protection

Чтобы потом перепрошить залоченный чип, вначале здесь же снимаешь эту защиту, и чип автоматом очистится
niXto вне форума  
Эти 3 пользователя(ей) сказали Спасибо niXto за это сообщение:
alberio (24.05.2013), sanstan (21.05.2013), Slava-martyn (26.11.2022)
Непрочитано 28.07.2014, 10:20  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Сохранял нужные данные в последней странице! после установки защиты утилитой STM32 ST-LINK Utility сохранение работать перестало! Я считал что внутри программы это возможно! После того как убрал галки с моей страницы все заработало! Так и должно быть? растолкуйте!
neyvert вне форума  
Непрочитано 28.07.2014, 11:41  
Easyrider83
Гуру портала
 
Аватар для Easyrider83
 
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
Easyrider83 на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Как программно защитить я так и не разобрался.
Easyrider83 вне форума  
Непрочитано 28.07.2014, 12:18  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

И еще такой затык на F103C6 при попытке сохранения нужных параметров во флеш!
код такой:
void mainFL(void)//стирание и запись 1 страницы флеш
{
// Разблокировка FLASH
FLASH-›KEYR = FLASH_KEY1;
FLASH-›KEYR = FLASH_KEY2;

//Стирание одной страницы во FLASH
while((FLASH-›SR&FLASH_SR_BSY));//ждем когда можно стирать или писать память.
FLASH-›CR |= FLASH_CR_PER; //Устанавливаем бит стирания одной страницы
FLASH-›AR = Page_31_0; // Задаем адрес страницы
FLASH-›CR |= FLASH_CR_STRT; // Запускаем стирание
while((FLASH-›SR&FLASH_SR_BSY)); //Ждем пока страница сотрется.
FLASH-›CR &= ~FLASH_CR_PER; //Сбрасываем бит стирания одной страницы обратно
FLASH-›CR |= FLASH_CR_PG; //Разрешаем программирование FLASH

while((FLASH-›SR&FLASH_SR_BSY));
*(__IO uint16_t*)(Page_31_0 ) = nomer_avto_sot_tmp;
while((FLASH-›SR&FLASH_SR_BSY));
*(__IO uint16_t*)(Page_31_1 ) = nomer_avto_des_tmp;
while((FLASH-›SR&FLASH_SR_BSY));
*(__IO uint16_t*)(Page_31_2 ) = nomer_avto_ede_tmp;
while((FLASH-›SR&FLASH_SR_BSY));
FLASH-›CR &= ~FLASH_CR_PG;//Запрещаем программирование FLASH
FLASH-›CR |= FLASH_CR_LOCK;//Блокировка FLASH
}
При чем при отладке все работает ОК! Без отладки балалайка, проходит только стирание записи нет!
перемещая точку останова определил что FLASH-›CR &= ~FLASH_CR_PER; не сбрасывает или не успевает сбрасывать бит
попытался поставить небольшую паузу не помогло! тогда прописал эту строчку дважды! и о чудо все заработало!
С чем это может быть связано? растолкуйте кто в курсе! А сперва ведь работало, даже не успел заметить когда перестало!
neyvert вне форума  
Непрочитано 28.07.2014, 15:16  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Записывай в регистр константу и всё будет работать без чудес
У меня всё сразу заработало

Программно тоже всё элементарно работает... Без СПЛ естественно
niXto вне форума  
Сказали "Спасибо" niXto
neyvert (28.07.2014)
Непрочитано 28.07.2014, 16:10  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

В регистр FLASH-›CR ?
neyvert вне форума  
Непрочитано 28.07.2014, 16:18  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Да
Я вообще во все регистры пишу константы а у ф1 и старше некоторые биты изменяю битбандингом... Потому что многие регистры по своей сути - volatile, и за время чтения-модификации-записи некоторые другие биты регистра успевают аппаратно измениться... Не сразу конечно - раз в сутки или неделю, и от этого ловля глюка становится вообще увлекательной
niXto вне форума  
Непрочитано 28.07.2014, 16:29  
neyvert
Прописка
 
Регистрация: 29.06.2010
Сообщений: 104
Сказал спасибо: 14
Сказали Спасибо 9 раз(а) в 7 сообщении(ях)
neyvert на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

Cделал так FLASH-›CR = 0x00;
В отладчике работает, без не работает

прописал дважды FLASH-›CR = 0x00;
FLASH-›CR = 0x00;
не работает!

вернул двойную запись
FLASH-›CR &= ~FLASH_CR_PER;
FLASH-›CR &= ~FLASH_CR_PER;
Все начинает работать! полтергейст какой то!
neyvert вне форума  
Непрочитано 28.07.2014, 18:02  
niXto
Почётный гражданин KAZUS.RU
 
Аватар для niXto
 
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
niXto на пути к лучшему
По умолчанию Re: Защита Flash STM32 от копирования

A page of the Flash memory can be erased using the Page Erase feature of the FPEC. To
erase a page, the procedure below should be followed:
● Check that no Flash memory operation is ongoing by checking the BSY bit in the
FLASH_CR register
● Set the PER bit in the FLASH_CR register
● Program the FLASH_AR register to select a page to erase
● Set the STRT bit in the FLASH_CR register
● Wait for the BSY bit to be reset
Read the erased page and verify

И попробуй писать 0x0000
niXto вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Изучаем STM32 Cortex M3 EugVor ARM 6166 19.02.2024 18:22
Символьный ЖКИ заглючил kvark85 Микроконтроллеры, АЦП, память и т.д 18 15.02.2011 17:28
Программирование NOR FLASH ST_Senya Микроконтроллеры, АЦП, память и т.д 1 01.10.2010 22:18
Программатор ПЗУ, Flash, МК и прочего. Elya Поиск схем. Делимся схемами 2 28.08.2009 20:01
Защита флеш-памяти от копирования daddy Микроконтроллеры, АЦП, память и т.д 5 21.04.2009 16:53


Часовой пояс GMT +4, время: 19:00.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot