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.

TMS320F28377D: Global variable cannot be initialized correctly when emulator connected

Part Number: TMS320F28377D

Tool/software:

Hi team


Customer claims a global variable to indicate the device ip in their application, the global variable is initialized with a specific value through CPU2. 
The program works well in free run mode, but when emulator is connected, the global variable may becomes all 0 after initialization. 
I check the E2E thread which shows I need to confirm the RAM ownership for both CPU. So I checked below:


the variable I want to check is up, which locates in 0xF926 GS RAM3. 

the GS RAM3 ownership is allocated to CPU2. 

my question is: what’s the differences between free run and online debug? How can I debug to avoid this issue?

Thanks

Joe

  • Hi team

    Could you please kindly update this thread?

    Thanks

    Joe

  • Joe,

    I think this may be related to the GEL file, there is a directive during "On Target Connect" to initialize the RAMs, which will zero them out.  This is there so that on an device that is new we will not have ECC errors when RAM comes from power up in undefined state.  This has the drawback of what you are seeing, but we can get rid of this by editing the GEL file:

    In CCS go to Tools->GEL Files.  It will bring up a new window, you can double click the GEL file to open it in CCS.  Scroll down to line 77(assuming you are using the standard F2837x GEL), and you can comment out the RAMs you don't want to init on target connect.  Make sure you click save, then right click on the GEL and "Reload".  This will persist for any future debug sessions since we saved it back.

    Let me know if this addresses the issue.

    Best,

    Matthew