libi2c causes board to halt

William Busacker wbusacker at
Mon Jan 1 10:29:08 UTC 2018

I'm having an issue with libi2c causing my program to completely halt.

Basic setup it this: I have multiple tasks each running their own rate 
monotonic with modes all interupts, timeslicing, and preemption, with 
one task making calls to an SPI driver using libi2c. At times after an 
spi transaction completes (I am watching the bus lines with a logic 
analyzer) all other tasks just stop. Rate monotonic timeouts never 
report and none of my watchdog timers fire either.

This only occurs when libi2c calls are being done, I've been able to 
trace the issue to that. It also is extremely inconsistent on when this 
occurs, sometimes it happens within the first few transactions, in the 
first few hundred, or not at all. It isn't between software changes 
either, merely powercycles.

I've tried doing some research as to why this happens, but I can't find 
any answers. I'm hoping one of you can steer me the proper direction.

RTEMS Version: 4.12 (I took the source when it was 4.12)
BSP: Raspberry Pi

More information about the users mailing list