SLAAEB4 april   2023 MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G3105 , MSPM0G3106 , MSPM0G3107 , MSPM0G3505 , MSPM0G3506 , MSPM0G3507 , MSPM0L1105 , MSPM0L1106 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346

 

  1.   Abstract
  2.   Trademarks
  3. 1Introduction
    1. 1.1 Difference Between EEPROM and On-Chip Flash
  4. 2Implementation
    1. 2.1 Principle
    2. 2.2 Header
  5. 3Software Description
    1. 3.1 Software Functionality and Flow
    2. 3.2 EEPROM Functions
      1. 3.2.1 Global Variables
      2. 3.2.2 EEPROM_TypeB_readDataItem
      3. 3.2.3 EEPROM_TypeB_findDataItem
      4. 3.2.4 EEPROM_TypeB_write
      5. 3.2.5 EEPROM_TypeB_transferDataItem
      6. 3.2.6 EEPROM_TypeB_eraseGroup
      7. 3.2.7 EEPROM_TypeB_init
    3. 3.3 Application Integration
    4. 3.4 EEPROM Emulation Memory Footprint
    5. 3.5 EEPROM Emulation Timing
  6. 4Application Aspects
    1. 4.1 Selection of Configurable Parameters
      1. 4.1.1 Number of Data Items
      2. 4.1.2 Cycling Capability
    2. 4.2 Recovery in Case of Power Loss
  7. 5References

EEPROM_TypeB_init

The function is used to initialize the EEPROM emulation. It should be done once before using EEPROM emulation, for example after the device is powered up. This ensures that the relevant Flash area is properly formatted and global variables are correctly assigned.

The software flow is shown in Figure 3-7. Firstly, it searches the active group and checks the format by iterating over all group headers. If active group exists, it will erase other groups and transfer the active group. If active group does not exist, all groups are erased.

Figure 3-8 and Figure 3-9 shows different cases for EEPROM_TypeB_init. A is a normal case. B is the initialization after power down during transfer. C is a case where Erasing groups is not erased. D is case where all groups are empty. E is the case with invalid data.

The output of the function is the operation states. Besides, gActiveGroupNum and gActiveDataItemNum are updated to trace the active group.

  • Input: void
  • Output:uint32_t operation state
GUID-46B189D8-359E-4800-A769-5BA7E3FC610B-low.png Figure 3-7 The Software Flow of EEPROM_TypeB_init
GUID-5EB4350E-0C89-43E3-8C22-9B8C601C8CF3-low.png Figure 3-8 EEPROM_TypeB_init for Three Cases When Active Group Exists
GUID-9F870880-721A-429A-9EFC-9EE3132227F1-low.png Figure 3-9 EEPROM_TypeB_init for Two Cases When Active Group Does Not Exist