ZHCUBW3 April 2024
将 ECC 地址重新映射到数据地址并调用 Fapi_issueProgrammingCommand()。
Fapi_StatusType Fapi_issueProgrammingCommandForEccAddresses(
uint32 *pu32StartAddress,
uint16 *pu16EccBuffer,
uint16 u16EccBufferSizeInBytes
)
pu32StartAddress [in] | 闪存中 ECC 的起始地址,用于对 ECC 进行编程 |
pu16EccBuffer [in] | 指向 ECC 缓冲区地址的指针 |
u16EccBufferSizeInBytes [in] | ECC 缓冲区中的字节数。如果字节数为 1,则对 LSB(针对低 64 位的 ECC)进行编程。无法使用该函数单独对 MSB 进行编程。如果字节数为 2,则将对 ECC 的 LSB 和 MSB 字节进行编程。 |
该函数会将 ECC 存储空间中的地址重新映射到对应的数据地址空间,然后调用 Fapi_issueProgrammingCommand() 对提供的 ECC 数据进行编程。使用 Fapi_EccOnly 模式的 Fapi_issueProgrammingCommand() 的限制同样也适用于该函数。pu16EccBuffer 的 LSB 与主阵列的低 64 位相对应,pu16EccBuffer 的 MSB 与主阵列的高 64 位相对应。
pu16EccBuffer 的长度不可超过 2。
该函数在发出编程命令后不检查 STATCMD。当 FSM 完成编程操作时,用户应用程序必须检查 STATCMD 值。STATCMD 指示编程操作期间是否有任何故障发生。用户应用程序可以使用 Fapi_getFsmStatus 函数来获取 STATCMD 值。
Fapi_EccOnly 模式不应该用于闪存组 0 DCSM OTP 空间。如果使用,将返回错误。对于 DCSM OTP 空间,应使用 Fapi_AutoEccGeneration 或 Fapi_DataAndEcc 编程模式。
Fapi_Status_Success(成功)
Fapi_Status_FsmBusy(FSM 处于繁忙状态)
Fapi_Error_InvalidBaseRegCntlAddress(失败:用户提供的闪存控制寄存器基地址与预期地址不匹配)
Fapi_Error_AsyncIncorrectEccBufferLength(失败:指定的数据缓冲区大小不正确)
Fapi_Error_FlashRegsNotWritable(失败:闪存寄存器写入失败。用户应确保 API 从与闪存操作的目标地址相同的区域执行,或者用户应在闪存操作之前解锁。)
Fapi_Error_InvalidAddress(失败:用户提供的地址无效。有关有效地址范围的信息,请参阅 TMS320F28P65x 微控制器数据手册。)