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.

TMS320F28379D: Dual core debug session boot issue

Part Number: TMS320F28379D
Other Parts Discussed in Thread: C2000WARE

Hi,

I am trying to debug CPU1 & CPU2 & have configured the debug session to load CPU1 & CPU2 with their corresponding .out files. The problem I am facing is that the CPU1 is waiting for CPU2 to boot-up (using IPCs for initializing CPU2 after CPU1 has completed initialization of itself and all peripherals for CPU2). I find CPU1 waiting for CPU2 even when CPU2 has already finished booting and acknowledging the IPC for boot requested by CPU1.

I am trying to mimic the boot sequence for CPU2 from CPU1 as shown in example projects for GPIO toggle and LED blink (for CPU1 and CPU2) from C2000Ware package. I am pretty clear that both cores boot-up successfully without debug session (free run) as I have separate LED tied to each core to blink.

Another point which I wanted to confirm is that CPU1 & CPU2 do NOT share the timer modules, correct or not? If true, I am facing issue with initialization of CPU2's timers from CPU2 itself. Do I need to initialize that from CPU1 too (I guess no, CPU2 is responsible for its own timer modules).

Thanks & Regards,
Sumit Panse

  • Hi Sumit,

    Are you using the function IPCBootCPU2 for booting CPU2?

    Note that this function will get stuck when debugger is connected. This is because, in debug mode, CCS takes care of booting the CPU2.

    Please use this function incase you are running standalone. In the examples, you may notice that his function is invoked only if _STANDALONE macro is defined.

    There are separate CPU timer instances in each of the CPU subsystems. These are configured separately by the respective CPUs. In CPU2 subsystem, CPU2 must initialize the timer clock (CpuSysRegs.PCLKCR0.bit.CPUTIMER0) and other timer module registers.

    Regards,

    Veena

  • Hi Veena,

    Yes, I'm using function `IPCBootCPU2` for booting CPU2. Can you please suggest any alternative to it which I can use for debugging?

    Okay, I understood the explanation CPU timer instances for each CPU subsystems. The only concern left for me is the alternative for `IPCBootCPU2` function.

    Regards,
    Sumit Panse

  • Hi Sumit,

    You may skip that function while debugging as CPU2 boot is taken care by debugger.

    #ifdef _STANDALONE
    IPCBootCPU2();
    #endif

    Add the predefined symbol _STANDALONE only for standalone execution.

    Regards,

    Veena