rezident (09.09.2011 13:28, просмотров: 174) ответил Cepгeй Бopщ на Недопонял.
Описка :) Читать не "Flash", а "адресного пространства". А насчет ADDX см. чего генерит IAR 5.30. Никаких ADDA или ADDX. Все проще, т.к. переходы по TAIV внутри "нижних" 64к. #pragma vector=TIMERA1_VECTOR
#pragma type_attribute=__interrupt
void TIMERA1_ISR (void)
{ switch (TAIV)
{ case 0x02:
TACCTL1&=CCIE^0xFFFF;
break;
case 0x04:
TACCTL2&=CCIE^0xFFFF;
break;
case 0x0A:
SysClkCntr+=65536UL;
break;
default:
break;
}
}
48 #pragma vector=TIMERA1_VECTOR
49 #pragma type_attribute=__interrupt
\ In segment ISR_CODE, align 2
50 void TIMERA1_ISR (void)
\ TIMERA1_ISR:
51 { switch (TAIV)
\ 000000 0F14 PUSHM.A #0x1, R15
\ 000002 1F422E01 MOV.W &0x12e, R15
\ 000006 2F83 SUB.W #0x2, R15
\ 000008 0624 JEQ ??TIMERA1_ISR_0
\ 00000A 2F83 SUB.W #0x2, R15
\ 00000C 0824 JEQ ??TIMERA1_ISR_1
\ 00000E 3F800600 SUB.W #0x6, R15
\ 000012 0924 JEQ ??TIMERA1_ISR_2
\ 000014 0E3C JMP ??TIMERA1_ISR_3
52 { case 0x02:
53 TACCTL1&=CCIE^0xFFFF;
\ ??TIMERA1_ISR_0:
\ 000016 B2C010006401 BIC.W #0x10, &0x164
54 break;
\ 00001C 0A3C JMP ??TIMERA1_ISR_3
55 case 0x04:
56 TACCTL2&=CCIE^0xFFFF;
\ ??TIMERA1_ISR_1:
\ 00001E B2C010006601 BIC.W #0x10, &0x166
57 break;
\ 000024 063C JMP ??TIMERA1_ISR_3
58 case 0x0A:
59 SysClkCntr+=65536UL;
\ ??TIMERA1_ISR_2:
\ 000026 ....8253.... ADDX.W #0x0, &SysClkCntr
\ 00002C ....9263.... ADDCX.W #0x1, &SysClkCntr + 2
60 break;
61 default:
62 break;
63 }
64 }
\ ??TIMERA1_ISR_3:
\ 000032 0F16 POPM.A #0x1, R15
\ 000034 0013 RETI
\ 000036 REQUIRE TACCTL1
\ 000036 REQUIRE TACCTL2
\ 000036 REQUIRE TAIV
65