Jump to content

    
Sign in to follow this  
V_M_Luck

STM32F103RCT6 снятие Read protect

Recommended Posts

Камень STM32F103RCT6.

Есть проект с загрузчиком. Загрузчик располагается по младшим адресам FLASH (16 первых страниц). На старте загрузчик проверяет и в случае необходимости выставляет ReadProtect bit в FLASH_OBR.

Возникла необходимость перезашить загрузчик. Оказалось, что при выставлении ReadProtect bit первые две страницы автоматически становятся write-protected. Что бы снять защиту от записи, необходимо запуститься из ОЗУ, снять ReadProtect, полностью сотрется весь FLASH, перезапуститься. Запуск контроллера произойдет опять из FLASH, а там прошивки уже нет никакой. Дергать ножками BOOT нет возможности.

Возможно как-то можно обойтись без перезапуска всего? Или как-то еще можно разрулить эту проблему?

Share this post


Link to post
Share on other sites

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

не забудьте в приложении так-же сделать проверку на загруженность нового загрузчика, иначе все будет крутиться колесом. И, естественно, если что-то произойдет во время записи нового загрузчика, то ой... :)

 

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

Share this post


Link to post
Share on other sites
Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик.

Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно.

Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.

Share this post


Link to post
Share on other sites

В чем проблема то? Хочется "снять" прошивку по умному?

... снятие Read protect со стиранием, ... иначе через ОЗУ доступ к Flash и к прошивке. А кому этого хочется? Вот в STM и закрыли эту дверку.

Может у вас другая задача? ...поясните.

 

Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно.

Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.

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

 

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

не забудьте в приложении так-же сделать проверку на загруженность нового загрузчика, иначе все будет крутиться колесом. И, естественно, если что-то произойдет во время записи нового загрузчика, то ой... :)

 

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

да обходиться все это просто, что вы народ пугаете.

Share this post


Link to post
Share on other sites

Уважаемые!

Я не понимаю ваших ответов. У меня вполне конкретный вопрос, никаких "снятий" прошивок мне не нужно. При проектировании загрузчика в нашем устройстве были допущены неточности. Загрузчик нужно обновить. Если все так просто, поясните как. Если ничего конкретного по теме нет - не флудите.

Share this post


Link to post
Share on other sites

Причем тут флуд? На ваш вопрос конкретный ответ.

>Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.

таким образом никак. Переписывайте загрузчик, устраняйте ошибки.

Share this post


Link to post
Share on other sites

У high-density чипов при активации Read Out Protect автоматически защищаются от записи адреса 0x08000000 - 0x08001000 (4 кб).

У меня в этом диапазоне лежала прошивка и обновить ее так и не удалось, потому что похоже единственный способ разлочить эту область памяти это отключить Read Out Protect (из-за этого запуститься процедура полного стирания флэша). И все бы хорошо, но для завершения разлочивания необходимо после стирания выполнить PowerOnReset. И тут появляется проблема: откуда стартовать программе обновления прошивки??? Флэш чистый, ОЗУ тоже... Дергать ножками BOOT тоже не могу...

Проблема по-прежнему актуальна. Очень хотелось бы найти решение

Edited by LEVENVORF

Share this post


Link to post
Share on other sites
Причем тут флуд? На ваш вопрос конкретный ответ.

>Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.

таким образом никак. Переписывайте загрузчик, устраняйте ошибки.

Понятно. Спасибо.

Все-таки я уточню. Возможно меня не так поняли. Снимать read protect мне не нужно. Просто без снятия этого бита нельзя снять защиту от записи двух первых страниц - а там и расположен мой загрузчик. Получается, что обновить загрузчик на уже прошитых устройствах можно только при помощи jtag...

Edited by V_M_Luck

Share this post


Link to post
Share on other sites
Понятно. Спасибо.

Все-таки я уточню. Возможно меня не так поняли. Снимать read protect мне не нужно. Просто без снятия этого бита нельзя снять защиту от записи двух первых страниц - а там и расположен мой загрузчик. Получается, что обновить загрузчик на уже прошитых устройствах можно только при помощи jtag...

Мож я чего не понял, хотя у меня тоже кучка есть программ со своими загрузчиками. А разве нельзя загрузчик положить немного повыше этих 4 кило, ну или вообще отправить его в конец флеша.

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this