|
|
  |
STM32F103RCT6 снятие Read protect |
|
|
|
Nov 5 2012, 09:22
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420

|
Камень STM32F103RCT6. Есть проект с загрузчиком. Загрузчик располагается по младшим адресам FLASH (16 первых страниц). На старте загрузчик проверяет и в случае необходимости выставляет ReadProtect bit в FLASH_OBR. Возникла необходимость перезашить загрузчик. Оказалось, что при выставлении ReadProtect bit первые две страницы автоматически становятся write-protected. Что бы снять защиту от записи, необходимо запуститься из ОЗУ, снять ReadProtect, полностью сотрется весь FLASH, перезапуститься. Запуск контроллера произойдет опять из FLASH, а там прошивки уже нет никакой. Дергать ножками BOOT нет возможности. Возможно как-то можно обойтись без перезапуска всего? Или как-то еще можно разрулить эту проблему?
|
|
|
|
|
Nov 5 2012, 12:22
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420

|
Цитата Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик. Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно. Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления.
|
|
|
|
|
Nov 5 2012, 12:30
|

Гуру
     
Группа: Свой
Сообщений: 4 869
Регистрация: 28-02-08
Из: СПБ
Пользователь №: 35 463

|
В чем проблема то? Хочется "снять" прошивку по умному? ... снятие Read protect со стиранием, ... иначе через ОЗУ доступ к Flash и к прошивке. А кому этого хочется? Вот в STM и закрыли эту дверку. Может у вас другая задача? ...поясните. QUOTE (V_M_Luck @ Nov 5 2012, 16:22)  Проблема не в алгоритме обновления загрузчика. Это все и ежу понятно. Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления. таким образом никак. QUOTE (YAM @ Nov 5 2012, 16:17)  Ну так создайте приложение, в составе которого будет образ нового загрузчика, после запуска снимите защиту и перепрошейте новый загрузчик. не забудьте в приложении так-же сделать проверку на загруженность нового загрузчика, иначе все будет крутиться колесом. И, естественно, если что-то произойдет во время записи нового загрузчика, то ой...  Фух, сколько букаф написал... да обходиться все это просто, что вы народ пугаете.
|
|
|
|
|
Nov 5 2012, 12:36
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420

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

Группа: Участник
Сообщений: 18
Регистрация: 14-03-10
Из: BELARUS
Пользователь №: 55 953

|
У high-density чипов при активации Read Out Protect автоматически защищаются от записи адреса 0x08000000 - 0x08001000 (4 кб). У меня в этом диапазоне лежала прошивка и обновить ее так и не удалось, потому что похоже единственный способ разлочить эту область памяти это отключить Read Out Protect (из-за этого запуститься процедура полного стирания флэша). И все бы хорошо, но для завершения разлочивания необходимо после стирания выполнить PowerOnReset. И тут появляется проблема: откуда стартовать программе обновления прошивки??? Флэш чистый, ОЗУ тоже... Дергать ножками BOOT тоже не могу... Проблема по-прежнему актуальна. Очень хотелось бы найти решение
Сообщение отредактировал LEVENVORF - Nov 5 2012, 13:03
|
|
|
|
|
Nov 5 2012, 13:11
|
Участник

Группа: Участник
Сообщений: 55
Регистрация: 26-11-05
Пользователь №: 11 420

|
Цитата Причем тут флуд? На ваш вопрос конкретный ответ. >Повторяю, проблема в том, как снять Read protect, write protect и после этого продолжить процедуру обновления. таким образом никак. Переписывайте загрузчик, устраняйте ошибки. Понятно. Спасибо. Все-таки я уточню. Возможно меня не так поняли. Снимать read protect мне не нужно. Просто без снятия этого бита нельзя снять защиту от записи двух первых страниц - а там и расположен мой загрузчик. Получается, что обновить загрузчик на уже прошитых устройствах можно только при помощи jtag...
Сообщение отредактировал V_M_Luck - Nov 5 2012, 13:14
|
|
|
|
|
Nov 6 2012, 20:19
|
Местный
  
Группа: Участник
Сообщений: 218
Регистрация: 24-06-10
Пользователь №: 58 127

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