SLAA380B December 2007 – September 2018 MSP430F2616 , MSP430F2617 , MSP430F2618 , MSP430F2619
The interrupt vector arrangement of MSP430F16x and MSP430F261x devices are different, and application code using interrupt-controlled program flow needs to be migrated. Migrating to an MSP430F261x device involves ensuring that the new interrupt vector locations are used. See Table 3 for a list of module-associated interrupt vectors that require attention.
Module | MSP430F16x | MSP430F261x | Comments |
---|---|---|---|
Timer_A3 | 0xFFEA, 0xFFEC | 0xFFF0, 0xFFF2 | |
ADC12 | 0xFFEE | 0xFFEA | |
Port 1 | 0xFFE8 | 0xFFE4 | |
Port 2 | 0xFFE2 | 0xFFE6 | |
USART0, USCI_A0/B0 | 0xFFF0, 0xFFF2 | 0xFFEC, 0xFFEE | The USCI interrupt vectors are multiplexed between RX, TX, I2C data, and I2C status events. |
USART1, USCI_A1/B1 | 0xFFE4, 0xFFE6 | 0xFFE0, 0xFFE2 | |
DAC12 | 0xFFE0 (shared vector) | 0xFFDC | F261x has dedicated vectors for DAC12 and DMA, thus simplifying software design. |
DMA | 0xFFDE |
In general, recompiling the MSP430F16x application code using MSP430F261x device support files automatically populates 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 (for example, USART compared to USCI, DAC12, and DMA).
Also, the memory range that is reserved for interrupt vectors (interrupt vector table) differs between MSP430F16x and MSP430F261x devices. For MSP430F16x devices, this memory ranges from address 0xFFE0 to 0xFFFF (16 words), and for MSP430F261x devices it ranges from 0xFFC0 to 0xFFFF (32 words). In addition, the word memory location 0xFFBE is reserved on MSP430F261x devices and used as the bootloader (BSL) security key (see Section 3.4).