I recently added code to configure and use the I2C module to communicate with an external temperature sensor chip. I added code to setup GPIO pins 91 and 92 for use as SDA A and SCL A along with my other GPIO initialisation. When I tested my I2C code in a standalone project, it worked correctly, but when I tried to integrate it with my existing project, the I2C module did not seem to be able to send the start and stop bits: the I2CMDR[STT] and I2CMDR[STP] bits remained high after setting them at before and after writing data on the bus.
Eventually I traced the problem to the configuration of GPIO32 for the LED on the controlCard. When I moved the GPIO91/92 configuration before this, the problem appears to be solved, but I can't think why this should be.
My I2C code is now integrated into my original project, and is working correctly, so this is more out of curiosity, and to avoid similar problems in the future by understanding it.