Hi,
I've created a new project in CCS 6.0.1 for MSP430F5308.
I've inserted an interrupt handler for a button.
When tested the button I've found the interrupt is working & arrive to the designated code, when exiting the interrupt
The interrupt call:
#pragma vector=PORT1_VECTOR __interrupt void port1ISR(void) { if (P1IFG & BIT5) { //INFO: bottom clicked move to configure MSC. LPM3_EXIT; //INFO: exit LPM3 configureMSC(); } P1IFG = 0; }
I see the configureMSC function been called & the interrupt handler ends OK.
After a few click (calling over & over to the same function which toggles a led so it is easy to know what works), i've found the system doesn't responds. Than I paused and found out that something is VERY wrong:
in the map file:
0000d0a6 0000000c nwkManagers.obj (.text:spiReadFifo) 0000d0b2 00000006 rts430x_lc_sd_eabi.lib : isr_trap.obj (.text:__TI_ISR_TRAP) 0000d0b8 00000006 main.obj (.text:_isr:Port_2)
I didn't insert the rts430x_lc_sd_eabi.lib to the project so I assume the creation of a new project for MSP430F5308 added this by default.
just to cover the case that id don't respond to interrupt I've created an empty port2 interrupt handler for testing:
// Port 2 interrupt service routine for timing test #pragma vector=PORT2_VECTOR __interrupt void Port_2(void) { P2IFG =0; }
This didn't helped.
- When I look at the call stack in the pic above I can't understand what caused the trap, please advice on that.
- in this link this a similar issue? [I don't think so since I didn't imported ANY project etc']
- Any advice of what I'm doing wrong will be good..