NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; NVIC_Init(&NVIC_InitStructure); FLASH_ITConfig(FLASH_IT_EOP, ENABLE);I have also tried ensureing the HSI is on with: RCC_HSICmd(ENABLE); This causes an interrupt when debugging (via JTAG), but not when run from flash normally (i.e. after a reset). Does anybody know what else I have to do to ensure there is always an interrupt.