Перейти к содержанию
    

STM32F103RCT6 снятие Read protect

Камень STM32F103RCT6.

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

 

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

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

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

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

 

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

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

 

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Уважаемые!

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

Изменено пользователем LEVENVORF

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

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

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

Изменено пользователем V_M_Luck

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

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

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

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...