Полная версия этой страницы:
STM32F4 dfu-utils
Здравствуйте!
вчера возникла ситуация когда потребовалось подменить прошивку в моем девайсе на STM32F4 который уехал далеко.
я переслал по почте новый бинарь и инструкцию как залить через USB с помощью dfu-utils (как я обычно делал в таких ситуациях), если микросхема залочена то я отладчиком ее чистил.
засада оказалась в том что я в этом устройстве ввел защиту от чтения (level 1), и dfu-util предсказуемо послала моих далеких коллег лесом погулять. я потыкался и понять как прочистить option bytes с помощью dfu-utils с кондачка неполучилось.
поскольку надо было быстро решить проблему я порекомендовал виндовой DfuSe demo ее почистить и потом стандартным способом с помощью dfu-util все перезалить, так все сработало.
хотелось бы одной dfu-util обойтись
имеем незалоченну микросхему
dfu-util --device 0483:df11 --alt 1 --dfuse-address 0x1FFFC000 -U opt_bytes.bin -t 16 -v
читает
FF AA 00 55 FF AA 00 55 FF FF 00 00 FF FF 00 00
как бы все ожидаемо.
это же туда писатся не хочет
как и что надо туда запихнуть чтоб почистить микросхему?
я не разобрася а надо бы....
просьба поделится знаниями кто это уже пропахал чтоб время не тратить
спасибо
Сергей Борщ
Mar 24 2016, 17:11
Возможно не в тему, но - мы тут как-то на форуме (в прошлом году?) разбирались, что защита от чтения вступает в силу и снимается только в момент сброса. То есть если защита включена - записать вы можете, но результат снаружи сможете считать только после сброса или передергивания питания, поскольку защита продолжает действовать до сброса. Поэтому вы можете изнутри залоченной программы стереть option bytes и записать в них новое значение, и если в этом новом значении защита от чтения также будет включена - программа не сотрется и сможет работать с новыми значениями option bytes
да как то dfu-util говорил что не может прописать OB и результатом был ресет после чго было видно что ничего не изменилось - выполнялась старая прошивка.
у меня рабочаяя идея чт ов OB надо писать правильные байты чтоб контроллер флеша понял что мы от него хотим.
то есть я полагал что как то это автоматизировано, типа отдельной командой - но в данном случае вероятно все можно с помощью dfu-util почистить но нужно правильную последовательность из 16 байтов всовывать. как в коде - программировать регистры контроллера флеша.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.