This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
hi,everyone
求助!!
现BOOTLOADER和APP已经实现相互跳转,Flash=8000-FFFF,分布:BOOTFLASH=F000-FFFF(中断:FFE0-FFFF);APPFLASH=8000-EFFF(中断:EFE0-EFFF)。但是在BOOT中不能使用中断,虚拟中断也不行(可能自己没搞懂)。映射中断改怎么处理!!!
BOOT的XCL配置:
// -------------------------------------
// Constant data
//
-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=F000-FFDD
// -------------------------------------
// Code
//
-Z(CODE)CSTART,ISR_CODE,CODE_ID=F000-FFDD
-P(CODE)CODE=F000-FFDD
// -------------------------------------
// Signature memory and interrupt vectors
//
-Z(CONST)SIGNATURE=FFDE-FFDF
-Z(CODE)INTVEC=FFE0-FFFF
-Z(CODE)RESET=FFFE-FFFF
APP的XCL配置:
// -------------------------------------
// Constant data
//
-Z(CONST)DATA16_C,DATA16_ID,TLS16_ID,DIFUNCT,CHECKSUM=8000-EFDD
// -------------------------------------
// Code
//
-Z(CODE)CSTART,ISR_CODE,CODE_ID=8000-EFDD
-P(CODE)CODE=8000-EFDD
// -------------------------------------
// Signature memory and interrupt vectors
//
-Z(CONST)SIGNATURE=EFDE-EFDF
-Z(CODE)INTVEC=EFE0-EFFF
-Z(CODE)RESET=EFFE-EFFF
wo没有映射到RAM而是映射到FLASH。
现在的问题是我原来的中断处理程序和映射的中断无法共存
中断处理函数:
// USCI_B0 Data ISR
#pragma vector = USCIAB0TX_VECTOR
__interrupt void USCIAB0TX_ISR(void)
{
if (IFG2 & UCB0TXIFG)
{
TI_transmit_callback(&UCB0TXBUF);
}
else
{
TI_receive_callback(UCB0RXBUF);
}
}
中断映射:
#pragma vector=TIMER1_A1_VECTOR
__interrupt void intec_0(void)
{
asm("br &0xEFE0;");
}
#pragma vector=TIMER1_A0_VECTOR
__interrupt void intec_1(void)
{
asm("br &0xEFE2;");
}
#pragma vector=PORT1_VECTOR
__interrupt void intec_2(void)
{
asm("br &0xEFE4;");
}
#pragma vector=PORT2_VECTOR
__interrupt void intec_3(void)
{
asm("br &0xEFE6;");
}
#pragma vector=TRAPINT_VECTOR
__interrupt void intec_4(void)
{
asm("br &0xEFE8;");
}
#pragma vector=ADC10_VECTOR
__interrupt void intec_5(void)
{
asm("br &0xEFEA;");
}
#pragma vector=USCIAB0TX_VECTOR
__interrupt void intec_6(void)
{
asm("br &0xEFEC;");
}
#pragma vector=USCIAB0RX_VECTOR
__interrupt void intec_7(void)
{
asm("br &0xEFEE;");
}
#pragma vector=TIMER0_A1_VECTOR
__interrupt void intec_8(void)
{
asm("br &0xEFF0;");
}
#pragma vector=TIMER0_A0_VECTOR
__interrupt void intec_9(void)
{
asm("br &0xEFF2;");
}
#pragma vector=WDT_VECTOR
__interrupt void intec_10(void)
{
asm("br &0xEFF4;");
}
#pragma vector=COMPARATORA_VECTOR
__interrupt void intec_11(void)
{
asm("br &0xEFF6;");
}
#pragma vector=TIMERB1_VECTOR
__interrupt void intec_12(void)
{
asm("br &0xEFF8;");
}
#pragma vector=TIMERB0_VECTOR
__interrupt void intec_13(void)
{
asm("br &0xEFFA;");
}
#pragma vector=NMI_VECTOR
__interrupt void intec_14(void)
{
asm("br &0xEFFC;");
}