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.