I am seeing a problem with I2C Driver of S32K148.
Driver is properly initialized and I could see that the peripherals connected on I2C bus are communicating. That gives me confidence that the interrupts are working and Hardware is correctly connected.
But here is the problem:
After sometime (may be after a minutes of continuous communication), the driver stops communicating with peripherals by hitting the break condition through DEV_ASSERT at master->rxBuff != NULL as highlighted in the source code below.
I modified this driver code with a microsecond resolution counter instead of OSIF calls for timeouts for these blocking calls. Modified Driver files are attached with this post for reference.
static void LPI2C_DRV_MasterHandleReceiveDataReadyEvent(uint32_t instance, LPI2C_Type *baseAddr, lpi2c_master_state_t *master)
DEV_ASSERT(g_semI2cMasterFlag[instance] != FLAG_UNKNOWN);
/* Received data ready */
DEV_ASSERT(master->rxBuff != NULL);
FYI, I am working with S32K148EVB using S32DS.
Please suggest your recommendations to solve this issue.