This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem reading EEPROM in C6670

I'm trying to read the serial number in my TMDSEVM6670LE board using the code in pdk_C6670_1_0_0_17/packages/ti/platform/evmc6670l/platform_lib

My code was initially in L2SRAM but I started to put some of the earlier functions in DDR3 to clear space for more important code in L2SRAM.

So what I do now is start the debugging session, load the evmc6670l.gel file and connect cores 0 and 2 (the only that are relevant to this problem). On doing so, core 0 will automatically call the GEL file's Global_Default_Setup(), and after that I can load my program.

My program is basically main() in L2SRAM which starts the BIOS scheduler. Then, a Task running in DDR3 calls the platform_get_info() function from platform_lib (which is loaded in L2SRAM), and inside this library the (relevant) call sequence goes as follows:

platform_get_info -> getSerialNumber -> platform_device_read -> i2cEepromRead -> i2cEepromWriteBlock

from the last function, I get a return value 3, i.e. I2C_RET_IDLE_TIMEOUT .

Previously, I did *not* use the GEL file and I was configuring the PLLs myself calling platform_init() inside Core 0's main(), but that ceased to work once I started offloading code to DDR3 (since I needed to have DDR3 PLLs properly configured *before* the code was loaded). However, platform_get_info() never failed like it does now.

Could this, then, be a timing issue? I'd appreciate pointers to help me debug this problem.