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
灰小子:
这个mcu没有把vector映射到RAM的那种寄存器。只能用其他思路的。
yue feng1:
回复 灰小子:
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;");}
wenzhong lin:
回复 yue feng1:
yue feng 1 ,你好!
我现在也在做430的自定义升级,方便加个Q,交流一下吗(我的:9052604)