ZHCAEX4 January 2025 F29H850TU , F29H859TU-Q1
EEPROM_UpdateBankStatus() 函数的功能是更新 EEPROM 组状态。此函数由 EEPROM_Write_Page() 函数调用。首先读取 EEPROM 组状态,以确定如何继续。
uint8_t Current_Bank_Status = *(Bank_Pointer);如果此状态表示 EEPROM 组为空,则状态会更改为当前并进行编程。
Fill_Buffer(Bank_Status, status_buffer_len, CURRENT_BANK);
EEPROM_Write_Buffer(Bank_Pointer, Bank_Status);
Page_Counter = 0;
Page_Pointer = Bank_Pointer + WRITE_SIZE_BYTES*2;如果状态不为空,则接下来检查是否存在已满的 EEPROM 组。在这种情况下,当前 EEPROM 组状态将更新以显示 EEPROM 组已满,并且下一个组的状态将设置为当前,以便允许对下一个 EEPROM 组进行编程。最后,页面指针会更新为新 EEPROM 组的第一页。
Fill_Buffer(Bank_Status, status_buffer_len, CURRENT_BANK);
EEPROM_Write_Buffer(Bank_Pointer + WRITE_SIZE_BYTES, Bank_Status);
Bank_Pointer += Bank_Size;
if (Bank_Counter == NUM_EEPROM_BANKS - 1)
{
return;
}
Fill_Buffer(Bank_Status, status_buffer_len, CURRENT_BANK);
EEPROM_Write_Buffer(Bank_Pointer, Bank_Status);
Page_Counter = 0;
Page_Pointer = Bank_Pointer + WRITE_SIZE_BYTES*2;