SPRUJC5 April 2024 TMS320F28P550SJ , TMS320F28P559SJ-Q1
Sets up the flash state machine registers for the 512-bit (32 16-bit words) programming with user provided flash data and ECC data and issues the programing command to valid Flash and OTP memory.
Fapi_StatusType Fapi_issueDataAndEcc512ProgrammingCommand(
uint32 *pu32StartAddress,
uint16 *pu16DataBuffer,
uint16 u16DataBufferSizeInWords,
uint16 *pu16EccBuffer,
uint16 u16EccBufferSizeInBytes
)
pu32StartAddress [in] | 512-bit aligned flash address to program the provided data and ECC. |
pu16DataBuffer [in] | Pointer to the Data buffer address. Address of the Data buffer should be 512-bit aligned. |
u16DataBufferSizeInWords [in] | Number of 16-bit words in the Data buffer. Max Databuffer size in words should not exceed 32. |
pu16EccBuffer [in] | Pointer to the ECC buffer address |
u16EccBufferSizeInBytes [in] | Number of 8-bit bytes in the ECC buffer. Max Eccbuffer size in words should not exceed 8. |
This function programs both the user provided 512-bit data (second parameter) and 8 bytes of ECC data (fourth parameter) together at the user provided 512-bit aligned flash address. The address of data provided must be aligned on a 512-bit memory boundary and the length of data must correlate to the supplied ECC. That means, if the data buffer length is 32 16-bit words, the ECC buffer must be 8 bytes (1 ECC bytes corresponding to 64-bit data).
Each byte of pu16EccBuffer corresponds to each 64-bit of the main array data provided in the pu16DataBuffer.
For more details, see Table 3-6.
The Fapi_calculateEcc() function can be used to calculate ECC for a given 64-bit aligned address and the corresponding data
For allowed programing range for the function, see Table 3-4.
Flash API | Main Array | DCSM OTP | ECC | Link Pointer |
---|---|---|---|---|
Fapi_issueDataAndEcc512ProgrammingCommand() | Allowed | Allowed | Allowed | Not Allowed |
Example implemention for this function will be released in next C2000ware release.