Необходимо написать проект на Си, в котором прерывания будут полностью написаны на ассемблере. В "Mixing C and Assembly Code with IAR.pdf" приведен пример:
Код
NAME EXT_INT1
#include "iom128.h"
extern c_int1
COMMON INTVEC(1)
ORG INT1_vect
RJMP c_int1
ENDMOD
NAME c_int1
#include "iom128.h"
PUBLIC c_int1
RSEG CODE
c_int1:
st -Y,R16
in R16,SREG
st -Y,R16
in R16,PIND
com R16
out PORTB,R16
out SREG,R16
ld R16,Y+
reti
END
но при компиляции ИАР выдает ошибку на строке
RJMP c_int1:
Код
Error[40]: Bad instruction
не могу понять в чем проблема.
Также непонятна строка "
COMMON INTVEC(1)", какой у нее параметр.
Подскажите пожалуйста.