SLAU723A October 2017 – October 2018 MSP432E401Y , MSP432E411Y
NOTE
The Boot Configuration (BOOTCFG) register requires a POR before the committed changes take effect.
This section details how to update the registers in Table 7-3, which are resident within the flash memory. These registers exist in a separate space from the main flash memory array and are not affected by an ERASE or MASS ERASE operation. The bits in these registers can be changed from 1 to 0 with a commit operation. The register contents are unaffected by any reset condition except power-on reset, which returns the register contents to 0xFFFF.FFFE for the BOOT Configuration (BOOTCFG) register and 0xFFFF.FFFF for all others.
NOTE
Do not change the values of the reserved bits in the BOOTCFG register. The reserved bits must remain at their default value of all 1s.
By committing the register values using the COMT bit in the Flash Memory Control (FMC) register, the register contents become nonvolatile and are therefore retained following power cycling. After the register contents are committed, the only way to restore the factory default values is to perform the sequence described in Section 3.3.4.3.
All of the FMPREn, FMPPEn and USER_REGn registers, in addition to the BOOTCFG register, can be committed in nonvolatile memory. The FMPREn, FMPPEn, and USER_REGn registers can be tested before being committed; the BOOTCFG register cannot. To program the BOOTCFG register, the value must be written into the Flash Memory Data (FMD) register before it is committed. The BOOTCFG configuration cannot be tried and verified before committing to nonvolatile memory.
NOTE
All flash memory resident registers can only have bits changed from 1 to 0 by user programming. The FMPREn, FMPPEn, and BOOTCFG registers can be committed multiple times, but the USER_REGn registers can only be committed once, after the entire register has been set to 1s. After being committed, the USER_REGn registers can only be returned to their factory default values of all 1s by performing the sequence described in Section 3.3.4.3. The mass erase of the main flash memory array caused by the sequence is performed before restoring these registers.
Table 7-3 lists the FMA address required for commitment of each of the registers and the source of the data to be written when the FMC register is written with a key value of 0xA442 or the PEKEY value of the FLPEKEY register. The key value used is determined by the KEY bit in the BOOTCFG register at reset. If the KEY value is 0x0, the PEKEY value in the FLPEKEY register is used for commits in the FMC/FMC2 register. If the KEY value is 0x1, the value 0xA442 is used as the WRKEY in the FMC and FMC2 registers. If the After writing the COMT bit, the user can poll the FMC register to wait for the commit operation to complete.
NOTE
To ensure nonvolatile register data integrity, nonvolatile register commits should not be interrupted with a power loss. If data integrity is compromised during a commit because of a power loss, a toggle mass erase function can be performed to clear these registers. See Table 7-3 for the list of nonvolatile registers.
Register to be Committed | FMA Value | Data Source |
---|---|---|
FMPRE0 | 0x0000.0000 | FMPRE0 |
FMPRE1 | 0x0000.0002 | FMPRE1 |
FMPRE2 | 0x0000.0004 | FMPRE2 |
FMPRE3 | 0x0000.0006 | FMPRE3 |
FMPRE4 | 0x0000.0008 | FMPRE4 |
FMPRE5 | 0x0000.000A | FMPRE5 |
FMPRE6 | 0x0000.000C | FMPRE6 |
FMPRE7 | 0x0000.000E | FMPRE7 |
FMPRE8 | 0x0000.0010 | FMPRE8 |
FMPRE9 | 0x0000.0012 | FMPRE9 |
FMPRE10 | 0x0000.0014 | FMPRE10 |
FMPRE11 | 0x0000.0016 | FMPRE11 |
FMPRE12 | 0x0000.0018 | FMPRE12 |
FMPRE13 | 0x0000.001A | FMPRE13 |
FMPRE14 | 0x0000.001C | FMPRE14 |
FMPRE15 | 0x0000.001E | FMPRE15 |
FMPPE0 | 0x0000.0001 | FMPPE0 |
FMPPE1 | 0x0000.0003 | FMPPE1 |
FMPPE2 | 0x0000.0005 | FMPPE2 |
FMPPE3 | 0x0000.0007 | FMPPE3 |
FMPPE4 | 0x0000.0009 | FMPPE4 |
FMPPE5 | 0x0000.000B | FMPPE5 |
FMPPE6 | 0x0000.000D | FMPPE6 |
FMPPE7 | 0x0000.000F | FMPPE7 |
FMPPE8 | 0x0000.00011 | FMPPE8 |
FMPPE9 | 0x0000.00013 | FMPPE9 |
FMPPE10 | 0x0000.00015 | FMPPE10 |
FMPPE11 | 0x0000.00017 | FMPPE11 |
FMPPE12 | 0x0000.00019 | FMPPE12 |
FMPPE13 | 0x0000.0001B | FMPPE13 |
FMPPE14 | 0x0000.0001D | FMPPE14 |
FMPPE15 | 0x0000.0001F | FMPPE15 |
USER_REG0 | 0x8000.0000 | USER_REG0 |
USER_REG1 | 0x8000.0001 | USER_REG1 |
USER_REG2 | 0x8000.0002 | USER_REG2 |
USER_REG3 | 0x8000.0003 | USER_REG3 |
BOOTCFG | 0x7510.0000 | FMD |