Kernel goes to infinite loop

Hi All!
Ive got some problem with kernek, I suppose
I trying to use HAL I2C with restart transmission and non-blocking API
And when I use transmit and then receive I always go into the default handler(infinit loop)
I checked all priorities and My I2C is based on an appropriate STM example
I asked about this on ST community but still unresolve this problem
My code is that:

I2C_HandleTypeDef hi2c1;

osThreadId_t I2CcommHandle;
const osThreadAttr_t I2Ccomm_attributes = {
  .name = "I2CComm",
  .stack_size = 128 * 8,//4,
  .priority = (osPriority_t) osPriorityBelowNormal,
};
void startI2Ccomm(void *argument);

I2CcommHandle = osThreadNew(startI2Ccomm, NULL, &I2Ccomm_attributes);

static void MX_I2C1_Init(void)
{

  /* USER CODE BEGIN I2C1_Init 0 */

  /* USER CODE END I2C1_Init 0 */

  /* USER CODE BEGIN I2C1_Init 1 */

  /* USER CODE END I2C1_Init 1 */
  hi2c1.Instance = I2C1;
  hi2c1.Init.ClockSpeed = 80000;///100000;
  hi2c1.Init.DutyCycle = I2C_DUTYCYCLE_16_9;//I2C_DUTYCYCLE_2; //
  hi2c1.Init.OwnAddress1 = 0; // не должно быть 0
  hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT;//I2C_ADDRESSINGMODE_10BIT;//I2C_ADDRESSINGMODE_7BIT; //
  hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE;
  hi2c1.Init.OwnAddress2 = 0; // не должно быть 0
  hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE;
  hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE;
  if(HAL_I2C_Init(&hi2c1) != HAL_OK)
  {
    Error_Handler();
  }
  if (HAL_I2CEx_ConfigAnalogFilter(&hi2c1, I2C_ANALOGFILTER_ENABLE) != HAL_OK)
  {
    Error_Handler();
  }
 
  if (HAL_I2CEx_ConfigDigitalFilter(&hi2c1, 0) != HAL_OK)
  {
    Error_Handler();
  }
}

void startI2Ccomm(void *argument)
{

	char* out;
	uint8_t pointer[8]= {0,1,2,3,4,5,6,7};
	uint16_t LTCV, LTCA;
	pointer[7] = 0x10;
	char LTCT[] = "LTC\r\nCurrent = X.XXX A*\r\nVoltage = XX.X V*\r\nEND_LSN_DATA\r\n"; // 58?
	uint8_t addr = 0x00;//((I2C_device_addr)<<3);
	addr = ((I2C_device_addr)<<1);

	for(;;)
	{

		if((!(tcpstatus>0x07)) && (tmrstatus == 0x01))
		{

			pointer[0] =LTC4151_CONTROL_REG;//LTC4151_SENSE_H;
			pointer[1] = LTC4151_TEST_MODE;

			if(HAL_I2C_Master_Seq_Transmit_IT(&hi2c1, (uint16_t)addr, pointer, 2, I2C_FIRST_FRAME)== HAL_OK)
			 {

					if(HAL_I2C_Master_Seq_Receive_IT(&hi2c1, (uint16_t)addr, pointer, 7, I2C_LAST_FRAME) == HAL_OK)
						{
						if(pointer[6] == 0x10)
							HAL_Delay(20);

						}

			 }

		}


	}
	vTaskSuspend(NULL);
	osDelay(10);
}
void HAL_I2C_MasterTxCpltCallback(I2C_HandleTypeDef *I2cHandle)
{
	asm("NOP");
}

void HAL_I2C_MasterRxCpltCallback(I2C_HandleTypeDef *I2cHandle)
{
	asm("NOP");
}

void HAL_I2C_AddrCallback(I2C_HandleTypeDef *hi2c, uint8_t TransferDirection, uint16_t AddrMatchCode)
{
	 asm("NOP");
}
void HAL_I2C_ListenCpltCallback(I2C_HandleTypeDef *hi2c)
{
 // uwTransferEnded = 1;
	 asm("NOP");
}

void HAL_I2C_ErrorCallback(I2C_HandleTypeDef *I2cHandle)
{
  if (HAL_I2C_GetError(I2cHandle) != HAL_I2C_ERROR_AF)
  {
    Error_Handler();
  }
}

My code
Thus hope you help
Thanks in advance

What did you already try to investigate and resolve your problem ?
What’s the call stack when stopping the target with the debugger in the infinite loop ? BTW what’s the infinite loop ? Your configASSERT macro implementation ? HardFault ?
Did you already step through the code with the debugger ?
How is this issue related to FreeRTOS at all ?

I suppose that you have seen that all ST interrupts have a default implementation e.g.:

   .weak      I2C3_ER_IRQHandler   
   .thumb_set I2C3_ER_IRQHandler,Default_Handler

and that the default handler consists of an infinite loop:

Default_Handler:
Infinite_Loop:
  b  Infinite_Loop

Sometimes I add explicit declarations of every possible interrupt to my code, just to see which interrupt was actually triggered.

See stm_interrupts.c (7.4 KB), which might not be complete for your platform.
The HardFault_Handler is included in this list.

I checked interrupt priorities and handlers, also I checked to samples conformity
These exception condotion I notices in debug mode, just after I2C receive API calling
These exception is in startup_stm32f429vitx.s and its a Default_Handler: Infinite_Loop: b Infinite_Loop string in that source

Thanks for your support, Ill try it

Seems there is a mismatch between the handler you installed/implemented and the actual (Rx) IRQ fired by the I2C.

I tried and that Ivegot, cant recognize given value

Did you define configASSERT ? It’s extremely helpful for development.
You’ve to find out the causing exception/interrupt. Double check which interrupts you’ve enabled. (I guess you did not activate the WWDG watchdog.)
Step through the code to see what’s going on and determine when and which exception or interrupt invokes the default handler. See the reference manual for the NVIC details.
See also Debugging and diagnosing hard faults on ARM Cortex-M CPUs for some more useful hints.
Good luck !

Thanks to all, the problem was in event interrupts and appropriate handler