Other Parts Discussed in Thread: UNIFLASH, NOWECC, , TMS570LC4357, SEGGER
Hi,
Does TI team provide a script or tool to generate ECC array under Linux ?
This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi QJ,
Thank you for reply!
I am using the function "Fapi_issueProgrammingCommand" from flash API 021 :
Fapi_issueProgrammingCommand((uint32_t *)dst, (uint8_t *)src, (uint32_t) bytes, 0, 0, Fapi_AutoEccGeneration);
but I got wrong result as you mentionned in your previous reply,
The flash API write twice the same ECC (even if it is wrong) to two locations as shown here :
Calculated ECC for data at address 0x20000 is the same (0x92) as the one for address 0x20010 which is not yet programmed !
I don't understand why the flash API write wrong things to ECC flash area,
any help would be appreciated,
Thank you
Hello,
Yes the memory is erase and programmed without any problem, I check the return values and always equal to "eFLASH_STATUS_OK"
in my example here, I just programmed the first 64 bytes to make sure that the Flash API is not working well...
0x20000 contains data 0xEA00206FEA00743E , the ECC should be equal to 0x62, but I get 0x92. the other shown addresses are not programmed
Hi,
still looking for a solution for my issue.
Yes some ECC are correct
this is my initilization function of FAPI021 :
--------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------
Is it the correct way to initialize the flash API ?
Hello,
Please try the flash erase/program functions in TI bootloader to see if the ECC is calculated and written correctly.
You can call flash erase/program functions in your beginning of main():
data[32]=....
Fapi_BlockErase( 1, 0x180000, 32);
Fapi_BlockProgram( 1, 0x180000, &data[0], 32);
Hello,
I generated the ECC with F021Flash API and programmed to flash. They are correct:
This is the code I used:
uint32_t Success[] = {0xea0004bd, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x00000000, 0x00000000,
0x4605b538, 0x2d06460c,
0x2d08d005, 0x2d0ed003,
0x2005bf18, 0x2010d108,
0xfa34f000, 0x60044803};
status = Fapi_BlockErase(0, 0x08000, 0x2000);
status = Fapi_BlockProgram( 0, 0x8000, (unsigned long)&Success, 64);
If you don't erase the flash before programming it, please erase it first.