Index: App/Services/MsgQueues.h =================================================================== diff -u -r7d70e839bc71f6fc37da8cd12eecb374841882df -r8695ea8b1a4709f240d5a5663db888625c72b823 --- App/Services/MsgQueues.h (.../MsgQueues.h) (revision 7d70e839bc71f6fc37da8cd12eecb374841882df) +++ App/Services/MsgQueues.h (.../MsgQueues.h) (revision 8695ea8b1a4709f240d5a5663db888625c72b823) @@ -40,6 +40,7 @@ NUM_OF_MSG_QUEUES } MSG_QUEUE_T; +#pragma pack(push,1) typedef struct { U16 msgID; // ID of message @@ -57,6 +58,7 @@ MESSAGE_T msg; // message U08 crc; // message CRC } MESSAGE_WRAPPER_T; +#pragma pack(pop) #define MESSAGE_OVERHEAD_SIZE (sizeof(MESSAGE_HEADER_T) + sizeof(U08)) Index: App/Services/SystemComm.c =================================================================== diff -u -rd298a85322169dcc173c6197682864c2e9dbcd24 -r8695ea8b1a4709f240d5a5663db888625c72b823 --- App/Services/SystemComm.c (.../SystemComm.c) (revision d298a85322169dcc173c6197682864c2e9dbcd24) +++ App/Services/SystemComm.c (.../SystemComm.c) (revision 8695ea8b1a4709f240d5a5663db888625c72b823) @@ -100,8 +100,10 @@ canGetData( canREG1, canMESSAGE_BOX2, data ); blankMessageInWrapper( &rcvMsg ); memcpy( &(rcvMsg.msg.hdr), dataPtr, sizeof(MESSAGE_HEADER_T) ); - memcpy( &(rcvMsg.msg.cargo), dataPtr+sizeof(MESSAGE_HEADER_T), rcvMsg.msg.hdr.cargoLen ); - memcpy( &(rcvMsg.crc), dataPtr+(sizeof(MESSAGE_HEADER_T)+rcvMsg.msg.hdr.cargoLen), sizeof(U08) ); + dataPtr += sizeof(MESSAGE_HEADER_T); + memcpy( &(rcvMsg.msg.cargo), dataPtr, rcvMsg.msg.hdr.cargoLen ); + dataPtr += rcvMsg.msg.hdr.cargoLen; + rcvMsg.crc = *dataPtr; addToMsgQueue( MSG_Q_CAN_UI_2_HD, &rcvMsg ); }