MSP430 remote upgrade function: Based on 1. Off-chip EEPROM (if the on-chip flash is large enough, it can also be used) 2. RF communication 3. Host computer software (transfer upgrade files) Summary: 1. The program always starts from the reset interrupt vector to address the entry. The interrupt vector is the storage unit that stores the entry address of the interrupt function after each interrupt trigger is satisfied. According to the data sheet, the interrupt vectors are located in the address range 0FFFFh to 0FF80h, for a maximum of 64 interrupt sources. The default interrupt vector position is 0XFF80~0XFFFF, and the length is 0x80. The reset vector is defined in the header file of MSP430FR5969 as #define RESET_VECTOR (55 * 2u) /* 0xFFFE Reset [Highest Priority] */ The default value 0XFFFE~0XFFFF These two bytes are the reset interrupt vector, which stores the start address of the main function in FLASH. If the main function is saved in P(CODE)CODE=4400-4A00, then 0X00 is saved in 0XFFFE and 0X44 is saved in 0XFFFF. After the system is reset, it will go to 0XFFFE, 0XFFFF to find the entry address of the main function. The running addresses of other interrupt functions are also saved in the corresponding vectors. When the conditions for triggering the interrupt are met, the program will address the entry address of the interrupt function according to the address pointed to by the interrupt vector. The project is created and a link file (.xcl file) is generated. The file defines the memory division, the CODE code segment storage location, and the default value of the interrupt vector table from 0XFF80 to 0XFFFF, which is expressed as -Z(CONST)SIGNATURE=FF80-FF8F -Z(CONST)JTAGSIGNATURE=FF80-FF83 -Z(CONST)BSLSIGNATURE=FF84-FF87 -Z(CONST)IPESIGNATURE=FF88-FF8F -Z(CODE)INTVEC=FF90-FFFF -Z(CODE)RESET=FFFE-FFFF 2. To perform remote file upgrade, the code needs to be divided into two sections: BOOT and application APP. If there is an upgrade file, the file is received in the application and stored in the off-chip epprom, and then the file is moved to the application area using BOOT. 3. As mentioned above, the program always starts from the interrupt vector table. If there are two pieces of code in the memory (BOOT and application APP), their interrupt vectors cannot point to the same location, which means that the link file needs to be modified. We set the startup location of the BOOT code to the default value and modify the storage location of the application startup area and code area.