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 placing variables in DDR3

Hi,

I am writting a multicore code for C6678 using SYS/BIOS (6_32_05_54) and IPC (1_24_00_16). The same code runs on all the cores.

I use a linker file.cmd to place arrays where I want in memory, using SECTIONS

I would like some arrays to be in DDR3, but when I write it in the .cmd, I have a strange problem. But if I put them in MSMCSRAM, it works.

The problem is, when I load the program on a core, the core doesn't run automatically until main, but to C$$EXIT. And then, if I click "play" it does nothing. When I stop again, the core has run 4 bytes of code (from 0x82A860 to 0x82A864).

If I put the arrays in MSMCSRAM, it runs automatically until main.

I have no idea where I should look for a bug...

Can someone try to help me ?

Regards

  • Ok, I found the problem :

    I have to execute Global_Default_Setup (provide by GEL file) on each core before loading the program.

    Now, the cores load the program and go to the main.

  • Benoit,

    Check the output of the Gel file when you connect.  If you have the DIP switches on your board configured for "No Boot", the GEL file will automatically execute this function when you connect to the core 0.  The GEL output should say something about the Boot configuration settings and not executing this funciton because this should be taken care of in the boot routine if this is the case.

    Regards,

    Dan

  • Hi,

    I had DIP switch configured for IBL NOR boot on image 0 (default). The GEL output was "No initialization performed since bootmode = 0x00000005"

    I changed it for "No boot", and the GEL is executed when connecting.

    If someone is interrested, I found the DIP configurations here : http://processors.wiki.ti.com/index.php/TMDXEVM6678L_EVM_Hardware_Setup

    Thanks.