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.

TMS570LS3137: TI_FeeInternal_Fletcher16 same checksum for 0x00 and 0xFF

Part Number: TMS570LS3137

I am trying to implement FEE functionality and I run into an issue: when value is 0x00 I cannot write 0xFF and when value is 0xFF I cannot write 0x00. 

In the file ti_fee_writeSync.c in the function Std_ReturnType TI_Fee_WriteSync(uint16 BlockNumber,uint8* DataBufferPtr) I notice that the line below output the same value if my payload in DataBufferPtr is 0x00 and OxFF

TI_Fee_u32FletcherChecksum = TI_FeeInternal_Fletcher16(DataBufferPtr, TI_Fee_GlobalVariables[u8EEPIndex].Fee_u16BlockSize-TI_FEE_BLOCK_OVERHEAD);

Therefore the function TI_Fee_WriteSync doesn't write the new data in the bloack as the checksum appears to be the same! if(TI_Fee_u32FletcherChecksum == u32CheckSum) is not true few lines below.

I do not see that as a wished behavior,

Am I doing something wrong or is it a bug ?

We fixed it by documenting the issue and explicitly forbid 255 value when handling TI_Fee_WriteSync function but it is not very convenient.