Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Зашита прошивки в STM32F4*
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
Allregia
Что нужно сделать, чтобы нельзя было считать программу из процессора?
В 0-м секторе у меня сидит бутлоадер, он грузит программу в верхние сектора.
Там где сидит бутлоадер, я так понимаю, надо поставить защиту от записи, а остальным что делать?
Если я поставлю уровень1 на чтение, сохраниться ли доступ через JTA/SWD и через внутренний boot процессора?

P.S. Вчера был курьезный случай - случайно, при инициализации, скомандовал всему портуА - Input Pulldown.
после чего JLink через SWD перестал видеть процессор. Я сначала подумал JLink сгорел, взял другой - тоже самое.
потом подумал что как-то убил проц (не весь конечно, т.. программа работала, а только ножки SWD - это ыло на макетке, врох проводов, подумал что могло +9в от которого все питалось коротнуть на SWD.

А потом переключил джампер на Boot - и JLink увидел проц, я его стер, залил другой программу и все ОК.

Мне это не очень понятно - я ведь не переключал AF, поэтому думал что PA13, PA14 остануться быть SWD невзирая на установку INP+PullDn.
Aner
Внимательно почитайте опции протекта памяти программы.
Allregia
Цитата(Aner @ Jun 16 2013, 00:18) *
Внимательно почитайте опции протекта памяти программы.


Читал, но не все понял.
Если можете - обьясните.
Axel
Цитата(Allregia @ Jun 16 2013, 01:26) *
Читал, но не все понял.

А нигде и не написано, что настройка пинов связана их функциями. Вы можете, например, подцепить "пулы" в режиме АЦП. Конфигурирование пинов - как правило "дело рук самих утопающих"...
Непомнящий Евгений
Цитата(Allregia @ Jun 15 2013, 15:27) *
Если я поставлю уровень1 на чтение, сохраниться ли доступ через JTA/SWD и через внутренний boot процессора?

через ваш бутлоадер (запускаемый из флеши) -сохранится. Внутренний бут - это что? Встроенный? Записать получится (со стиранием всего флеша), вычитать - нет.
Через отладочные интерфейсы - нет (update - точнее - да, но перед записью придется стереть весь проц) (собственно, а зачем? Локи настраиваются после заливки рабочей прошивки)
Allregia
Цитата(Axel @ Jun 17 2013, 05:47) *
А нигде и не написано, что настройка пинов связана их функциями. Вы можете, например, подцепить "пулы" в режиме АЦП. Конфигурирование пинов - как правило "дело рук самих утопающих"...


А разве при аналоговом входе пуллы не блокируются?

Цитата
7.3.12 Analog configuration
When the I/O port is programmed as analog configuration:
● The output buffer is disabled
● The Schmitt trigger input is deactivated, providing zero consumption for every analog
value of the I/O pin. The output of the Schmitt trigger is forced to a constant value (0).
The weak pull-up and pull-down resistors are disabled


Цитата(Непомнящий Евгений @ Jun 17 2013, 07:45) *
через ваш бутлоадер (запускаемый из флеши) -сохранится. Внутренний бут - это что? Встроенный?


Да. К примеру - переключить boot0 и сконнектиться с РС. Можно ли будет при этом читать прошивку?

Цитата
Записать получится (со стиранием всего флеша), вычитать - нет.
Через отладочные интерфейсы - нет (собственно, а зачем? Локи настраиваются после заливки рабочей прошивки)


Я так и попробовал.
С Level1 у меня было так:
мой бут грузит и записывает во флеш основную прошивку.
JTAG/SWD я в буте выключаю - присоединиться к процу нельзя, JLINK проца не видит.

Ставлю boot0 в 1 - JLINK проц видит, но ничего сделать не может, ни записать новый бут, ни отладку, даже стереть весь проц не может.
Возможности стирания Option Byte не нашел.
Написал вместо рабочей программы "блоху" - программку. которая стирает WRP и переводит RDP с 1-го на 0-1 уровень.
По идее, должно было привести к стиранию всего чипа.
На деле - фигфам, не знаю что оно там внутри сделало, но подступиться к чипу уже было никак, и мой бут не работал.
Подключил вместо JKINK'а - STLINK Discovery, та же фигня.
Я честно говоря, уже думал "хана чипу", надо перепаивать на новый.
Но тут меня смутили некоторые надписи в прграмме StLink - она явно не очень понимала мой проц (F407), и на стирание Option Bytes проц никак не реагировал.
Затем я скачал с сайта СТ последнюю версию - она все поняла, нарисовала мне на экране всю раскладку по WRP/RDP, затем прекрасно все это стерла вместе со всем флешом и я получил девственно чистый рабочий проц. Перепаивать не понадобилось sm.gif


Осталась небольшая непонятно с RDP Level2 - как я понял, это уже "одноразово" и "деструктивно", т.е. "назад хода нет" - стереть такой option byte уже нельзя никак, т.е. оно как ОТР ?
И при его установке, бут уже не сможет переписать фирмваре?
Непомнящий Евгений
Цитата(Allregia @ Jun 17 2013, 11:21) *
Да. К примеру - переключить boot0 и сконнектиться с РС. Можно ли будет при этом читать прошивку?

Нет, с чего вдруг? Иначе какой смысл в защите от чтения?

Цитата
JTAG/SWD я в буте выключаю - присоединиться к процу нельзя, JLINK проца не видит.

А зачем вы так делаете?

Цитата
Возможности стирания Option Byte не нашел.

В сеггере есь соответствующй пункт меню, что у вас - не знаю.

Цитата
Осталась небольшая непонятно с RDP Level2 - как я понял, это уже "одноразово" и "деструктивно", т.е. "назад хода нет" - стереть такой option byte уже нельзя никак, т.е. оно как ОТР ?
И при его установке, бут уже не сможет переписать фирмваре?

бут то сможет, а вот сам бут вы уже не пропишите.
Allregia
Цитата(Непомнящий Евгений @ Jun 17 2013, 11:59) *
Нет, с чего вдруг? Иначе какой смысл в защите от чтения?


Ну и слава богуsm.gif

Цитата
А зачем вы так делаете?


См. первое сообщение.
Случайно так получилось - я в начале программы поставил весь порт А в input+pulldown, и SWD (А13,А14) перестало работать

Цитата
В сеггере есь соответствующй пункт меню, что у вас - не знаю.


Наверное его тоже, как и STLink, надо обновить, у меня V4.14c

Цитата
бут то сможет, а вот сам бут вы уже не пропишите.


ОК, я правильно понимаю - если я хочу оставить возможность перешивать бут, то надо ставить Level1 и WRP на бут.
Бут естественно перешивать со стиранием всего, включая options.
Если же я не хочу оставлять возможность перепрошивать бут, то можно ставить Level2 ?
Непомнящий Евгений
Цитата(Allregia @ Jun 17 2013, 14:48) *
ОК, я правильно понимаю - если я хочу оставить возможность перешивать бут, то надо ставить Level1 и WRP на бут.
Бут естественно перешивать со стиранием всего, включая options.
Если же я не хочу оставлять возможность перепрошивать бут, то можно ставить Level2 ?

Вроде как да. Лично я вообще не вижу особого смысла в Level2. Устройство может приехать к вам на ремонт, вы можете захотеть обновить загрузчик. При Level2 придется перепаивать процессор...
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.