Multi core debugging

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

    • 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: Forum Rules

      Keep in mind, this is not a support forum. Its main purpose is user to user interaction.
      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 contact us per e-mail.
      Alternatively our support system can be used as well: segger.com/ticket/
    • 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;

      }