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.

CCS/TMS320F28379D: How to debug 2nd project while already 1st project is debugging and running

Part Number: TMS320F28379D
Other Parts Discussed in Thread: CONTROLSUITE

Tool/software: Code Composer Studio

Hello there 

I am trying to use 2 CPUs same time. I have debugged and run the project 1 in CPU 1 now when I try to debug and run project 2 in CPU 2 then it tells me "stop the existing debug project 1" I have read this link http://dev.ti.com/tirex/explore/node?node=AF77MYXC5GXV9l1NS.Clig__FUz-xrs__LATEST it tells don't debug but load the 2nd project but didn't get the process. Can you please explain the entire process step by step so I can run two projects at the same time on CPU 1 and 2.

Thanks

Avi

  • Hi Avi,

    Avi P said:
    it tells don't debug but load the 2nd project but didn't get the process. Can you please explain the entire process step by step so I can run two projects at the same time on CPU 1 and 2.

    Please see the attached video for an example:

    /cfs-file/__key/communityserver-discussions-components-files/81/multicore_5F00_debug.zip

    Thanks

    ki

  • Thank you so much for your useful and informative video. In your example, you have both different .out the file you load but when I tried both the same file then It only runs cpu1 but CPU 2 is suspended. 

  • Avi P said:
    but CPU 2 is suspended. 

    That is correct. When you manually load a program, it would auto-run to main and then halt there (as shown in your screenshot). You can then manually press the "resume" button to execute CPU2. In my video, CPU2 was also halted at main and I manually pressed the "resume" button  (at 0:39) to continue execution.

  • Ya, that works if I add a different project, but what I have tried to do, load the same project in cpu2 then it gave me this error, don't know what to do.

  • What exactly does this program do? Was it designed so that it can be run on two separate cores of a multi-core target? In my example, each program was for a specific core. That is why there is two separate projects for it. Trying to load/run the first program on both cores would cause various conflicts. 

  • This is for the LLC converter to maintain 11.6V output. If you open the controlSUIT then this is the location of the project, 

    C:\ti\controlSUITE\development_kits\TIDM_1001\v1_00_00_00\f2837x\HV2PHILLLC.

  • This application appears to be written for a single CPU device. Also it is likely to be executing from shared RAM. Note this message in your screenshot:

     "If Erase/program (E/P) operation is being done on one core, the other core should not execute from shared-RAM (SR) as they are used for the E/P code."

     That is why you are getting the error you see. CPU1 is executing while CPU2 is programming the flash.

    You can try halting CPU1 first before programming CPU2. This will likely allow the flashing to succeed. However, I think there will be other issues when you try to run both at the same time unless you modified the program being loaded to the CPU2 to support this dual core environment. These are all things beyond the tools (and beyond my area of expertise and what is typically supported on this forum).

  • Thank you Ki for your quick and positive response, So I can't run these two same programs, or also another program has E/P. How can I identify the project has E/P is used or not.

  • E/P is simply Erase/Program of the flash. Loading a program is an "E/P" operation. Basically you cannot load a program for one CPU if the other CPU is running from Shared RAM.

    How do you determine if a program is running from shared RAM? Check the generated map file or your project's linker command file.