TI 工程师好,我用MSP430FR6972开发调试时总是在调用子程序时会跳入reset位置即复位,不知道是不是仿真器不支持FR6972芯片?这个程序时用MSP430F425移植过来的。用早期的IAR4.0版本和F425调试就没问题,现在移植到FR6972调试时开中断(EINT)就总是自动复位).请指点,查了下FR6972的仿真器是MSP-FET,不知是否我用MSP-FET430UIF不支持FR6972芯片引起出现的问题?谢谢
Susan Yang:
MSP-FET430UIF Supports all programmable MSP430 and CC430 devices (F1xx, F2xx, F4xx, F5xx, F6xx, G2xx, L092, FR57xx, FR59xx, MSP430TCH5E)
Susan Yang:
具体信息可以参考 http://www.ti.com.cn/cn/lit/ug/slau278v/slau278v.pdf
user3883938:
回复 Susan Yang:
Susan, 谢谢你的回复,现在有个问题是总是在TIMEB中断里循环,跳不出来,从RETI直接跳到入口处TIMER0_B0_Interrupt:我用的XP系统,这个程序是从MSP430F423移植过来的,用IAR 4.0版本就没问题,移植到FR6972芯片 IAR630版本(TI官网下载的免费8K)就有这个问题。
;——————————————— TIMER0_B0_Interrupt: BIT.B #Sleep_First,&ACTIVE_Flag JNZ BasicTimerInterruptReturn INC.B &PRESS_COUNTER ;KEY INC.B &TIME_COUNTER0 INC.B TIME_COUNTER2 INC.B TIME_COUNTER3 INC.B &MotorRunTime INC.B &RESET_PressTime INC.B &AUTO_PressTime INC.B &Key10_PressTime INC.B &Key1_PressTime INC.B &Key01_PressTime INC.B Time_Clear_Count INC.W wSleep_Timer1 JMP BasicTimerInterruptReturnSleepTimerInterrupt: BIT.B #Sleep_Second,&ACTIVE_Flag JNZ BasicTimerInterruptReturn INC.W sSleep_Timer1 CMP.W #089H,&sSleep_Timer1 JL BasicTimerInterruptReturn BIS.B #Sleep_Second,&ACTIVE_FlagBasicTimerInterruptReturn: RETI;******************************************************************************; Interrupt Vector Table;******************************************************************************
user3883938:
回复 user3883938:
哪位工程师能否帮我解决这个问题?我用TI的DEMO例子来测试也是一样总是在中断程序里循环,跳不出中断程序, DEMO例子如下:
#include "msp430fr6972.h";——————————————————————————- RSEG CSTACK ; Define stack segment;——————————————————————————- RSEG CODE;——————————————————————————-RESET mov.w #SFE(CSTACK),SP ; Initialize stackpointerStopWDT mov.w #WDTPW+WDTHOLD,&WDTCTL ; Stop WDTSetupGPIO bis.b #BIT0,&P1DIR bis.b #BIT0,&P1OUTUnlockGPIO bic.w #LOCKLPM5,&PM5CTL0 ; Disable the GPIO power-on default ; high-impedance mode to activate ; previously configured port settings mov.w #CCIE,&TB0CCTL0 ; TBCCR0 interrupt enabled mov.w #50000,&TB0CCR0 mov.w #TBSSEL__SMCLK+MC__UP,&TB0CTL ; SMCLK, UP mode NOP EINT // bis.w #LPM0+GIE,SR ; Enter LPM0 w/ interrupt nopMAIN: CALL #DELAY_100mS JMP MAIN;————————————————– DELAY_100mS: MOV #0100H,R6DELAY_100mSLoop: DEC R6 JNZ DELAY_100mSLoop RET ;——————————————————————————TIMER0_B0_ISR; Timer0_B7 CC0 Interrupt Service Routine;—————————————————————————— xor.b #BIT0,&P1OUT reti;——————————————————————————- COMMON INTVEC ; Interrupt Vectors;——————————————————————————- ORG RESET_VECTOR ; Reset Vector DW RESET ORG TIMER0_B0_VECTOR ; Timer0_B7 CC0 Interrupt Vector DW TIMER0_B0_ISR END
程序运行后,单步运行时程序一直在TIMER0_B0_ISR: xor.b #BIT0,&P1OUT reti
这里循环跳不出这中断TIMER0_B0_ISR程序,仿真器不论是MSP_FET还是MSP-FET430UIF,系统不论是XP32还是WIN7 32都会这样,哪位工程师能否指教下这是什么原因?
TI中文支持网



