Bug in Embedded Motion Driver mpu_read_fifo

By paolod , 2 December 2015

Hello,
There is a bug in the mpu_read_fifo function of the Embedded Motion Driver 5.1.3:
If it's called when there is less than one complete packet in the FIFO, it returns immediately without setting the 'more' flag to 0. The mpu_read_fifo_stream function does set the more flag correctly in this case.
If a program is calling mpu_read_fifo in a loop to read the entire FIFO contents until more becomes 0, and more is nonzero before the first call to mpu_read_fifo, then it could get stuck in an infinite loop because more would never be set to 0. The workaround is to set more to 0 before calling mpu_read_fifo.
-Paolo

phpbb Topic ID
31756