Возможно не в тему, потому как однозначно помочь не смогу. Но точно
помню что у меня такой же баг был. И тоже на STM-е: при некоторых
непонятных условиях программа прыгала (или вызывала) функцию записи
флэша и прописывала нули в память (потому как не было корректного
вызова функции с параметрами адреса и данных).. Долго тоже
трахался, но на сколько помню, в итоге просто в функции записи
сделал дополнительные проверки на нулевые данные и адреса или
что-то подобное: т.е если функция вызывалась "нелегально", то возвращалась обратно. Костыль, но проблема исчерпалась. Давно было, сейчас детали не припомню... Поковыряю на днях архивы. Если найду - отпишусь.