El comportamiento del núcleo depende de la implementación. Flash no es parte integral del núcleo ARM y, como tal, cada proveedor lo implementa de manera diferente. Por lo general, durante el proceso de borrado / escritura, uno ejecutaría desde la RAM y la ejecución no debería verse afectada.
En el STM32, creo que las lecturas de bloqueo de flash mientras los ciclos de borrado / escritura están en curso. Esto provocaría que la ejecución del núcleo se detenga hasta que se complete la operación. Con algunas de las configuraciones de flash, creo que puede continuar ejecutando / leyendo flash y solo se detendrá cuando acceda a la parte del flash que está borrando / programando.
He usado otros Cortex M en los que debe ejecutar desde la RAM mientras modifica el contenido de la memoria flash; de lo contrario, se encontrará con una falla del bus (y probablemente un bloqueo del sistema si sus manejadores de fallas de bus / fallas duras están en flash). Algunos micros con grandes cantidades de flash lo implementan como dos arreglos flash independientes, y estos generalmente permiten el acceso completo a un banco mientras operan en el otro.
Debería consultar la documentación de su parte específica para ver las limitaciones de ejecución al modificar el contenido flash.