I’m using the Segger SystemView in many of my applications to get insights of the running application. A reader of my blog pointed me to the company ‘toem’ (http://toem.de/) based in Germany which offers powerful data viewer (‘impulse’) for Eclipse. I have tried this out, and it is really an amazing piece of technology with lots of potential. It allows me to view Segger SystemView data 🙂
So for everyone who wants to stay (mostly) inside Eclipse and not using the Segger SystemView application, that might be a good alternative. But it goes beyond that: with impulse I can read data from multiple data sources, combine them, filter and extract the data I need and export it. That tool opens up a lot of possibilities, and I think I just scratched on the surface of it.
There is a free ‘Basic’ edition, see http://toem.de/index.php/projects/impulse/licensing
Follow the tutorial/steps outlined here: http://toem.de/index.php/projects/impulse/articles/98-using-seggers-system-viewer-with-impulse
The steps to install it from an Eclipse update site are documented here: http://toem.de/index.php/projects/impulse/manual/25-a1-installation
I’m using the following update site:
And I have the following plugins installed:
💡 Update: I’m now at v1.6.22.
In the preferences, click on View/Edit:
Then add a new configuration:
Add a SystemView Configuration:
In the next dialog I should enter the user/system events:
I can copy the events from
which on my machine it is installed here:
C:\Program Files (x86)\SEGGER\SystemView_V236a\Description\SYSVIEW_FreeRTOS.txt
With this I have added the configuration and this completes the setup.
Loading Recorded Data
One easy way to use the Eclipse views is to load recorded data (*.SVDat) file stored by the Segger SystemView application. I have shortcuts to the data file present in my project:
Double-Clicking on the file opens a dialog which asks me for the configuration to use. I select the one I have created earlier:
The first time I won’t have a view for it, so let’s create one:
Select the System Viewer one:
Using its views, I can deep dive and filter the data:
With ‘Show in’ I can show the data in a table and filter it:
Data can be inspected and filtered, and the view is synchronized with the ‘main’ timeline view too:
Collecting Streaming Data
According to the information on the toem.de web site it should be possible to directly stream in RTT data. It uses a socket configuration to socket #19021:
While that looks promising and would be exactly what I would need, despite several attempts and even with contacting the engineer directly I was not able to make it work :-(. I have Segger SystemView and RTT working, but I was not able to connect to it with the toem Eclipse plugin :-(. To bad.
Update: I have updated the plugins to v1.6.22, but still I was not able to collect streaming data. I tried to stream data only on the RTT channel 0, but this did not work neither.
impulse is a very flexible and expert tool to collect and inspect data from multiple sources. It worked for me with loading data stored from the Segger SystemView application. Unfortunately I was not able to get the RTT streaming working for unknown reasons. That would have been a great feature and potentially would have lifted the current Segger SystemView application limitation of collecting up to 1 Mio events. I was hoping that impulse would give me the ability to collect data for an extended period. But maybe this will be be possible in the future? Until then impulse is a nice viewer for me, but not more.
Happy Impulsing 🙂
- toem article about using SEGGER SystemViewer: http://toem.de/index.php/projects/impulse/articles/98-using-seggers-system-viewer-with-impulse
- Segger SystemView: https://www.segger.com/systemview.html
- Using Segger Systemview: Segger SystemView: Realtime Analysis and Visualization for FreeRTOS
I was reading your previous posts about Systemview and Tracealizer today, they were really helpful and I learned a lot! Thank you for writing about!
atm I’m playing around with STM32 and freeRTOS in a nucleo board, and saw today that segger released a firmware version of the jlink to update the stlink present in the nucleo and discovery boards, in the next days I should give it a try (I’ve just configured the FreeRTOS awareness in the OpenOCD, don’t want to mess with it :P), so probably this Impulse will be a really good addition to my Systemview try.
By the way, is there any good trace visualizer like Tracealizer and Systemview, but open source?
Segger has that FreeRTOS thread awareness too, see https://mcuoneclipse.com/2016/06/13/adding-freertos-thread-awareness-to-gdb-and-eclipse/ and https://mcuoneclipse.com/2016/05/18/freertos-thread-debugging-with-segger-gdb-in-eclipse/. As outlined in my post, I was not able to get streaming of the data working with impulse, maybe you have better luck?
And I’m not aware of any open source viewer for the SystemView data.
impulse core is not open source but most extensions are ! (reader, ports, charts providers) — and system view extension will be open source soon !
So developers are able to extend or improve data reading by themselves or reuse existing extension as bases for their own ones.
Works perfectly for me, thanks !
Should be noticed that you can do much more with this tool ! OPC/UA, CAN-BUS, SWV, Logic Analyzers (havnt tried this) and much more.
Also there is custom free format which can be used to trace any kind of data..
And for all this sources you can anylze the data in the same way.
Tracalyzer support is missing?! 🙂
it has been a while since I used that tool, because it did not support the Segger Systemview format.
Are you saying that it works for you with the Segger Systemview?
Hi Erich, yes its working great.
The difference to seggers tool is that this tool does not support a back channel (probably because its using open segger interfaces ?!?). SystemView need to be started from the embedded application.
Great is also the launcher integration. So you just start the debugger and its automatically started with it. And what i mentioned in my previous email – you can do more with it.
ok, so I have to try it out again, thank you for that good news!
any success to connect Impulse Embedded to a real target?
Do you guys have the ‘impulse’ tab in the Debug configuration as shown in the videos on this page: http://toem.de/index.php/projects/impulse/articles/98-using-seggers-system-viewer-with-impulse.
I don’t have this tab and I’m using the version 1.8.34 of Impulse and Eclipse Oxygen (4.7.3a).
(note that everythings works in the Segger SystemView 2.52a).
Any idea? Thanks.
I’m sorry, I already gave up on Impulse. Despite several trials and tests, I was not able to make it work on my side, and my attempts to get help from the company did not succeed, probably they support only paying customers?
Sorry to hear ! Checked it – but we did not receive any support request from you. I tried to clarify this by email – did you receive my mail ? We clearly support all users , commercial and non-commercial !!!
Well, this was 3 years ago, and I had to move on. Did you sent that email recently? I have not found any. To bad, that would have been great if that would have worked out three years ago.
We exchanged 3 mails in 2016 (with several good proposals from you – most have been implemented), but we did not get any reply on the last – this seem to be lost :-(.
And 3 days ago i send another 2 mails (to give feedback on your post)- not sure if the contact is valid anymore – or taken by spam checker.
Maybe you could send us a mail – and we try to reply 🙂
noting in the spam folder. I just have sent you an email, crossing fingers that it works that time.
thanks, just replied.
Hope it works.
I tried another mail from my intel account and received:Your message wasn’t delivered due to a permission or security issue. It may have been rejected by a moderator, the address may only accept e-mail from certain senders, or another restriction may be preventing delivery.
I have not received it, so I have sent you another email with a different address. I know that our university IT has increased the security level, and it seems that there are other reports like yours that emails are not getting through :-(.
Can I use impulse with st-link v2?
I don’t know, I have not used that tool very a very long time. But you could load the Segger firmware on the ST-Link and then use it like a segger probe.
Thanks for reply, but I dont know how to chance firmware inside of ST-Link v2.
Well I’m beginner in ARM’s world and I’ learning with STM32F103 and I’ve learned a lot with your posts.
By the way, any helping you can give me I’ll be thanking.
Have a read at https://www.segger.com/products/debug-probes/j-link/models/other-j-links/st-link-on-board/