我用的跳转方法是:asm("mov &0xFFFE, PC;");
//-----------------------------------------------------------------
// -- 中断向量表重新影射
//-----------------------------------------------------------------
#pragma vector=0*2u
__interrupt void DAC_ISR(void)
{
asm(" br &0xF7E0;");
}
#pragma vector=1*2u
__interrupt void PORT2_ISR(void)
{
asm(" br &0xF7E2;");
}
#pragma vector=2*2u
__interrupt void USART1TX_ISR(void)
{
asm(" br &0xF7E4;");
}
#pragma vector=2*3u
__interrupt void USART1RX_ISR(void)
{
asm(" br &0xF7E6;");
}
#pragma vector=2*4u
__interrupt void PORT1_ISR(void)
{
asm(" br &0xF7E8;");
}
#pragma vector=2*5u
__interrupt void TIMERA1_ISR(void)
{
asm(" br &0xF7EA;");
}
#pragma vector=2*6u
__interrupt void TIMERA0_ISR(void)
{
asm(" br &0xF7EC;");
}
#pragma vector=2*7u
__interrupt void ADC12_ISR(void)
{
asm(" br &0xF7EE;");
}
#pragma vector=2*8u
__interrupt void USART0TX_ISR(void)
{
asm(" br &0xF7F0;");
}
#pragma vector=2*9u
__interrupt void USART0RX_ISR(void)
{
asm(" br &0xF7F2;");
}
#pragma vector=2*10u
__interrupt void WDT_ISR(void)
{
asm(" br &0xF7F4;");
}
#pragma vector=2*11u
__interrupt void COMPARATORA_ISR(void)
{
asm(" br &0xF7F6;");
}
#pragma vector=2*12u
__interrupt void TIMERB1_ISR(void)
{
asm(" br &0xF7F8;");
}
#pragma vector=2*13u
__interrupt void TIMERB0_ISR(void)
{
asm(" br &0xF7FA;");
}
#pragma vector=2*14u
__interrupt void NMI_ISR(void)
{
asm(" br &0xF7FC;");
}
|