add I2C_RX_FIFO_OVF_INT_ST handling to i2c_isr_handler_default (#4342)
Fixes crash on ESP32 when I2C FiFo overflows and interrupt function is unable to handle crash and throws this error: [E][esp32-hal-i2c.c:1013] i2c_isr_handler_default(): unknown int=4 Co-authored-by: 0xDEADBEEF <0xde4dbeef@gmail.com>
This commit is contained in:
		
							parent
							
								
									1f4491f4ee
								
							
						
					
					
						commit
						2243081f85
					
				| @ -945,6 +945,14 @@ static void IRAM_ATTR i2c_isr_handler_default(void* arg) | ||||
|             activeInt &=~I2C_RXFIFO_FULL_INT_ST; | ||||
|         } | ||||
| 
 | ||||
|         if(activeInt & I2C_RXFIFO_OVF_INT_ST) { | ||||
|             emptyRxFifo(p_i2c); | ||||
|             p_i2c->dev->int_clr.rx_fifo_full=1; | ||||
|             p_i2c->dev->int_ena.rx_fifo_full=1; //why?
 | ||||
| 
 | ||||
|             activeInt &=~I2C_RXFIFO_OVF_INT_ST; | ||||
|         } | ||||
| 
 | ||||
|         if (activeInt & I2C_ACK_ERR_INT_ST_M) {//fatal error, abort i2c service
 | ||||
|             if (p_i2c->mode == I2C_MASTER) { | ||||
|                 i2c_update_error_byte_cnt(p_i2c); // calc which byte caused ack Error, check if address or data
 | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user