RTT can't find _SEGGER_RTT on iMXRT when TCM memory reconfigured

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

    • RTT can't find _SEGGER_RTT on iMXRT when TCM memory reconfigured


      I'm debugging on an iMXRT1020. We use RTT and SystemView extensively. The iMXRT1020 has 256 KB ram on-board. This is configured at reset to be 64 KB ITCM, 64 KB DTCM, and 128 KB OCRAM. We put the _SEGGER_RTT struct in the DTCM, which RTT and SystemView find automatically. That is, until we recently changed the TCM configuration so that at code entry it is reconfigured to 96 KB ITCM, 160 KB DTCM. The additional data we put into DTCM caused _SEGGER_RTT to be placed > 64 KB into the DTCM, which the Segger tools (J-Link GDB Server V6.46g OSX) was unable to find. If we re-arrange things so that _SEGGER_RTT is placed in that 1st 64 KB of DTCM, the tools find it and work.

      We're able to work around this, but want to let you know in case this is something that can be fixed in the Segger tools.

    • Hello Kevin,

      Thank you for your inquiry.
      The issue is that J-Link can only assume default memories to always be accessible. Memory reads on address ranges that are not available can cause damage on some target devices which is why we will only search ranges that we know are existing.
      But you can tell J-Link to search a specific range or set it to the RTT control block directly.
      How is described in the J-Link user manual in the RTT FAQ section or in the SystemView user manual.

      Best regards,
      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 you can contact us via our support system: segger.com/ticket/

      Or you can contact us via e-mail.