Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Error message from debugger back end: Error finishing flash

Вс янв 15, 2023 17:11:12

Здравствуйте :shock: сам я нуб, работаю на STM32CubeIDE у меня проблема со стиранием секторов во внутренней Flash памяти МК STM32F429ZI (DISCO).
Пытался сделать разными способами, через HAL и напрямую регистрами, до появления в коде функции стирания Flash работает штатно.
Если в коде появляется стирание Flash заливка завершается с такой инф.:
Изображение
Код при этом работает, если заливался через отладку, то и отладка проходит штатно.
После этого при попытке записать изменения на МК через Cube появляется ошибка:
Error message from debugger back end: Error finishing flash

Изображение
При этом через STMUtility можно стереть Flas и биты. После стирания Flash (биты не влияют) можно снова работать из CubeIDE.
Переключение на OpenOCD не помогает...
Что только не нагуглил. Наиболее вменяемый вариант не устраивает.
https://kkmspb.ru/development/microcont ... 32F205.php
Т.к. ни другого программатора у меня нет, ни Keil'ом ни :solder: не владею... :dont_know:
Может кто сталкивался с проблемой и знает как решить?

Re: Error message from debugger back end: Error finishing fl

Пн янв 16, 2023 08:58:40

Думаю вопрос снят.
Для таких-же с отмороженным мозгом как я сообщаю, что если код очистки Flash вызывать в бесконечном цикле по условию, то ошибки не случается и после стирания(даже нескольких раз последовательно) ошибки не возникает.

Re: Error message from debugger back end: Error finishing fl

Пн янв 16, 2023 09:06:32

The_Blind_WatchMaker, лучше бы хал выкинуть, а для стирания флеша и записи в него ничего сложного делать не нужно, только документацию внимательно почитать.
Я себе вот такое написал. Бинарный поиск позволяет найти нужную запись достаточно быстро (скажем, для поиска среди 4096 возможных записей понадобится лишь 12-13 сравнений, а в линейном случае это число потенциально равно 4096!). При большом размере "хранилища" может целая секунда пройти с момента старта, пока линейно найдешь последние настройки! Нельзя так делать.
P.S. А называть переменную 'zaderjka' ну никуда не годится! Только русскому или близкому к нашему языку, возможно, станет понятно, что "задерйка" - это "задержка". А 99.99% населения Шарика вообще ничего не поймет. Есть международный язык - английский, вот им и нужно пользоваться при именовании переменных, функций и написании комментариев.
Ответить