реклама на сайте
подробности

 
 
> Защита Flash из программы, Как защитить Flash прямо в коде программы?
AndreyKeil
сообщение Mar 12 2012, 12:59
Сообщение #1


Частый гость
**

Группа: Свой
Сообщений: 96
Регистрация: 16-11-05
Из: г.Екатеринбург
Пользователь №: 10 930



Доброго времени суток всем!
Вопрос, думаю понятен из темы. В качестве примера взял образец кода из библиотеки версии "STM32F10x_StdPeriph_Lib_V3.5.0".
Проц STM32F103T8 тактируется от внешнего кварца. Нужно записать защиту в Option-байты. Опытным путем установил,при попытке записи в регистр OB->RDP процессор зависает.
Код
      /* Restore the last read protection Option Byte value */
             OB->RDP = (uint16_t)rdptmp;

У кого какие мысли по этому поводу?
Прикрепленные файлы
Прикрепленный файл  asd.zip ( 1.8 килобайт ) Кол-во скачиваний: 22
 
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
AndreyKeil
сообщение Mar 12 2012, 19:08
Сообщение #2


Частый гость
**

Группа: Свой
Сообщений: 96
Регистрация: 16-11-05
Из: г.Екатеринбург
Пользователь №: 10 930



В этой программе присутствует и запись в основную флеш. При этом, код расположен также во флеши. Все работает прекрасно, не глючит. laughing.gif
Там странная команда присутствует:
Цитата
OB->RDP = (uint16_t)rdptmp;

При выполнении этой команды вся флеш стирается... wacko.gif
В переменной rdptmp находится число 0xA5.
Go to the top of the page
 
+Quote Post
Sagittarius
сообщение Mar 12 2012, 19:43
Сообщение #3


Местный
***

Группа: Свой
Сообщений: 207
Регистрация: 26-01-06
Из: СПб
Пользователь №: 13 659



Цитата(AndreyKeil @ Mar 12 2012, 22:08) *
В этой программе присутствует и запись в основную флеш. При этом, код расположен также во флеши. Все работает прекрасно, не глючит. laughing.gif
Там странная команда присутствует:

При выполнении этой команды вся флеш стирается... wacko.gif
В переменной rdptmp находится число 0xA5.

странно это
http://www.st.com/internet/com/TECHNICAL_R.../CD00283419.pdf
Flash Programming Manual на STM32F1xxx, страница 10

During a write operation to the Flash memory, any attempt to read the Flash memory will
stall the bus. The read operation will proceed correctly once the write operation has
completed. This means that code or data fetches cannot be made while a write/erase
operation is ongoing.

если посмотреть отладчиком то где будет выполняемый код по записи в основную флеш?
Если все в IAR то какой это проект в примерах? интересно было бы глянуть что там и как работает.

Go to the top of the page
 
+Quote Post



Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 20th July 2025 - 21:30
Рейтинг@Mail.ru


Страница сгенерированна за 0.01364 секунд с 7
ELECTRONIX ©2004-2016