I wrote a code with several ISRs. I use the using command when calling ISR. I use banks 1 and 2 for the ISRs. when i look into the *.M51 file created after compilation i got the following: TYPE BASE LENGTH RELOCATION SEGMENT NAME -----------------------------------------------------
* * * * * * * D A T A M E M O R Y * * * * * * * REG 0000H 0008H ABSOLUTE "REG BANK 0" REG 0008H 0008H ABSOLUTE "REG BANK 1" DATA 0010H 0004H UNIT _DATA_GROUP_ 0014H 000CH *** GAP *** I wonder why the Linker doesn't reserves memory for REG bank 2?
INTERRUPT_USING (RTC0ALARM_ISR,INTERRUPT_RTC0ALARM,2) unless you have some hefty defty macros, that will not work in Keil
my guess is a 'macro error'
try using non-macro ISR (void) xxxISR interrupt n using 1 {