Вы столкнулись с ограничением ядра Cortex-M0, используемого в этом микроконтроллере.
Cortex-M0 может использовать только таблицу векторов прерываний, сопоставленную по адресу 0x0.Когда микроконтроллер настроен на загрузку с загрузчика, системная память отображается по адресу 0, поэтому таблица векторов загрузчика используется для всех прерываний.В результате вы не можете безопасно использовать прерывания в приложении, запущенном через загрузчик.
В Cortex-M0 + и более поздних версиях вы можете установить SCB->VTOR
для использования таблицы векторов, расположенной в другом месте в памяти.Однако этот регистр не существует на деталях Cortex-M0, таких как STM32F0, так что это не вариант для вас.
Рассмотрите возможность использования программатора SWD, такого как ST-Link, для программирования вашего микроконтроллера.загрузчика.Это также позволит вам отладить ваше приложение.