SLAA381C December 2007 – September 2018 MSP430F233 , MSP430F235 , MSP430F2410 , MSP430F247 , MSP430F248 , MSP430F249
The interrupt vector arrangement of F13x/F14x and F23x/F24x MCUs are different, and application code using interrupt-controlled program flow needs to be migrated. Migrating to an F23x/F24x MCU involves making sure that the new interrupt vector locations are used. See Table 2 for a list of module-associated interrupt vectors that require attention.
Module | F13x/F14x | F23x/F24x | Comments |
---|---|---|---|
Timer_A3 | 0xFFEA, 0xFFEC | 0xFFF0, 0xFFF2 | |
ADC12 | 0xFFEE | 0xFFEA | |
Port 1 | 0xFFE8 | 0xFFE4 | |
Port 2 | 0xFFE2 | 0xFFE6 | |
USART0, USCI_A0, USCI_B0 | 0xFFF0, 0xFFF2 | 0xFFEC, 0xFFEE | The USCI interrupt vectors are multiplexed between RX, TX, I2C data and I2C status events. |
USART1, USCI_A1, USCI_B1 | 0xFFE4, 0xFFE6 | 0xFFE0, 0xFFE2 |
In general, recompiling the F13x/F14x application code using F23x/F24x MCU support files automatically takes care of populating the interrupt vector table according to the device-specific requirements (for example, for Timer_A or ADC12). However, in some cases, the interrupt vector routines themselves also need to be modified to accommodate a different interrupt flag demultiplexing scheme (USART compared to USCI).
Also, the memory range that is reserved for interrupt vectors (interrupt vector table) differs between F13x/F14x and F23x/F24x MCUs. For F13x/F14x MCUs, this memory ranges from address 0xFFE0 to 0xFFFF (16 words), and for F23x/F24x MCUs, it ranges from 0xFFC0 to 0xFFFF (32 words). In addition to this, the word memory location 0xFFBE is reserved on F23x/F24x MCUs and used as the BSL security key (see Section 3.4).