Не отлаживал USB, лишь общее замечание: Лишний вход в функцию. Прерывания не запрещены до конца, либо до вызова сбойной функции она же уже была вызвана прерыванием до запрета прерываний. Ну или какая проблема вылетом указателей или индексов массива, что стек затирает.
Нечем снять трассировку (trace)? Можно ещё попробовать стек проанализировать после срабатывания ловушки.