I`m not sure if this is a problem with anything related to the NXP software
But I was working with some legacy projects and I was able to get output from the debugger using the follownig command
SEGGER_RTT_printf(0, " INIT MAIN LOOP\r\n");
But I updated the MCU Expresso version from 10.3 to 11.0.0 build 2516 and it is not working anymore
The program executes the above line but I can`t see any output in the Segger J-Link software, and the only thing that changed was the IDE vesion
Can anyone help me find out what may be the cause of this problem?
Kind regards
I called the function SEGGER Init. And I have the SEGGER_RTT variable.
The only difference from your setup is that I have an error when I click the Channel Infos option in the upper menu
The error is in the screenshot in my previous post
This is really strange. DO you have the installer for the 10.3 version? I think I`m gonna go back to the previous version of the MCU Expresso. I really need these debug messages
THank you
I believe this is more a problem of Linux and SEGGER than MCUXpresso. The IDE really has nothing to do with the RTT, except that the SEGGER_RTT variable might be optimized be the linker (which you confirm is not the case). The RTT can be used without an IDE too. You might try to connect to your board with RTT from a Windows host to check if the problem is really on the Linux side. What I have seen (at least on Windows) is the problem of mixing different J-Link versions. SEGGER recently changed the installation procedure to combine everything into a single installation folder, so this might be the issue. In any case, make sure you are compiling and using and executing all the same SEGGER versions.
Other thoughts:
- does your SEGGER RTT variable have the same string at the beginning as in my screenshot? Because the RTT is checking for that signature (and not for the variable name). It scans the RAM for that signature
- maybe the RTT fails to detect that signatur. I had cases where the RTT was assuming the wrong RAM memory map. Find out the address of your SEGGER_RTT variable and use that address manually in the dialog below:
I hope this helps,
Erich
I just realized that I can connect to the probe using any frequency. What should be the correct frequency?
Does this depend on the microcontroller I`m using? I`m using a MKL17Z64XXX4
I have updated from 10.3.1 to 11.0.0 and the SEGGER RTT works the same as before.
I would check in the Viewer if the channel #0 is properly recognized:
if not it means that the RTT block is not present and might have been removed by the linker?
I hope this helps,
Erich
Hi Erich, thanks for the answer.
How can I check this? I`ve tried all the options here but I couldn`t find the window that`s on your screenshot
Maybe because I`m using Linux it`s a bit different
There`s an option called "Channel Infos" but it gives me an error when I try to open it:
I`m able to disconnect and connect from the debugger using F3 and F2 respectively, as you can see in the background of the error
And if the linker is really removing the RTT block, how can I prevent this from happening?
Thanks!
It is here for me:
check in the linker map/debugger that you have this variable present:
It not, it means you probably did not call the SEGGER Init function (SEGGER_RTT_Init()).
I hope this helps,
Erich