У XMC4700 при записи во флешь fault не возникает, но при записи в ROM - возникает.
Запись - команда STR по адресу 0x1FFEB570.
Fault от неё происходит по адресу 0x1FFEB57E.
Думаю - дело также в штатном механизме программирования FLASH.
Например: у XMC4xxx механизм программирования FLASH построен на записи команд/данных в адресное пространство некешированной FLASH. Поэтому логично, что такие операции не должны приводить к fault-у. Иначе бы программирование FLASH было бы невозможно.
А например у LPC17xx (и возможно других семейств LPC) механизм программирования FLASH построен на программном API, реализованном в ROM процессора. Т.е. - пользовательский код никогда не должен выполнять операции записи во FLASH. Почему бы тогда LPC не генерить fault при такой попытке?
Каков механизм программирования FLASH у STM32 - я не знаю, не использовал его.