TI官方自带的bootloader Demo,app proxy interrupt table里中断向量地址前面加了个BRA instruction (0x4030)。请问这个BRA instruction (0x4030)是什么指令?为什么要加入到中断向量表中的地址前面呢?
//
// Constant tables
//
/*! This is a "proxy" interrupt table which is used by the bootloader to jump to
each interrupt routine.
It always resides in the same location.
It contains a BRA instruction (0x4030) followed by the address of each
vector routine.
Note that the number and location of each vector should match the declaration
in Boot's Vector_Table (TI_MSPBoot_VecRed_G2xxxx.c)
Unimplemented vectors are removed (and unused vectors can be removed too)
to save flash space
The following table matches the vectors for G2553
*/
# ifdef __IAR_SYSTEMS_ICC__
# pragma location="APP_PROXY_VECTORS"
__root const uint16_t ProxyVectorTable[] =
# elif defined (__TI_COMPILER_VERSION__)
# pragma DATA_SECTION(ProxyVectorTable, ".APP_PROXY_VECTORS")
# pragma RETAIN(ProxyVectorTable)
const uint16_t ProxyVectorTable[] =
# endif
{
0x4030, (uint16_t) P1_Isr, // APP_PROXY_VECTOR(0) P1
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(1) P2
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(2) ADC10
0x4030, (uint16_t) TI_MSPBoot_Comm_Isr, // APP_PROXY_VECTOR(3) USCI I2C TX/RX
0x4030, (uint16_t) TI_MSPBoot_Comm_Isr, // APP_PROXY_VECTOR(4) USCI I2C STAT
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(5) TA0_1
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(6) T0_0
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(7) WDT
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(8) COMP_A
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(9) TA1_1
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(10) TA1_0
0x4030, (uint16_t) Dummy_Isr, // APP_PROXY_VECTOR(11) NMI
};