Echtzeitanalyse und Visualisierung

Tools für Echtzeit-Systeme

10. Mai 2016, 10:01 Uhr | von Dirk Akemann
Diesen Artikel anhören

Fortsetzung des Artikels von Teil 2

Konkrete Anwendungsbeispiele

Dies sind konkrete Beispiele aus der Anwendung, in denen SystemView Performance-Probleme lösen konnte: In einem System mit USB bearbeitet eine Task die einkommende USB-Kommunikation, sobald der entsprechende USB-Interrupt kommt, und schickt dann Daten zurück. In dem Fall war die USB-Kommunikation allerdings sehr langsam. Mit SystemView konnte gezeigt werden, dass der USB-Interrupt zwar auftrat, der Task schnell durchlief und dann auf den nächsten Interrupt wartete. Dieser trat aber erst viel später auf, die langsame Kommunikation war also dem Hostverhalten geschuldet und lag nicht im System begründet.

Bei der Untersuchung eines Systems mit IP ist mit SystemView schnell aufgefallen, dass in manchen Fällen mehrere Rx-Interrupts kurz hintereinander kamen. Ursprünglich bearbeitete die Interruptroutine einen Interrupt, gab die Daten des Interrupts an den entsprechenden Task und ließ sie weiter laufen. Indem die Interruptroutine gegebenenfalls ein zweites Mal durchläuft, konnte die Zeit, die für das Springen in und aus dem Interrupt notwendig war, eingespart und das System damit optimiert werden.

Echtzeitanalyse beschleunigt so die Software-Entwicklung und unterstützt die Schaffung stabiler und effizienter Systeme. Ein solcher Schritt ist ein notwendiger Bestandteil zur Qualitätssicherung bei jeder professionellen Software-Entwicklung.

Debuggen ohne Unterbrechung

passend zum Thema

Bild 4: Prinzipdarstellung des Monitor-Mode-Debuggings
Bild 4: Prinzipdarstellung des Monitor-Mode-Debuggings
© Segger

Beim üblichen »Stop-Mode-Debugging« wird die CPU angehalten. Dadurch stoppen alle Bereiche der Applikation und angeschlossene Peripherie-Geräte werden nicht länger unterstützt. Es gibt jedoch zahlreiche Anwendungsfälle, in denen die Unterbrechung bestimmter Funktionen wie etwa eine Motorsteuerung, Datensammlung oder eine Funkverbindungen zu Problemen führt. Deshalb unterstützt die J-Link-Debug-Probe »Monitor-Mode-Debugging« (Bild 4). Dabei läuft auf der CPU auch während des Debuggens ein Programm weiter.

Dies bietet die Möglichkeit, vom Nutzer definierte Echtzeitfunktionen in ISR aufrechtzuerhalten, die eine höhere Priorität haben als der Debug-Monitor. Dazu gehören neben den zuvor genannten jegliche Applikationen, die auf ein bestimmtes Maß an kontinuierlichem Betrieb angewiesen sind. Beim Monitor-Mode kommuniziert die CPU aktiv mit dem J-Link, um gleichzeitig Debug-Services und höher priorisierte Systeme zu bedienen.

Ein Beispiel aus der Praxis: Die Target-Applikation verfügt über eine Bluetooth-Anbindung und das Anhalten der gesamten Applikation würde auch die Bluetooth-Kommunikation zum Erliegen bringen. Monitor-Mode-Debugging macht es möglich, Keep-Alive-Interrupts für Bluetooth zu senden und die Bluetooth-Kommunikation weiterlaufen zu lassen, während der Rest der Applikation gestoppt und debuggt werden kann.

Über den Autor: 

Dipl.-Ing. Dirk Akemann ist Partnership Marketing Manager bei Segger.


  1. Tools für Echtzeit-Systeme
  2. »Live-Software-Oszilloskop«
  3. Konkrete Anwendungsbeispiele

Lesen Sie mehr zum Thema


Jetzt kostenfreie Newsletter bestellen!

Weitere Artikel zu SEGGER Microcontroller GmbH & Co. KG