[SOLVED] Multi core debugging

This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

  • [SOLVED] Multi core debugging

    Hi
    Now,I'm currently validating IP about cortex-A7 with FPGA. I can connect to core0 of the cpu by JLINK, but not connect to core1.
    The JLINK version is V9. Like this,core1 defaults to halt as long as it be connected to JLINK.
    How to debug cores other than core0 using JLINK,or mulit-core debugging is not supported.
    Thanks
  • Hello,

    Thank you for your inquiry.
    What is the S/N of your J-Link?
    What target device are you looking to debug exactly?
    To enable multiple cores it is usually needed to enable them first over core0 for example.
    More information on how to enable all cores in a multi-core system is explained in the target devices reference manual.
    To implement that sequence a JLinkScript can be used. More information about this can be found in the J-Link user manual UM08001.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.
  • Hi

    Thanks for your explanation.
    The device information I founed is :SEGGER J-Link ARM V9.4, SN=59401308.
    I found information about muli-core ddbugging in chapter Multi-core debugging and J-Link script files in the J-Link user manual UM08001.
    But I didn't quite understand. Are there any script examples about multi-core debugging?
    I found some examples on the internet. The script was simple,and I didn't find any key usefull information.
    I was confused.

    LPC4350_DebugCortexM0.JLinkScript

    void ResetTarget(void) {
    int Speed;
    Report("J-Link script: Performing reset sequence");
    Speed = JTAG_Speed;
    JTAG_Speed = ;
    JTAG_WriteClocks();
    JTAG_Speed = Speed;
    }

    void InitTarget(void) {
    int v;
    int BitPos;
    int Speed;

    Report("NXP LPC4350 (Cortex-M4+M0 core) J-Link script");
    Speed = JTAG_Speed;
    JTAG_Speed = ;
    JTAG_Reset();// Perform TAP reset and J-Link JTAG auto-detection

    ) && (JTAG_TotalIRLen != )) {
    MessageBox("LPC4350_DebugCortexM4.JLinkScript has to be executed prior to this script.");
    JTAG_Speed = Speed;
    ;
    }

    ) {
    JTAG_DRPre = ;
    JTAG_DRPost = ;
    JTAG_IRPre = ;
    JTAG_IRPost = ;
    JTAG_IRLen = ;
    JTAG_SetDeviceId(, 0x4BA00477);// Device #0 is the Cortex-M4
    JTAG_SetDeviceId(, 0x0BA01477);// Device #1 is the Cortex-M0
    } else {
    JTAG_DRPre = ;
    JTAG_DRPost = ;
    JTAG_IRPre = ;
    JTAG_IRPost = ;
    JTAG_IRLen = ;
    JTAG_SetDeviceId(, 0x4BA00477);// Device #0 is the Cortex-M4
    JTAG_SetDeviceId(, 0x0BA01477);// Device #1 is the Cortex-M4 (only visible on buggy silicon)
    JTAG_SetDeviceId(, 0x0BA01477);// Device #1 is the Cortex-M0
    }
    CPU=CORTEX_M0;
    JTAG_Speed = Speed;

    }
  • Hello,

    A multi core debugging sample can be found here:
    wiki.segger.com/SEGGER_Ozone#D…mple_based_on_NXP_LPC4350

    How it works on your specific device should be explained in the devices reference manual. The documentation for JLinkScript files can be found in the J-Link user manual UM08001.

    Best regards,
    Nino
    Please read the forum rules before posting.

    Keep in mind, this is *not* a support forum.
    Our engineers will try to answer your questions between their projects if possible but this can be delayed by longer periods of time.
    Should you be entitled to support you can contact us via our support system: segger.com/ticket/

    Or you can contact us via e-mail.