{"id":8000,"date":"2025-11-29T08:36:24","date_gmt":"2025-11-29T07:36:24","guid":{"rendered":"https:\/\/web-dev-weissblau.de\/microconsult\/?p=8000"},"modified":"2026-02-13T04:59:19","modified_gmt":"2026-02-13T03:59:19","slug":"what-is-your-processor-doing-right-now","status":"publish","type":"post","link":"https:\/\/www.microconsult.de\/en\/was-macht-ihr-prozessor-jetzt-gerade\/","title":{"rendered":"What is your processor doing right now?"},"content":{"rendered":"<h2>Techniken zur Messung von Software-Aktivit\u00e4ten in Echtzeit<\/h2>\n<p>Autor: Ulrich Dreher, iss innovative software services GmbH<\/p>\n<h3>Beitrag &#8211; Embedded Software Engineering Kongress 2016<\/h3>\n<p><strong>Obwohl Debugger, Emulatoren und andere Entwicklungshilfsmittel in den ver\u00adgangenen Jahrzehnten gewaltige Fortschritte gemacht haben, fehlt ihnen eine Funktion, die die Entwicklung, Fehlersuche und Validierung von Echtzeitsyste\u00admen erheblich erleichtern w\u00fcrde: die M\u00f6glichkeit, Software-Events und Ereig\u00adnisse der &#8222;realen Welt&#8220; in &#8222;harter Echtzeit&#8220; miteinander zu verkn\u00fcpfen.<\/strong><\/p>\n<p>Dieser Beitrag besch\u00e4ftigt sich damit, diese Schwachstellen zu \u00fcberwinden: Er zeigt Techniken, die die Messung ausgew\u00e4hlter Software-Eigenschaften in Echtzeit erlau\u00adben. Der Schwerpunkt liegt dabei auf der Geschwindigkeit und dem Umfang, in dem Messdaten zur Verf\u00fcgung gestellt werden k\u00f6nnen, die Aussagen \u00fcber Abl\u00e4ufe in der Software erlauben. Mit Hilfe dieser Daten k\u00f6nnen Software-Abl\u00e4ufe dann mit Ereig\u00adnissen der &#8222;realen Welt&#8220; in Beziehung gesetzt werden.<\/p>\n<h2>Ein kleines Glossar<\/h2>\n<p>Im Folgenden werden Begriffe verwendet, die m\u00f6glicherweise nicht allgemein gebr\u00e4uchlich sind. Daher an dieser Stelle ein kleines Glossar:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"168\"><strong>Begriff(e)<\/strong><\/td>\n<td valign=\"top\" width=\"387\"><strong>Bedeutung<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"168\">PCB<\/td>\n<td valign=\"top\" width=\"387\">Printed Circuit Board &#8211; Platine<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"168\">Target Steuerger\u00e4t<\/td>\n<td valign=\"top\" width=\"387\">Bezeichnet eine Einheit, deren Funktion durch einen Pro\u00adzessor oder Controller und dessen Software dominiert ist. Wobei auf einem &#8222;Steuer&#8220;ger\u00e4t durchaus auch eine Rege\u00adlung implementiert sein kann.<br \/>\nDamit ist ggf.\u00a0<strong>Ihr<\/strong>\u00a0Ger\u00e4t gemeint.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"168\">physikalisches Ereignis<br \/>\nphysikalische Gr\u00f6\u00dfe<br \/>\nreale Welt<\/td>\n<td valign=\"top\" width=\"387\">bezeichnen in unterschiedlichem Kontext &#8222;Dinge&#8220;, die sich &#8222;anfassen&#8220; bzw. messen lassen.<br \/>\nIm Gegensatz dazu ist &#8222;Software&#8220; zwar nicht surreal, aber messtechnisch in der Regel nur schwer erfassbar.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"168\">(endlicher) Zustandsautomat<\/td>\n<td valign=\"top\" width=\"387\">bekannt auch unter der englischen Bezeichnung &#8222;(finite) state machine&#8220;<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"168\">Echtzeit<\/td>\n<td valign=\"top\" width=\"387\">wird im folgenden Kapitel noch n\u00e4her betrachtet<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Was ist Echtzeit?<\/h2>\n<p>&#8222;Echtzeit&#8220;-Anforderungen sind bei Steuerungs- und Regelungssystemen allgegen\u00adw\u00e4rtig. Die Definition von &#8222;Echtzeit&#8220; ist allerdings in erheblichem Ma\u00dfe von der jeweiligen Anwendung abh\u00e4ngig: &#8222;Echtzeit&#8220; kann Reaktionszeiten (Zykluszeiten) bezeichnen, die sich um Gr\u00f6\u00dfenordnungen unterscheiden (s. Tabelle 1).<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"108\"><strong>Zykluszeit<\/strong><\/td>\n<td valign=\"top\" width=\"447\"><strong>Beispiele f\u00fcr Anwendungen<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"108\">100 ms<\/td>\n<td valign=\"top\" width=\"447\">Benutzerschnittstellen, SPS (speicherprogrammierbare Steuerung)<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"108\">1 &#8211; 10 ms<\/td>\n<td valign=\"top\" width=\"447\">&#8222;klassische&#8220; Steuerungssysteme<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"108\">10 \u00b5s &#8211; 200 \u00b5s<\/td>\n<td valign=\"top\" width=\"447\">Frequenzumrichter (&#8222;Inverter&#8220;) f\u00fcr Synchronmaschinen<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"108\">&lt; 10 \u00b5s<\/td>\n<td valign=\"top\" width=\"447\">&#8222;Digital Power Supply&#8220; (digital geregelte Stromversorgungen)<br \/>\nz.B. ein 1 kW AD\/DC Netzteil mit einer Regelschleife mit 200 kHz<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<div>\n<p><em>Tabelle 1 &#8211; Beispiele f\u00fcr unterschiedliche Interpretationen von &#8222;Echtzeit&#8220;<\/em><\/p>\n<p>Tabelle 1 f\u00fchrt nur einige wenige Beispiele auf, zwischen den angegebenen Zeitbe\u00adreichen bestehen zudem L\u00fccken. In der Realit\u00e4t tendiert jede Anwendung dazu, das Attribut &#8222;echt&#8220; in Bezug auf zeitliche Anforderungen f\u00fcr sich neu zu definieren, wo\u00adbei gerne zwischen &#8222;harter&#8220; Echtzeit (Reaktionszeiten bis max. 5 ms) und &#8222;weicher&#8220; Echtzeit (Reaktionszeiten &gt; 5 ms) unterschieden wird. Auch die Grenze von 5 ms ist willk\u00fcrlich gew\u00e4hlt &#8211; je nach Organisation und Aufgabenstellung mag ein anderer Wert zur Abgrenzung herangezogen werden.<\/p>\n<p>Wie schon erw\u00e4hnt, haben Emulatoren und Debugger in den letzten Jahrzehnten ge\u00adwaltige Fortschritte hinsichtlich der gebotenen Funktionen und ganz allgemein hin\u00adsichtlich der Verarbeitungsleistung gemacht. Aber eine Funktion zur Verkn\u00fcpfung von Ereignissen der &#8222;realen Welt&#8220; und &#8222;Software-Ereignissen&#8220; fehlt. Es mag heute den einen oder anderen Debugger geben, der \u00fcber eine (kleine) Zahl digitaler Ein\u00adg\u00e4nge verf\u00fcgt. Wenn es sich allerdings darum handelt, Ereignisse der realen Welt mit Vorg\u00e4ngen in der Software zu korrelieren, ist dies selten ausreichend.<\/p>\n<p>Und Software-Werkzeuge, die mit hoher Geschwindigkeit Messwerte aufzeichnen k\u00f6nnen, sind auch nicht besonders hilfreich, wenn die aufgezeichneten Daten erst visualisiert werden, nachdem das ausl\u00f6sende Ereignis l\u00e4ngst Geschichte ist.<\/p>\n<p>Es gibt jedoch einige Techniken &#8211; teilweise sehr einfach und trotzdem weitgehend unbekannt &#8211; die geeignet sind, die vorstehend beschriebenen L\u00fccken zu f\u00fcllen.<\/p>\n<p>Nachfolgend sind einige dieser Verfahren beschrieben, die es erlauben, Beziehungen zwischen physikalischen Ereignissen und Software-Abl\u00e4ufen aufzudecken. Sie er\u00adm\u00f6glichen es, Spezifikationen der Software (wie z.B. Interrupt-Latenzen, die Task-Reihen\u00adfolge oder Variablen der Steuerungssoftware) in Echtzeit mess- und damit auswert\u00adbar zu machen. Dies ist eine F\u00e4higkeit, die den bislang vorhandenen Werkzeugen ab\u00adgeht.<\/p>\n<p>Betrachten wir also einige regelm\u00e4\u00dfig wiederkehrende Fragestellungen und m\u00f6gliche Verfahren, das &#8222;Arbeiten&#8220; von Software messbar zu machen, und beurteilen wir, wie gut sie sich zur Beantwortung der gew\u00e4hlten Fragen eignen.<\/p>\n<h2>Die Fragen<\/h2>\n<p>Nachfolgend sind Abstraktionen einiger Fragen aufgelistet, die in meiner Arbeit im\u00admer wieder gestellt wurden. Anwendungsbeispiele aus der Vergangenheit versuchen, die Fragestellung zu verdeutlichen.<\/p>\n<\/div>\n<div><\/div>\n<div>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"531\"><strong>&#8222;Wie viel Rechenleistung ist eigentlich noch verf\u00fcgbar?&#8220;<\/strong><\/p>\n<p>Eine Frage, die mit sch\u00f6ner Regelm\u00e4\u00dfigkeit auftaucht.<\/p>\n<p>Eine Episode aus der Entwicklung des Inverters einer PMSM mit einer 20 kHz Stromregelung: Die urspr\u00fcngliche Antwort des zust\u00e4ndigen Entwicklers war &#8222;noch eine ganze Menge&#8220;.<\/p>\n<p>Die Anwendung einer der nachfolgend beschriebenen Methoden brachte zu Tage, dass die aktuelle Auslastung der CPU bei 95 % lag. Von diesem Zeitpunkt an war die Prozessorlast unter st\u00e4ndiger Kontrolle.<br \/>\nDas Wissen um die Kritikalit\u00e4t der Prozessorlast war der Schl\u00fcssel dazu, dass &#8222;\u00fcberraschende&#8220; Probleme im weiteren Verlauf des Projekts deutlich reduziert auftraten.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"531\"><strong>&#8222;Verh\u00e4lt sich meine Regelung wie notwendig und erwartet?&#8220;<\/strong><\/p>\n<p>Ein Beispiel aus der Weiterentwicklung eines Steuerger\u00e4ts der Einspritztechnik: zur Steuerung der Abl\u00e4ufe wurde ein Zustandsautomat implementiert. \u00dcblicher\u00adweise werden Zustandsautomaten in einer einzigen Funktion \u201everortet\u201c, die zyk\u00adlisch oder ereignisgesteuert aufgerufen wird. Sie sind ausgesprochen beliebt, weil sie einfach zu implementieren und ausgesprochen robust sind.<\/p>\n<p>Im vorliegenden Fall schied die Standardl\u00f6sung aus: die Zust\u00e4nde waren teils zeitgesteuert, teils ereignisgesteuert. Und aufgrund technischer Randbedingun\u00adgen mussten die einzelnen Teile des Zustandsautomaten &#8222;in der ganzen Soft\u00adware verstreut&#8220; implementiert werden.<\/p>\n<p>Die Entwicklung erfolgte mit Hilfe eines Tools, das die Messung und Visuali\u00adsie\u00adrung der Zustandsvariablen erlaubte: die Abfolge war sehr klar 0 \u2192 1 \u2192 2 \u2192 3 \u2192 &#8230; \u2192 7 \u2192 0. Abgesehen von einem vorzeitigen Abbruch (\u2026 \u2192 0) musste die Sequenz in immer gleich Reihenfolge durchlaufen werden. Der zeitliche Ablauf allerdings war abh\u00e4ngig vom Eintreten physikalischer Ereignisse. Das Einhalten der korrekten Reihenfolge war am Oszilloskop visuell sehr einfach zu \u00fcberpr\u00fcfen, genau wie die Korrelation mit den physikalischen Ereignissen.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"531\"><strong>&#8222;Warum funktioniert die Software nicht wie sie soll?&#8220;<\/strong><\/p>\n<p>Eine immer wieder gestellte Frage.<\/p>\n<p>Bei der Entwicklung eines schnellen Messsystems, das die einzelnen Zellen ei\u00adnes Brennstoffzellensystems \u00fcberwachte, wollte der Kunde noch ein paar beson\u00addere &#8222;Features&#8220; (Unterabtastung, unterschiedliches Sequencing der Zellen).<\/p>\n<p>Die Implementierung des &#8222;Standardablaufs&#8220; der Messung war einfach. Die Rea\u00adlisierung der zus\u00e4tzlichen Features war dagegen aufgrund komplexerer Abfol\u00adgen und Algorithmen sehr aufw\u00e4ndig. Und schlecht zu debuggen, da die reinen Zahlenwerte nicht sonderlich aussagekr\u00e4ftig waren.<\/p>\n<p>Das Vorhandensein eines speziellen Entwicklungshilfsmittels (der &#8222;histori\u00adschen&#8220; OLDA) half enorm: die entscheidenden Variablen (2 Werte) konnten in Echtzeit visualisiert werden. Wie das &#8222;Bild&#8220; dieser beiden Variablen auf dem Oszilloskop aussehen musste, war klar. Ein einziger Durchlauf der Software reichte jeweils zur Beurteilung gut\/schlecht aus.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table style=\"width: 534px;\" border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td style=\"width: 530px;\" valign=\"top\"><strong>&#8222;Verh\u00e4lt sich mein System wie geplant?&#8220;<\/strong><\/p>\n<p>Diese Frage wird ebenfalls mit sch\u00f6ner Regelm\u00e4\u00dfigkeit gestellt (s. erster Punkt).<\/p>\n<p>Bei der Systemkonzeption wird in der Regel geplant, welche Teilaufgaben in wel\u00adchen Tasks und Prozessen zu implementieren sind. Da nicht alles l\u00e4uft, wie urspr\u00fcnglich geplant, ist eine regelm\u00e4\u00dfige Kontrolle des Status quo von N\u00f6ten. Daf\u00fcr gibt es mittlerweile eine ganze Anzahl von Softwarel\u00f6sungen. Sobald allerdings &#8222;Events&#8220; ins Spiel kommen, sto\u00dfen Softwarel\u00f6sungen schnell an ihre Grenzen. Ein unabh\u00e4ngiges Tool, das nur ein absolutes Minimum an Instrumen\u00adtierung ben\u00f6tigt, ist hier von Vorteil.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\">Die &#8222;K\u00f6nigsdisziplin&#8220;:\u00a0<strong>Die Evaluierung von sin\/cos Winkelsensoren.<\/strong><\/p>\n<p>Aktuell werden zur Winkelerfassung von Synchronmaschinen bevorzugt sin\/cos Winkelsensoren eingesetzt, da diese eine hohe Aufl\u00f6sung bei vergleichsweise geringem Aufwand bieten. Um von den Werten zum Winkel zu gelangen, ben\u00f6\u00adtigt man die Arkustangens-Funktion. Wie das Leben so spielt, hat die Arkustan\u00adgens-Funktion alle 90\u00b0 eine kritische Phase, in der geringe Fehler in den Mess\u00adwerten von Sinus und Kosinus zu gewaltigen Winkelfehlern f\u00fchren. W\u00e4re es nicht sch\u00f6n, die gemessenen Werte kontinuierlich \u00fcberwachen und evtl. mit den physikalischen Messwerten &#8211; oder auch mit dem berechneten Winkelwert &#8211; ver\u00adgleichen zu k\u00f6nnen?<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\">Zum Abschluss eine zunehmend wichtiger werdende Frage: &#8222;<strong>Wie wirkt sich eine \u00c4nderung der Hardware-Konfiguration aus?&#8220;<br \/>\n<\/strong><br \/>\nZu beurteilen sind z.B. Einfl\u00fcsse der Cache-Gr\u00f6\u00dfe, der Cache-Konfiguration, der Verwendung von Inline-Code usw.Im Grunde genommen kann diese Frage durch Verwendung der bereits erw\u00e4hn\u00adten Softwarel\u00f6sungen zur Laufzeitmessung beantwortet werden. Diese erfordern allerdings eine umfangreiche Code-Instrumentierung, die wahrscheinlich die Messwerte verf\u00e4lscht.Ein weniger invasives Messverfahren w\u00e4re w\u00fcnschenswert.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<h2>Einige Vorbemerkungen<\/h2>\n<p>Wenn es um Echtzeitmessungen an &#8222;realen&#8220; Objekten geht, taucht umgehend die Frage auf, welche Ressourcen eigentlich zur Verf\u00fcgung stehen, um diese Messungen durchf\u00fchren zu k\u00f6nnen. Um die meisten (wenn vielleicht auch nicht alle) Targets mit einem einzigen Werkzeug unterst\u00fctzen zu k\u00f6nnen, m\u00fcssen die Erwartungen an die Verf\u00fcgbarkeit von Ressourcen auf ein Minimum reduziert werden. Diese Ressourcen sollten gleichzeitig ein Maximum an Geschwindigkeit bieten, um die Messung nicht von dieser Seite her einzuschr\u00e4nken.<\/p>\n<p>Unter Ber\u00fccksichtigung dieser Einschr\u00e4nkungen bieten sich zwei Alternativen an:<\/p>\n<ul>\n<li>Die Nutzung eines (oder mehrerer) unbenutzten Pins<\/li>\n<li>Die Nutzung einer nicht anderweitig belegten Schnittstelle (die selbstverst\u00e4ndlich ebenfalls mindestens einen verf\u00fcgbaren Pin ben\u00f6tigt)<\/li>\n<\/ul>\n<p>Die nachfolgend aufgef\u00fchrten Messverfahren betrachten Beispiele beider F\u00e4lle. Dar\u00fcber hinaus ben\u00f6tigen alle betrachteten Messverfahren zur Durchf\u00fchrung der Messungen noch weitere Hilfsmittel: ein Oszilloskop, ein Logic Analyzer oder ein Datenlogger wird als Messmittel, zur Datenaufzeichnung, -visualisierung und ggf. -speicherung ben\u00f6tigt.<\/p>\n<h2>Die Messverfahren<\/h2>\n<p>Aus den vorstehend erw\u00e4hnten Einschr\u00e4nkungen hinsichtlich der Verf\u00fcgbarkeit von Ressourcen resultieren eine Reihe von M\u00f6glichkeiten Varianten, Messdaten verf\u00fcgbar zu machen:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"529\">A: &#8222;Bit Banging&#8220; (abgek\u00fcrzt: &#8222;BB&#8220;)<\/p>\n<p>Wenn ein unbenutzter Pin zur Verf\u00fcgung steht, der kontaktiert werden kann, ist damit die einfachste aller Schnittstellen verf\u00fcgbar. Sie kann 1 Bit Information bereitstellen. (Sogar etwas mehr als 1 Bit, wenn wir an die Ausgabe von Puls\u00adsequenzen zur Unterscheidung verschiedener Ereignisse denken.)<\/p>\n<p>Wer sich an die allerersten PIC Mikrocontroller erinnern kann: diese hatten kei\u00adnen Hardware-UART, stattdessen wurden serielle Schnittstellen mit beeindruc\u00adkenden Baudraten mittels Bit-Banging realisiert.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"529\">B: &#8222;Multi-Bit Banging&#8220; (abgek\u00fcrzt: &#8222;MB&#8220;)<\/p>\n<p>Wenn Sie mehr als einen einzigen unbenutzten Pin zur Verf\u00fcgung haben, sind komplexere Ausgaben m\u00f6glich: Sie k\u00f6nnen mehr als ein einziges Bit gleich\u00adzeitig ausgeben. Oder etwas messbar machen, das mehr als 1 Bit an Information enth\u00e4lt: z.B. den Zustand eines Zustandsautomaten.<\/p>\n<p>Da Pins in der Hardware \u00fcblicherweise als Byte-breite (oder noch breitere) &#8222;Ports&#8220; organisiert sind, kann MB ziemlich kompliziert werden, wenn die unge\u00adnutzten Bits unterschiedlichen Ports angeh\u00f6ren.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"529\">C: Nutzung eines Digital-Analog-Wanders<sup>[1]<\/sup>\u00a0(kurz: &#8222;DAC&#8220;)<\/p>\n<p>In seltenen F\u00e4llen verf\u00fcgt Ihr Prozessor \u00fcber einen nicht ben\u00f6tigten DAC. Die Schwierigkeit bei der Nutzung ist einerseits die Verf\u00fcgbarkeit an sich, anderer\u00adseits die Anbindung an das Messmittel: Analogsignale ben\u00f6tigen evtl. noch ei\u00adnen Verst\u00e4rker auf Ihrem Board, was die Nutzung auf Entwicklungssteuerger\u00e4te beschr\u00e4nkt.<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"529\">D: Nutzung eines ungenutzten UART<sup>[2]<\/sup><\/p>\n<p>Aktuelle Prozessoren sind mit reichlich digitalen Schnittstellen ausgestattet. Die Wahrscheinlichkeit, dass Sie \u00fcber einen nicht anderweitig belegten UART ver\u00adf\u00fcgen, ist gar nicht so klein.<\/p>\n<p>In dieser Form ist ein Echtzeitbezug zu physikalischen Ereignissen allerdings schwer herzustellen, da der serielle Bitstrom nur m\u00fchsam auszuwerten ist.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"529\">E: Die OLDA<sup>[3]<\/sup>\u00a0(&#8222;OnLine Data Analyzer&#8220;)<\/p>\n<p>Die historische OLDA ist ein Werkzeug, das nur einem kleinen Benutzerkreis zur Verf\u00fcgung stand und dementsprechend weitgehend unbekannt blieb.<br \/>\nDie aktuelle \u00b5OLDA kann als die Verbindung eines UART mit einem DAC be\u00adtrachtet werden &#8211; ein seriell angeschlossener DAC.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>Im Folgenden betrachten wir die F\u00e4lle A\/B (eine Untersuchung ist her nur hinsichtlich der &#8222;Breite&#8220; der Information sinnvoll) und C\/E n\u00e4her. (Soweit die notwendige Hardware verf\u00fcgbar ist, ist C ein (schnellerer) Sonderfall von E.)<\/p>\n<h2>Bewertung der Leistungsf\u00e4higkeit der einzelnen Verfahren<\/h2>\n<p>An dieser Stelle wollen wir uns mit der Zusammenfassung der Ergebnisse der Be\u00adwertung der Verfahren begn\u00fcgen &#8211; eine detailliertere Betrachtung und einige Bei\u00adspielaufnahmen findet sich in den Folien Pr\u00e4sentation.<\/p>\n<p>Betrachten wir also die Fragestellungen und die in Frage kommenden Messverfah\u00adren, so ergibt sich hinsichtlich der Eignung und Leistungsf\u00e4higkeit die folgende Ta\u00adbelle 2:<\/p>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"282\"><strong>Aufgabenstellung<\/strong><\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>BB<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"center\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\"><strong>MB<\/strong><\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>DAC<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"center\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\"><strong>OLDA<\/strong><\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">Laufzeitmessung einer einzelnen Task<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">Entwicklung und Validierung eines Zustandsautomaten<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>o<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">Allgemeine Algorithmenentwicklung<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>&#8211;<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">\u00dcberwachung der Abarbeitung von Tasks und Prozessen<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>&#8211;<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">sin\/cos Auswertung<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>&#8211;<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>o<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"282\">\u00c4nderung der Hardware-Konfiguration<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>o<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>+++<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"19\">\n<p align=\"right\"><strong>\/<\/strong><\/p>\n<\/td>\n<td valign=\"top\" width=\"61\">\n<p align=\"right\"><strong>++<\/strong><\/p>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<div><\/div>\n<div>&#8211; nicht anwendbar\u00a0\u00a0\u00a0\u00a0 o problematisch\u00a0\u00a0\u00a0\u00a0 +, ++, +++ gut, besser, am besten<br \/>\n<em>Tabelle 2 &#8211; Eignung der Messverfahren f\u00fcr die verschiedenen Aufgabenstellungen<\/em>Ohne den Ausf\u00fchrungen des Vortrags allzu sehr vorzugreifen: ein &#8222;lokal&#8220; verf\u00fcg\u00adbarer DAC ist einem seriell angebundenen DAC hinsichtlich der Geschwindigkeit nat\u00fcrlich immer \u00fcberlegen &#8211; identische Qualit\u00e4t der Ausf\u00fchrung voraussetzend. Und BB\/MB sind hinsichtlich der Geschwindigkeit nicht zu \u00fcbertreffen, soweit die Ge\u00adschwindigkeit der Signalausgabe nicht zur Reduzierung von Abstrahlungen &#8222;k\u00fcnst\u00adlich&#8220; reduziert ist.<\/p>\n<h2>Was bitte ist eine OLDA?<\/h2>\n<p>Wie vorstehend erw\u00e4hnt, steht OLDA f\u00fcr &#8222;OnLine Data Analyzer&#8220;. Der Begriff &#8222;Analyzer&#8220; ist insofern irref\u00fchrend, als die OLDA eigentlich keine Analysefunktio\u00adnen inkorporiert. Ihre Funktion ist die eines DAC &#8211; also die Wandlung digitaler Wer\u00adte in eine Analogspannung. Die eigentliche Analyse erfolgt dann mit Hilfe des ange\u00adschlossenen Messmittels (Oszilloskop, Datenlogger).<\/p>\n<p>Die Target-Anbindung der &#8222;historischen&#8220; OLDA erfolgte \u00fcber den Adress- und Datenbus &#8211; eine Schnittstelle, die sich infolge der gestiegenen Taktfrequenzen als zunehmend unzuverl\u00e4ssig erwies. Dar\u00fcber hinaus erwies sich auch die breite An\u00adschlussleitung immer wieder als hinderlich. Letzten Endes war die historische OLDA &#8211; bei allem Nutzen &#8211; nicht mehr verwendbar.<\/p>\n<h2>Der Nachfolger: die \u00b5OLDA<\/h2>\n<p>Einige Jahre mussten wir auf eine OLDA verzichten und uns mit BB\/MB und \u00e4hn\u00adlich beschr\u00e4nkten Verfahren behelfen, da kein ad\u00e4quates Hilfsmittel zur Verf\u00fcgung stand und auch hinsichtlich der Schnittstellen zum Target keine praktikablen L\u00f6sun\u00adgen verf\u00fcgbar waren.<\/p>\n<p>Mit zunehmender Integrationsdichte und Leistungsf\u00e4higkeit der Mikrocontroller hat sich jetzt ein neuer Weg er\u00f6ffnet, eine derartige Funktion zur Verf\u00fcgung zu stellen: die serielle Anbindung des DACs &#8211; die \u00b5OLDA.<\/p>\n<p>Serielle Schnittstellen sind mittlerweile schnell genug, um Baudraten &gt; 1 MBit, in vielen F\u00e4llen auch &gt; 10 MBit zur erreichen. Damit sind Datenraten von 100 kS\/s bis in den Bereich von MS\/s realisierbar. Hinzu kommt, dass in der Regel mehr serielle Schnittstellen (UART oder SPI) auf einem Target zur Verf\u00fcgung stehen, als in der Anwendung tats\u00e4chlich genutzt werden.<\/p>\n<p>Diese Erkenntnis f\u00fchrte zur Entwicklung der \u00b5OLDA, deren Komponenten und &#8222;\u00d6kosystem&#8220; in Bild 1 (<a title=\"Was macht Ihr Prozessor jetzt gerade? (PDF)\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/echtzeit_was_macht_ihr_prozessor_jetzt_gerade_iis_dreher.pdf\" target=\"_blank\" rel=\"noopener\">PDF<\/a>) dargestellt sind.<\/p>\n<p>Das \u00b5OLDA-System besteht aus 3 Komponenten:<\/p>\n<ol>\n<li>Dem sog. &#8222;Target-Adapter&#8220; &#8211; im Grunde genommen ein einfacher elektronischer Wandler.<\/li>\n<li>Einer faseroptischen Verbindung. In Hinblick auf Einfachheit und Robustheit wurde das Versatile Link System gew\u00e4hlt, das mittels einer Plastikfaser (POF &#8211; Polymer Optical Fiber) Leitungsl\u00e4ngen gr\u00f6\u00dfer 30 m erlaubt und dar\u00fcber hinaus hinsichtlich der Flexibilit\u00e4t der Leitung Vorteile gegen\u00fcber Kupferleitungen hat. Au\u00dferdem ist die St\u00f6rfestigkeit optischer Verbindungen un\u00fcbertroffen.<\/li>\n<li>Der eigentlichen \u00b5OLDA (in der der optoelektrische Wandler, die DACs und die notwendige Logik verbaut sind).<\/li>\n<\/ol>\n<p>Um das System zu komplettieren, kommen noch Stromversorgungen, das bereits erw\u00e4hnte Oszilloskop und eine Leitung zur Anbindung des Targetadapters an Ihr Target hinzu.<\/p>\n<h2>Hardware- und Software-Voraussetzungen<\/h2>\n<p>Die \u00b5OLDA ist also ein (zweikanaliger) DAC. Und da sie mit einer seriellen Verbindung arbeitet, ben\u00f6tigen Sie auf dem Target eine serielle Schnittstelle. F\u00fcr das Target ist die Liste der notwendigen Hardware-Voraussetzungen erfreulich kurz. Sie ben\u00f6tigen:<\/p>\n<ul>\n<li>einen ungenutzten UART. Hilfreich, aber nicht Bedingung sind UARTs mit einem FIFO. Diese erlauben eine etwas einfachere Code-Instrumentierung, die allerdings zu Lasten der Latenzzeit der Daten gehen kann.<\/li>\n<li>einen freien Pin am Target, den Sie als TX Pin des UARTs nutzen k\u00f6nnen<\/li>\n<li>ein bisschen Strom (&lt;5 mA, 3,3 &#8211; 5 V) und<\/li>\n<li>eine kurze 3-adrige Verbindungsleitung (GNC, VCC, Signal) zur Verbindung von Target und Targetadapter.<\/li>\n<\/ul>\n<p>Das war&#8217;s.<\/p>\n<p>Wie bitte? Sie haben keinen ungenutzten UART? In diesem Fall k\u00f6nnen Sie auch ein ungenutztes SPI-Interface verwenden. Es muss nur Datenformate &lt; 10 Bit, &#8222;LSBit first&#8220; unterst\u00fctzen, damit Sie den Datenstrom eines UART emulieren k\u00f6nnen.<\/p>\n<p>Sie haben auch kein unbenutztes SPI-Interface? Dass m\u00fcssen wir uns einmal in aller Ruhe unterhalten &#8230;<\/p>\n<p>Und die Voraussetzungen auf Seiten der Software?<\/p>\n<ul>\n<li>Ein wenig Code, um den UART zu initialisieren<\/li>\n<li>Die Code-Instrumentierung, um Werte in das Senderegister zu schreiben<\/li>\n<li>Nur in Sonder\u00e4llen: noch ein bisschen mehr Code, um zu pr\u00fcfen, ob das Senderegister den n\u00e4chsten Wert aufnehmen kann.<\/li>\n<li>F\u00fcr einige spezielle Anwendungen (z.B. Messung des Task Sequencing) ben\u00f6tigen Sie auch noch ein paar Bytes RAM. Bytes &#8211; nicht kBytes!<\/li>\n<\/ul>\n<p>Was Sie nicht ben\u00f6tigen: Interrupts, ISRs und dergleichen.<\/p>\n<h2>Der Targetadapter &#8211; die Schnittstelle zu Ihrem Target<\/h2>\n<p>Einige Dinge werden sich voraussichtlich nie \u00e4ndern:<\/p>\n<ul>\n<li>Die Baudraten von UARTs entsprechen maximal der halben Taktfrequenz des UART. (\u00dcblicher sind Teiler \/4, \/8 und \/16). Wenn es um h\u00f6chste Daten\u00fcbertragungsraten geht, m\u00fcssen wir uns um eine weitere Teilung des Takts durch einen Baudratengeneratoren nicht k\u00fcmmern.<\/li>\n<li>F\u00fcr SPI-Inerfaces gilt im Grunde genommen dassselbe. Wobei der SPI-Port Ihres Prozessors m\u00f6glicherweise schneller ist als sein UART. Dies ist von Fall zu Fall unterschiedlich.<\/li>\n<\/ul>\n<p>Der Targetadapter ben\u00f6tigt f\u00fcr seine Funktion eigentlich mehr als die vorstehend spezifizierten 5 mA. Deshalb ist eine Potentialtrennung vorhanden, die die Stromauf\u00adnahme aus dem Target auf die erw\u00e4hnten 5 mA reduzieren hilft. Um Ihr Target nicht mehr als notwendig zu belasten wird die isolierte Seite des Targetadapters von einer eigenen Stromversorgung gespeist,<\/p>\n<p>Der Targetadapter ist ziemlich klein. Damit passt er m\u00f6glicherweise noch in Ihr Ge\u00adh\u00e4use, was im Einzelfall der Robustheit zugute kommen kann. Sollten Sie ihn aller\u00addings in Ihr Target integrieren wollen: Wir stellen Schaltung und BOM gerne zur Verf\u00fcgung.<\/p>\n<h2>Die \u00b5OLDA &#8211; einige Eckdaten<\/h2>\n<table border=\"1\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td colspan=\"2\" valign=\"top\" width=\"276\">Baudrate (UART oder SPI)<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">DC &#8211; 16 MBd<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" valign=\"top\" width=\"276\">Serielles \u00dcbertragungsformat (Nutzdaten)<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">8 Bit (9 Bit)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td colspan=\"2\" valign=\"top\" width=\"276\">Analogausg\u00e4nge<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">2<br \/>\n(4 bei 9 Bit Format und Kaskadierung)<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"48\"><\/td>\n<td valign=\"top\" width=\"228\">Aufl\u00f6sung<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">7 Bit, glitchfrei<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"48\"><\/td>\n<td valign=\"top\" width=\"228\">Maximale Updaterate je Kanal<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">1,6 MS\/s<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"48\"><\/td>\n<td valign=\"top\" width=\"228\">Adressierung der Ausg\u00e4nge<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">&#8222;hart&#8220;<\/p>\n<p>(d.h. jeder Kanal hat eine feste, nicht konfigurierbare Adresse)<\/p>\n<p align=\"center\">8 Bit Frames : 1 Adressbit<br \/>\n9 Bit Frames : 2 Adressbits<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"48\"><\/td>\n<td valign=\"top\" width=\"228\">Unterst\u00fctzte Zahlenformate<\/td>\n<td valign=\"top\" width=\"279\">\n<p align=\"center\">unsigned, signed<\/p>\n<\/td>\n<\/tr>\n<tr>\n<td valign=\"top\" width=\"48\"><\/td>\n<td valign=\"top\" width=\"228\">Ausgangsspannung<\/td>\n<td valign=\"top\" width=\"279\">unsigned \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 0 &#8211; 5 V<br \/>\nsigned \u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0 -2,5 &#8211; 2,5 V<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>7 Bit Aufl\u00f6sung erscheinen auf den ersten Blick recht wenig. Wenn Sie sich allerdings ein wenig mit dem Datenblatt Ihres Oszilloskops besch\u00e4ftigen, finden Sie dort mit einiger Wahrscheinlichkeit einen ENOB (Effective Number Of Bits) Wer von 7.5 &#8211; kaum besser als die 7 Bit der \u00b5OLDA.<\/p>\n<p>Angesichts der Entscheidung f\u00fcr eine normale serielle Schnittstelle erm\u00f6glichen es 7 Datenbits auch, 1 oder 2 Adressbits (je nach Framel\u00e4nge) zu \u00fcbertragen und damit 2 bzw. 4 Variablen auszugeben. Und immer noch h\u00f6chste Datenraten zu realisieren.<\/p>\n<p>In Summe betrachten wir diese Designentscheidung als guten Kompomiss hinsichtlich Geschwindigkeit, einfacher Anwendung und Aufl\u00f6sung.<\/p>\n<h2>Zusammenfassung<\/h2>\n<p>Wie gezeigt, bietet die Ausgabe Digitaler Werte als Analogspannungen die M\u00f6glich\u00adkeit, Ereignisse der realen Welt und Software-Reaktionen zueinander in Bezug zu setzen. Soweit daf\u00fcr ein DAC des Targets nicht zur Verf\u00fcgung steht, besteht neuer\u00addings die M\u00f6glichkeit, einen DAC seriell anzuschlie\u00dfen und damit derartige Messun\u00adgen auch f\u00fcr Targets ohne (freien) DAC zu erm\u00f6glichen.<\/p>\n<p>Und wie k\u00f6nnen Sie davon profitieren?<\/p>\n<p>Wir kennen Ihre aktuellen Probleme nicht, insofern ist eine konkrete Antwort auf diese Frage nicht m\u00f6glich. Aber wenn es Ihnen helfen w\u00fcrde, ein paar Daten der Software in Echtzeit messen zu k\u00f6nnen:<\/p>\n<p><strong>Bleiben Sie dran!<\/strong><\/p>\n<h2>Referenzen<\/h2>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"33\">[1]<\/td>\n<td valign=\"top\" width=\"524\">FreeRTOS: Trace Hook Macros [More Advanced]\u00a0<a href=\"https:\/\/www.freertos.org\/rtos-trace-macros.html\" target=\"_blank\" rel=\"noopener\">https:\/\/www.freertos.org\/rtos-trace-macros.html<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"33\">[2]<\/td>\n<td valign=\"top\" width=\"524\">&#8222;Debugging Embedded Systems with Minimal Resources&#8220;. Circuit Cellar 12.07.2016<br \/>\n<a href=\"https:\/\/circuitcellar.com\/cc-blog\/debugging-embedded-systems-with-minimal-resources\/\" target=\"_blank\" rel=\"noopener\">https:\/\/circuitcellar.com\/cc-blog\/debugging-embedded-systems-with-minimal-resources\/<\/a><\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td valign=\"top\" width=\"33\">[3]<\/td>\n<td valign=\"top\" width=\"524\">&#8222;On Real-Time Measurement Techniques&#8220;. Ulrich Dreher, 24.02.2016, embedded world Conference 2016.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p><a title=\"Was macht Ihr Prozessor jetzt gerade?\" href=\"https:\/\/www.microconsult.de\/wp-content\/uploads\/2025\/11\/echtzeit_was_macht_ihr_prozessor_jetzt_gerade_iis_dreher.pdf\" target=\"_blank\" rel=\"noopener\"><strong>Beitrag als PDF-Datei herunterladen<\/strong><\/a><\/p>\n<hr \/>\n<h2>Architektur &#8211; MicroConsult Trainings &amp; Coachings<\/h2>\n<p><strong>Wollen Sie sich auf den aktuellen Stand der Technik bringen?<\/strong><\/p>\n<p>Dann informieren Sie sich\u00a0<a title=\"Alle Trainings und Termine\" href=\"https:\/\/www.microconsult.de\/alle-trainings-termine-komplettuebersicht\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong>\u00a0<\/a>zu Schulungen\/ Seminaren\/ Trainings\/ Workshops und individuellen Coachings von MircoConsult zum Thema Architektur \/Embedded- und Echtzeit-Softwareentwicklung.<\/p>\n<p><strong>Training &amp; Coaching zu den weiteren Themen unseren Portfolios finden Sie\u00a0<a title=\"Training &amp; Beratung - alle Themen\" href=\"https:\/\/www.microconsult.de\/training-beratung\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<hr \/>\n<h2>Architektur\u00a0&#8211; Fachwissen<\/h2>\n<p>Wertvolles Fachwissen zum Thema\u00a0Architektur \/Embedded- und Echtzeit-Softwareentwicklung steht\u00a0<a title=\"Embedded Software Architektur Fachwissen\" href=\"https:\/\/www.microconsult.de\/die-7-wichtigsten-tipps-fuer-ihre-embedded-software-architektur\/\" target=\"_blank\" rel=\"noopener\"><strong>hier<\/strong><\/a>\u00a0f\u00fcr Sie zum kostenfreien Download bereit.<\/p>\n<p><a title=\"Embedded Software Architektur Fachwissen\" href=\"https:\/\/www.microconsult.de\/die-7-wichtigsten-tipps-fuer-ihre-embedded-software-architektur\/\" target=\"_blank\" rel=\"noopener\"><strong>Zu den Fachinformationen<\/strong><\/a><\/p>\n<p><strong>Fachwissen zu weiteren Themen unseren Portfolios finden Sie <a title=\"Fachinformationen\" href=\"https:\/\/www.microconsult.de\/fachwissen\/\" target=\"_blank\" rel=\"noopener\">hier<\/a>.<\/strong><\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Techniken zur Messung von Software-Aktivit\u00e4ten in Echtzeit Autor: Ulrich Dreher, iss innovative software services GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Obwohl Debugger, Emulatoren und andere Entwicklungshilfsmittel in den ver\u00adgangenen Jahrzehnten gewaltige Fortschritte gemacht haben, fehlt ihnen eine Funktion, die die Entwicklung, Fehlersuche und Validierung von Echtzeitsyste\u00admen erheblich erleichtern w\u00fcrde: die M\u00f6glichkeit, Software-Events und [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_et_pb_use_builder":"","_et_pb_old_content":"","_et_gb_content_width":"","inline_featured_image":false,"footnotes":""},"categories":[],"tags":[],"class_list":["post-8000","post","type-post","status-publish","format-standard","hentry"],"acf":[],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Was macht Ihr Prozessor jetzt gerade? - MicroConsult Academy GmbH<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.microconsult.de\/en\/what-is-your-processor-doing-right-now\/\" \/>\n<meta property=\"og:locale\" content=\"en_GB\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Was macht Ihr Prozessor jetzt gerade? - MicroConsult Academy GmbH\" \/>\n<meta property=\"og:description\" content=\"Techniken zur Messung von Software-Aktivit\u00e4ten in Echtzeit Autor: Ulrich Dreher, iss innovative software services GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Obwohl Debugger, Emulatoren und andere Entwicklungshilfsmittel in den ver\u00adgangenen Jahrzehnten gewaltige Fortschritte gemacht haben, fehlt ihnen eine Funktion, die die Entwicklung, Fehlersuche und Validierung von Echtzeitsyste\u00admen erheblich erleichtern w\u00fcrde: die M\u00f6glichkeit, Software-Events und [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.microconsult.de\/en\/what-is-your-processor-doing-right-now\/\" \/>\n<meta property=\"og:site_name\" content=\"MicroConsult Academy GmbH\" \/>\n<meta property=\"article:published_time\" content=\"2025-11-29T07:36:24+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2026-02-13T03:59:19+00:00\" \/>\n<meta name=\"author\" content=\"weissblau media\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"weissblau media\" \/>\n\t<meta name=\"twitter:label2\" content=\"Estimated reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"17 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/\"},\"author\":{\"name\":\"weissblau media\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"headline\":\"Was macht Ihr Prozessor jetzt gerade?\",\"datePublished\":\"2025-11-29T07:36:24+00:00\",\"dateModified\":\"2026-02-13T03:59:19+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/\"},\"wordCount\":3274,\"commentCount\":0,\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/\",\"name\":\"Was macht Ihr Prozessor jetzt gerade? - MicroConsult Academy GmbH\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\"},\"datePublished\":\"2025-11-29T07:36:24+00:00\",\"dateModified\":\"2026-02-13T03:59:19+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/#breadcrumb\"},\"inLanguage\":\"en-GB\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/was-macht-ihr-prozessor-jetzt-gerade\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/www.microconsult.de\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Was macht Ihr Prozessor jetzt gerade?\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#website\",\"url\":\"https:\\\/\\\/www.microconsult.de\\\/\",\"name\":\"MicroConsult Academy GmbH\",\"description\":\"Professionelle Schulungen, Beratung und Projektunterst\u00fctzung\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/www.microconsult.de\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-GB\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/www.microconsult.de\\\/#\\\/schema\\\/person\\\/b6d4c4ae959b068fbe8d9416ed019a0a\",\"name\":\"weissblau media\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-GB\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g\",\"caption\":\"weissblau media\"},\"sameAs\":[\"https:\\\/\\\/www.microconsult.de\"]}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"What is your processor doing right now? - MicroConsult Academy GmbH","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.microconsult.de\/en\/what-is-your-processor-doing-right-now\/","og_locale":"en_GB","og_type":"article","og_title":"Was macht Ihr Prozessor jetzt gerade? - MicroConsult Academy GmbH","og_description":"Techniken zur Messung von Software-Aktivit\u00e4ten in Echtzeit Autor: Ulrich Dreher, iss innovative software services GmbH Beitrag &#8211; Embedded Software Engineering Kongress 2016 Obwohl Debugger, Emulatoren und andere Entwicklungshilfsmittel in den ver\u00adgangenen Jahrzehnten gewaltige Fortschritte gemacht haben, fehlt ihnen eine Funktion, die die Entwicklung, Fehlersuche und Validierung von Echtzeitsyste\u00admen erheblich erleichtern w\u00fcrde: die M\u00f6glichkeit, Software-Events und [&hellip;]","og_url":"https:\/\/www.microconsult.de\/en\/what-is-your-processor-doing-right-now\/","og_site_name":"MicroConsult Academy GmbH","article_published_time":"2025-11-29T07:36:24+00:00","article_modified_time":"2026-02-13T03:59:19+00:00","author":"weissblau media","twitter_card":"summary_large_image","twitter_misc":{"Written by":"weissblau media","Estimated reading time":"17 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/#article","isPartOf":{"@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/"},"author":{"name":"weissblau media","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"headline":"Was macht Ihr Prozessor jetzt gerade?","datePublished":"2025-11-29T07:36:24+00:00","dateModified":"2026-02-13T03:59:19+00:00","mainEntityOfPage":{"@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/"},"wordCount":3274,"commentCount":0,"inLanguage":"en-GB","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/","url":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/","name":"What is your processor doing right now? - MicroConsult Academy GmbH","isPartOf":{"@id":"https:\/\/www.microconsult.de\/#website"},"datePublished":"2025-11-29T07:36:24+00:00","dateModified":"2026-02-13T03:59:19+00:00","author":{"@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a"},"breadcrumb":{"@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/#breadcrumb"},"inLanguage":"en-GB","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.microconsult.de\/was-macht-ihr-prozessor-jetzt-gerade\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/www.microconsult.de\/"},{"@type":"ListItem","position":2,"name":"Was macht Ihr Prozessor jetzt gerade?"}]},{"@type":"WebSite","@id":"https:\/\/www.microconsult.de\/#website","url":"https:\/\/www.microconsult.de\/","name":"MicroConsult Academy GmbH","description":"Professional training, consulting and project support","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.microconsult.de\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-GB"},{"@type":"Person","@id":"https:\/\/www.microconsult.de\/#\/schema\/person\/b6d4c4ae959b068fbe8d9416ed019a0a","name":"weissblau media","image":{"@type":"ImageObject","inLanguage":"en-GB","@id":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/bbb409da4970da9446f6c49465d453cb8a0dae301e4d4f465b5c4e62408daa2e?s=96&d=mm&r=g","caption":"weissblau media"},"sameAs":["https:\/\/www.microconsult.de"]}]}},"post_mailing_queue_ids":[],"_links":{"self":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8000","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/comments?post=8000"}],"version-history":[{"count":7,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8000\/revisions"}],"predecessor-version":[{"id":11654,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/posts\/8000\/revisions\/11654"}],"wp:attachment":[{"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/media?parent=8000"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/categories?post=8000"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.microconsult.de\/en\/wp-json\/wp\/v2\/tags?post=8000"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}