AnsweredAssumed Answered


Question asked by Yashwanth K on Jul 7, 2017



I am working on S32K144 FlexCAN driver. I am storing Standard Id in RAM at 18 th position.


When I written 0x7E8 in RAM, It is storing like


DB0 = 0x1E

DB1 = 0xA0

DB2 = 0x00

DB3 = 0x00


But, It should store like


DB0 = 0x1F

DB1 = 0xA0

DB2 = 0x00

DB3 = 0x00


I am using below logic to write in 18th position:

p_stgFlexCANRegsAccess[u8_lFlexCANCh]->RAM[u8_lMbNo * FCAN_MB_SIZE + 1] = \

                                                      (p_stfMbInitParams->u32_mFlexCANId << FLEXCAN_MB_STDID_OFFSET(18));


I am taking Mb Number as 4 and MB SIZE is 4. So it is writing in RAM[16].


In 24th bit position, if I write '1' it is not storing its still showing like '0'. That is the reason If I write 0x7E8 it is storing like 0x1EA.


What is the issue with that bit. Why it is not storing '1'. 


Anyone help me. Waiting for your response.



Thanks & Regards,