ZHCADD5A November 2023 – April 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
EEPROM_Get_64_Bit_Data_Address() 提供确定 EEPROM 单元是否已满并分配正确地址(如果需要)的功能。如果检测到已满的 EEPROM 单元,则使用 EEPROM_Erase() 函数擦除 EEPROM,并将地址重置为第一个闪存扇区的开头。
首先,根据所使用的器件和配置设置 EEPROM 的结束地址。END_OF_SECTOR 指令在 EEPROM_Config.h 文件中进行设置。
End_Address = (uint16 *)END_OF_SECTOR; // Set End_Address for sector
接下来,将 EEPROM 组指针与结束地址进行比较。如果从当前 EEPROM 组指针开始写入 4 个 16 位字会超出结束地址,则表明该扇区已满。此时,EEPROM 单元被擦除,执行空白检查,并且 EEPROM 组指针被重置为 EEPROM 单元的开头。
if(Bank_Pointer > End_Address-3) // Test if EEPROM is full
{
Erase_Inactive_Unit = 1;
Erase_Blank_Check = 1;
EEPROM_Erase();
Erase_Inactive_Unit = 0;
RESET_BANK_POINTER;
}