TI中文支持网
TI专业的中文技术问题搜集分享网站

MSP430G2 BOOTLoader

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)

赞(0)
未经允许不得转载:TI中文支持网 » MSP430G2 BOOTLoader
分享到: 更多 (0)