SLAU723A October 2017 – October 2018 MSP432E401Y , MSP432E411Y
Flash mirroring allows multiple copies of software to exist in flash simultaneously. The software can run from the lower banks at the same time software is updating a mirrored copy on the upper bank. In addition to the data, the bootloader in both the lower and upper banks must be mirrored while programming the flash contents. If data needs to be recovered, a hot swap can be done by setting the FMME bit in the FLASHCONF register to ensure the flash banks are idle during the swap. The prefetch buffers must be invalidated during the execution of a hot swap. Next, the address translation logic decodes up to 512KB from the upper banks to the lower banks. Once the banks are swapped, the mirrored flash image is then used. The address translation logic translates the address to the upper banks until the next swap. Figure 7-8 depicts the necessary configuration when executing flash mirroring.
NOTE
After a mirror mode has been executed and the code locations have been swapped from the upper memory banks to the lower memory banks, the application can continue to read from the lower memory bank address locations. However, when erasing or programming the swapped memory, the application must use the real upper memory address of the code before it was swapped. For example, in Figure 7-8, when the yellow highlighted location 0x00.3FE8 is swapped with 0x08.3FE8, the next read location of the application is 0x00.3FEC. However, if the application were to program or erase the next location, it would need to write or erase location 0x08.3FEC