Added a TEST mode to the imu exercise program in main. TEST mode fetches data from the IMU but does not store it to the external flash.
The IMU driver task seems to be dieing in fetch_imu_gyro_num().
Debugging IMU driver: it seems that sometime the I2C TC interrupt doesn't fire.
Debugging IMU driver: the I2C driver prematurely stops trasnsfering data due to an off-by-one error. The DMA channel thinks there is no more data left to transfer, but the I2C channel thinks one more byte must be transfered. This situation seems to occur only 60% of the time.
Debugging IMU driver: I was wrong, the I2C peripheral's memory access is working normally. The real issue is that SDA stays low after fetch_imu_gyro_data(). It appears to be caused by the IMU, as putting the microcontroller I2C pins into GPIO input mode has no effect.
Added functions to i2c module to submit a ticket without creating a ticket structure.
Debugging I2C bus.
Debugging I2C: fixed bus lockup issue by modifying add_ticket_i2c() to not process transactions where size==0.
Removed debugging printfs from imu.c.
Added checks to IMU driver to prevent overflowing the imu and gyro point buffers.
Changed I2C_CONVEYOR_SIZE back to 8.