ZHCADD5A November 2023 – April 2024 TMS320F28P650DH , TMS320F28P650DK , TMS320F28P650SH , TMS320F28P650SK , TMS320F28P659DH-Q1 , TMS320F28P659DK-Q1 , TMS320F28P659SH-Q1
EEPROM_Program_64_Bits() 函数提供将四个 16 位字编程到存储器中的功能。第一个参数 Num_Words 允许用户指定将写入多少个有效字。数据字分配给 Write_Buffer 的前 4 个索引,以供 Fapi_issueProgrammingCommand 函数使用。如果函数调用中指定的字少于四个,则缺少的字将用 0xFFFF 填充。这样做是为了符合 ECC 要求。
首先,测试是否存在已满的 EEPROM 单元。
EEPROM_Get_64_Bit_Data_Address();
接下来,如果指定的字数少于 4,则写入缓冲区中将填充 1。
int i;
for(i = Num_Words; i < 4; i++)
{
Write_Buffer[i] = 0xFFFF;
}
接下来,对数据进行编程,并且指针递增到对数据进行编程的下一个位置。
// 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);
oReturnCheck = Fapi_issueProgrammingCommand((uint32*) Bank_Pointer,
Write_Buffer, 4, 0, 0,
Fapi_AutoEccGeneration);
// Wait for completion and check for any programming errors
EEPROM_CheckStatus(&oReturnCheck);
Empty_EEPROM = 0;
// Increment to next location
Bank_Pointer += 4;