Как вам мой свежий взгляд на проблему? Ни строчки на ассемблере! И
заработало в железе. void __attribute__ ((interrupt)) USARTISR (void) { //ОПРЕДЕЛЕНИЕ ФАКТИЧЕСКОГО ОБРАБОТЧИКА ПРЕРЫВАНИЯ
    //ТУТ КОД СИ МОЕГО ОБРАБОТЧИКА ПРЕРЫВАНИЯ
}
void __attribute__ ((naked)) USART1_IRQHandler (void) { //ОПРЕДЕЛЕНИЕ ГОЛОГО ПРЕ-ПРОЛОГА ПО ВЕКТОРУ ПРЕРЫВАНИЯ
    //ТУТ МОЙ ГОЛЫЙ ПРЕ-ПРОЛОГ
    goto *&USARTISR;
}
АССЕМБЛЕР:
00000f48 g     F .text	0000023a USARTISR
00001304 g     F .text	00000020 USART1_IRQHandler
00001304 <USART1_IRQHandler>:
    ТУТ МОЙ ГОЛЫЙ ПРЕ-ПРОЛОГ. УРА!
    ПЕРЕХОД НА ПОЛНЫЙ ОБРАБОТЧИК	
    131e:	0747a783          	lw	a5,116(a5) # 20000074 <FuncAddr>
    1322:	8782                	jr	a5
00000f48 <USARTISR>:
     АВТОМАТИЧЕСКИЙ ПРОЛОГ. УРА!
     f48:	715d                	addi	sp,sp,-80
     f4a:	d03e                	sw	a5,32(sp)
     f4c:	400147b7          	lui	a5,0x40014
     f50:	d23a                	sw	a4,36(sp)
     f52:	de22                	sw	s0,60(sp)
     f54:	80078713          	addi	a4,a5,-2048 # 40013800 <_eusrstack+0x20011000>
     f58:	20000437          	lui	s0,0x20000
     f5c:	8007d783          	lhu	a5,-2048(a5)
     f60:	dc26                	sw	s1,56(sp)
     f62:	2346                	lhu	s1,4(a4)
     f64:	42042703          	lw	a4,1056(s0) # 20000420 <SerialState>
     f68:	d436                	sw	a3,40(sp)
     f6a:	c686                	sw	ra,76(sp)
     f6c:	c496                	sw	t0,72(sp)
     f6e:	c29a                	sw	t1,68(sp)
     f70:	c09e                	sw	t2,64(sp)
     f72:	da2a                	sw	a0,52(sp)
     f74:	d82e                	sw	a1,48(sp)
     f76:	d632                	sw	a2,44(sp)
     f78:	ce42                	sw	a6,28(sp)
     f7a:	cc46                	sw	a7,24(sp)
     f7c:	ca4a                	sw	s2,20(sp)
     f7e:	c872                	sw	t3,16(sp)
     f80:	c676                	sw	t4,12(sp)
     f82:	c47a                	sw	t5,8(sp)
     f84:	c27e                	sw	t6,4(sp)
     
     ТУТ МОЙ КОД ОБРАБОТЧИКА ПРЕРЫВАНИЯ
    АВТОМАТИЧЕСКИЙ ЭПИЛОГ:
    10cc:	5472                	lw	s0,60(sp)
    10ce:	40b6                	lw	ra,76(sp)
    10d0:	42a6                	lw	t0,72(sp)
    10d2:	4316                	lw	t1,68(sp)
    10d4:	4386                	lw	t2,64(sp)
    10d6:	54e2                	lw	s1,56(sp)
    10d8:	5552                	lw	a0,52(sp)
    10da:	55c2                	lw	a1,48(sp)
    10dc:	5632                	lw	a2,44(sp)
    10de:	56a2                	lw	a3,40(sp)
    10e0:	5712                	lw	a4,36(sp)
    10e2:	5782                	lw	a5,32(sp)
    10e4:	4872                	lw	a6,28(sp)
    10e6:	48e2                	lw	a7,24(sp)
    10e8:	4952                	lw	s2,20(sp)
    10ea:	4e42                	lw	t3,16(sp)
    10ec:	4eb2                	lw	t4,12(sp)
    10ee:	4f22                	lw	t5,8(sp)
    10f0:	4f92                	lw	t6,4(sp)
    10f2:	6161                	addi	sp,sp,80
    А ВОТ И КОРРЕКТНЫЙ ВОЗВРАТ!
    10f4:	30200073          	mret