Хотя-бы укажите какое у Вас ядро, а ещё лучше - МК. А то ARM - понятие растяжимое и контроллеры прерываний разные
Если у Вас Cortex-M, то всё должно работать. Очевидно где то у Вас в коде ошибка, только Вы и можете её найти.
И для тестов приоритетов в Cortex-M "зависоны" делать нет надобности. В NVIC есть соответствующий регистр, позволяющий программно возбуждать прерывания - он Вам будет полезен.