Microchip Technology SW006022-2N Data Sheet

Page of 338
Common C Interface
 2012 Microchip Technology Inc.
DS52071B-page 41
2.5.10.3
MIGRATION TO THE CCI
For 8-bit compilers, change any occurrence of the interrupt qualifier, as in the 
following examples:
void interrupt myIsr(void)
void interrupt low_priority myLoIsr(void)
to the following, respectively
void __interrupt(high_priority) myIsr(void)
void __interrupt(low_priority) myLoIsr(void)
For 16-bit compilers, change any occurrence of the interrupt attribute, as in the fol-
lowing example:
void __attribute__((interrupt,auto_psv,(irq(52)))) myIsr(void);
to
void __interrupt(auto_psv,(irq(52)))) myIsr(void);
For 32-bit compilers, the __interrupt() keyword takes two parameters, the vector 
number and the (optional) IPL value. Change code which uses the interrupt attri-
bute, similar to these examples:
void __attribute__((vector(0), interrupt(IPL7AUTO), nomips16)) 
myisr0_7A(void) {}
 
void __attribute__((vector(1), interrupt(IPL6SRS), nomips16)) 
myisr1_6SRS(void) {}
 
/* Determine IPL and context-saving mode at runtime */
void __attribute__((vector(2), interrupt(), nomips16)) 
myisr2_RUNTIME(void) {}
to
void __interrupt(0,IPL7AUTO) myisr0_7A(void) {}
 
void __interrupt(1,IPL6SRS) myisr1_6SRS(void) {}
 
/* Determine IPL and context-saving mode at runtime */
void __interrupt(2) myisr2_RUNTIME(void) {}
2.5.10.4
CAVEATS
None.