SPRADE8 November 2023 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
The EEPROM_Erase() function provides functionality for erasing the sector(s) used for emulation. At least one entire sector must be erased as partial erase is not supported. Before erasing, you must ensure that stored data is no longer needed/valid. In the Single Unit implementation, this function is only called when all EEPROM Banks and Pages are full.
The function begins by configuring the Write/Erase Protection masks for the EEPROM unit, and then calls the Fapi_issueBankEraseCommand function. Finally, it waits for completion and checks for any errors.
Fapi_StatusType oReturnCheck;
// Clears status of previous Flash operation
ClearFSMStatus();
Fapi_setupBankSectorEnable(FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTA, WE_Protection_A_Mask);
Fapi_setupBankSectorEnable(FLASH_WRAPPER_PROGRAM_BASE+FLASH_O_CMDWEPROTB,WE_Protection_B_Mask);
// Erase the EEPROM Bank
oReturnCheck = Fapi_issueBankEraseCommand((uint32*)FLASH_BANK_SELECT);
// Wait for completion and check for any programming errors EEPROM_CheckStatus(&oReturnCheck);
In the Single-Unit implementation, the EEPROM_Erase function leverages the Flash API to clear the Flash Bank. It no longer has any need for the Erase_Bank function from the Ping Pong Implementation and the two have been combined in EEPROM_Erase. Erase_Bank is no longer needed because it was created to optimize the erasing of all Flash Sectors designated for EEPROM Emulation when there were two EEPROM units.