Other Parts Discussed in Thread: HALCOGEN, TMS570LS3137
Hi all,
I'm using TMS570LS3137 and Halcogen 3.6.0.
In my CanGetData, derived from CanGetData created by Halcogen, the number of received bytes is 13! How is this possible? The maximum value should be 8.
I'm sure that the value of received bytes is 8.
See the line:
/** - Get number of received bytes */
size = node->IF2MCTL & 0xFU;
in the following my Code:
uint32_t canGetDataAdvanced(canBASE_t *node, uint16_t messageBox, uint16_t *messageId, uint8_t * const data)
{
uint32_t i;
uint32_t size;
uint8_t *pData = (uint8_t *)data;
uint32_t success = 0U;
uint32_t regIndex = (messageBox - 1U) >> 5U;
uint32_t bitIndex = 1U <NWDATx[regIndex] & bitIndex))
{
success = 0;
}
else
{
while (node->IF2STAT & 0x80);
/** - Copy data into IF2 */
node->IF2NO = messageBox;
while (node->IF2STAT & 0x80);
/** - Get number of received bytes */
size = node->IF2MCTL & 0xFU;
/** - Copy RX data into destination buffer */
for ( i = 0U; i IF2DATx[i];
#else
*pData++ = node->IF2DATx[s_canByteOrder[i]];
#endif
}
*messageId = (node->IF2ARB & CAN_IFARB_11ID_M) >> 18;
success = 1U;
if ( node->IF2MCTL & 0x4000U )
{
success = 3U;
}
}
taskEXIT_CRITICAL();
return success;
}
Thanks