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