El comportamiento del núcleo depende de la implementación. Flash no es parte integral del núcleo de ARM y, como tal, cada proveedor lo implementa de manera diferente. Normalmente, durante el proceso de borrado / escritura uno se ejecutaría desde la RAM, y la ejecución no debería verse afectada.
En el STM32, creo que las lecturas del flash stall mientras los ciclos de borrado / escritura están en curso. Esto causaría que la ejecución del núcleo se detenga hasta que la operación se complete. 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's en los que debe ejecutar desde la RAM mientras se modifican los contenidos flash. De lo contrario, se producirá un fallo en el bus (y es probable que se produzca un fallo del sistema si los manejadores de fallos / fallos de bus están en destello). Algunos micros con grandes cantidades de memoria flash lo implementan como dos arreglos de memoria flash independientes, y estos generalmente permiten el acceso total a un banco mientras operan en el otro.
Necesitaría consultar la documentación de su parte específica para ver las limitaciones de ejecución al modificar los contenidos flash.