Прерывать можно любой код, главное правильно установить контекст прерывания при входе в ISR и восстановить контекст задачи при выходе. Я на эти грабли наступал - DSP lib весьма активно использует вещи, которые в коде сгенерированном компилятором невозможны