Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: STM32F103RCT6 снятие Read protect
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > ARM
V_M_Luck
Камень STM32F103RCT6.
Есть проект с загрузчиком. Загрузчик располагается по младшим адресам FLASH (16 первых страниц). На старте загрузчик проверяет и в случае необходимости выставляет ReadProtect bit в FLASH_OBR.
Возникла необходимость перезашить загрузчик. Оказалось, что при выставлении ReadProtect bit первые две страницы автоматически становятся write-protected. Что бы снять защиту от записи, необходимо запуститься из ОЗУ, снять ReadProtect, полностью сотрется весь FLASH, перезапуститься. Запуск контроллера произойдет опять из FLASH, а там прошивки уже нет никакой. Дергать ножками BOOT нет возможности.
Возможно как-то можно обойтись без перезапуска всего? Или как-то еще можно разрулить эту проблему?
YAM
Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик.
не забудьте в приложении так-же сделать проверку на загруженность нового загрузчика, иначе все будет крутиться колесом. И, естественно, если что-то произойдет во время записи нового загрузчика, то ой... sm.gif

Фух, сколько букаф написал...
V_M_Luck
Цитата
Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик.

Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно.
Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.
Aner
В чем проблема то? Хочется "снять" прошивку по умному?
... снятие Read protect со стиранием, ... иначе через ОЗУ доступ к Flash и к прошивке. А кому этого хочется? Вот в STM и закрыли эту дверку.
Может у вас другая задача? ...поясните.

QUOTE (V_M_Luck @ Nov 5 2012, 16:22) *
Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно.
Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.

таким образом никак.

QUOTE (YAM @ Nov 5 2012, 16:17) *
Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик.
не забудьте в приложении так-же сделать проверку на загруженность нового загрузчика, иначе все будет крутиться колесом. И, естественно, если что-то произойдет во время записи нового загрузчика, то ой... sm.gif

Фух, сколько букаф написал...

да обходиться все это просто, что вы народ пугаете.
V_M_Luck
Уважаемые!
Я не понимаю ваших ответов. У меня вполне конкретный вопрос, никаких "снятий" прошивок мне не нужно. При проектировании загрузчика в нашем устройстве были допущены неточности. Загрузчик нужно обновить. Если все так просто, поясните как. Если ничего конкретного по теме нет - не флудите.
Aner
Причем тут флуд? На ваш вопрос конкретный ответ.
>Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.
таким образом никак. Переписывайте загрузчик, устраняйте ошибки.
LEVENVORF
У high-density чипов при активации Read Out Protect автоматически защищаются от записи адреса 0x08000000 - 0x08001000 (4 кб).
У меня в этом диапазоне лежала прошивка и обновить ее так и не удалось, потому что похоже единственный способ разлочить эту область памяти это отключить Read Out Protect (из-за этого запуститься процедура полного стирания флэша). И все бы хорошо, но для завершения разлочивания необходимо после стирания выполнить PowerOnReset. И тут появляется проблема: откуда стартовать программе обновления прошивки??? Флэш чистый, ОЗУ тоже... Дергать ножками BOOT тоже не могу...
Проблема по-прежнему актуальна. Очень хотелось бы найти решение
V_M_Luck
Цитата
Причем тут флуд? На ваш вопрос конкретный ответ.
>Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.
таким образом никак. Переписывайте загрузчик, устраняйте ошибки.

Понятно. Спасибо.
Все-таки я уточню. Возможно меня не так поняли. Снимать read protect мне не нужно. Просто без снятия этого бита нельзя снять защиту от записи двух первых страниц - а там и расположен мой загрузчик. Получается, что обновить загрузчик на уже прошитых устройствах можно только при помощи jtag...
vlad_new
Цитата(V_M_Luck @ Nov 5 2012, 17:11) *
Понятно. Спасибо.
Все-таки я уточню. Возможно меня не так поняли. Снимать read protect мне не нужно. Просто без снятия этого бита нельзя снять защиту от записи двух первых страниц - а там и расположен мой загрузчик. Получается, что обновить загрузчик на уже прошитых устройствах можно только при помощи jtag...

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