SLAAEN2A February 2025 – August 2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0C1105 , MSPM0C1106 , MSPM0C1106-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1518 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3518 , MSPM0G3518-Q1 , MSPM0G3519 , MSPM0G3519-Q1 , MSPM0H3216 , MSPM0H3216-Q1 , MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
drivelib from SDK is also required.
Figure 3-1 EEPROM Emulation
Files
Users can modify the start address, the number of sectors to use, and the record size in eeprom_emulation_type_a.h. The default Flash address used for EEPROM emulation is 0x00001000, and 2 sectors are used by default, so 0x00001000-0x000017ff is occupied. Additionally, the default size of the emulated EEPROM is 128 bytes.
uint32_t
EEPROMEmulationBuffer[EEPROM_EMULATION_DATA_SIZE /
sizeof(uint32_t)];main(),
typically after SYSCFG_DL_init(). This action allows the
relevant Flash areas to be formatted correctly and global variables to be
allocated correctly. The initialize function
EEPROM_TypeA_init() also searches the active record and
loads the data from Flash to the buffer in step 3.EEPROM_TypeA_init(&EEPROMEmulationBuffer[0]);
Figure 3-2 EEPROM
InitializationEEPROM_TypeA_writeData() to
create a new record in Flash.EEPROM_TypeA_writeData(&EEPROMEmulationBuffer[0]);
Figure 3-3 EEPROM WritegEEPROMTypeAEraseFlag. Flash needs to be erased before
writing data again and the smallest unit of erasure is sector. For EEPROM
emulation, after one sector is full, gEEPROMTypeAEraseFlag is
set. Users can call EEPROM_TypeA_eraseLastSector() according to
the flag. For example, add the following code after
EEPROM_TypeA_writeData() from step 5. Users can also choose an appropriate timepoint to erase the
full sector, as needed.EEPROM_TypeA_eraseLastSector();
Figure 3-4 EEPROM EraseAfter steps 1 through 6, the EEPROM emulation Type A is implemented in the application. See Section 5 for the flow.