events

DESIGN&ELEKTRONIK-Entwicklerforum HMI – Komponenten & Lösungen
DESIGN&ELEKTRONIK-Entwicklerforum HMI – Komponenten & Lösungen

Am 24. Mai 2012 findet das DESIGN&ELEKTRONIK-Entwicklerforum »HMI – Komponenten & Lösungen« mit begleitender Fachausstellung statt. Die Themen: »Bedienen und Beobachten: Technik, Know-how und Tools für das Design moderner Benutzerschnittstellen«.

Melden Sie sich jetzt an…

DESIGN&ELEKTRONIK-Entwicklerforum »Embedded-System-Entwicklung«
DESIGN&ELEKTRONIK-Entwicklerforum »Embedded-System-Entwicklung«

Auch in diesem Jahr veranstaltet die DESIGN&ELEKTRONIK wieder das Entwicklerforum »Embedded-System-Entwicklung« am 11. und 12. Juli 2012 in München. Neben einem technisch anspruchsvollen Vortragsprogramm ermöglichen verschiedene Workshops den Teilnehmern einen differenzierten Einblick in die Thematik.

Ausführliche Informationen:
www.embedded-entwicklerforum.de

Produkte des Jahres 2012

Linux /ARM

Linux: Embedded für alle
Linux: Embedded für alle

Linux ist heute erste Wahl geworden, wenn es um die Entscheidung für ein Betriebssystem in einem leistungsfähigen Embedded-System geht. Wie kann es sein, dass eine Open-Source-Software gerade bei Embedded-Systemen so erfolgreich ist?

Konferenz für ARM-Systementwicklung
Konferenz für ARM-Systementwicklung

Die große Konferenz für ARM-Systementwicklung am 11. und 12. Juli 2012 in München bietet Entwicklern die Gelegenheit, sich detailliertes Wissen über die aktuellen Cortex-Architekturen anzueignen, die mittlerweile zum Industriestandard avanciert sind.

Ausführliche Informationen:
www.arm-entwicklerkonferenz.de

embedded world Technology Report

Android & Embedded
embedded world Technology Report

Welche Embedded-Trends zeichnen sich ab? Im »embedded world Technology Report« gibt ein unabhängiger Expertenrat einen exklusiven Einblick in aktuelle Entwicklungen und zukünftige Trends im Embedded-Bereich.

Interessiert? Hier geht es zum kostenlosen Download

embedded world special

embedded world 2012
embedded world 2012

Wir haben aktuell von der weltgrößten Messe für die Embedded-Branche mit News, Videobeiträgen und Produktneuheiten berichtet.

Windows Embedded Standard 7

Windows Embedded Standard 7
Windows Embedded Standard 7

Was ist neu in Windows Embedded Standard 7? Lesen Sie alles rund um das neue Microsoft-Embedded-Betriebssystem Embedded Standard 7 in unserem Spezial.


Windows 7 - Special zum Download

Windows 7 -Special zum Download
Windows 7 -Special zum Download

20 Seiten Fachwissen – Das Windows-Embedded-Special als PDF-Download.


Marktübersichten Embedded

Marktübersichten aus dem Bereich Embedded

Software im sicherheitskritischen Bereich

Entwicklungssoftware
Entwicklungssoftware

Um die »Worst-Case Execution Time« zu erhalten, gibt es verschiedene Herangehensweisen – bequeme und weniger bequeme.


29. März 2011
Echtzeit mit System

special Die Systemprogrammierung von Windows Embedded Compact 7

Die Unterstützung von Mehrkern-Prozessoren ist eines der wichtigsten Features von Windows Embedded Compact 7. Damit werden Embedded-Systeme erheblich leistungsfähiger. Trotzdem sollte man der Echtzeit-Programmierung weiterhin Sorgfalt widmen, denn durch das Beachten einiger Randbedingungen läuft das System runder und zuverlässiger.

Hannes Klein und Rudi Swiontek

Anzeige

Die Systemleistung ist ausschlaggebend für die Produktivität des Benutzers. Sie hat außerdem direkten Einfluss auf den Eindruck, den der Benutzer von einem Gerät hat. Der Benutzer beurteilt die Nützlichkeit eines Geräts häufig auf Grundlage der Systemleistung und der Benutzerfreundlichkeit der Oberfläche. Leistungsoptimierung und Systemanpassung stellen eine große Herausforderung für die Anbieter von Firmware dar.

Überwachen und Optimieren der Systemleistung

Das Überwachen und Optimieren der Leistung sind wichtige Aufgaben bei der Entwicklung von Small-Footprint-Geräten. Die Optimierung erfordert, dass Firmware- und Software-Entwickler die Ressourcenbelegung in ihren Systemkomponenten und -anwendungen einschränken, damit für die anderen Programme und Komponenten noch genügen freie Ressourcen vorhanden sind. Unabhängig davon, ob Gerätetreiber oder Benutzeranwendungen entwickelt werden, können optimierte Verarbeitungsalgorithmen die Prozessorauslastung reduzieren, und effiziente Datenstrukturen können die Arbeitsspeicherbelegung verringern. Entwicklungswerkzeuge zum Identifizieren von Leistungsproblemen in Treibern, Anwendungen und anderen Komponenten (Bild 1) sind auf allen Systemebenen verfügbar.

Windows Embedded Compact 7 Systemarchitektur
 
zoom
Bild 1. Systemarchitektur von Windows Embedded Compact 7

Die »Echtzeit-Leistung« in Treiber-, Anwendungs- und OAL-Code (OEM Adaptation Layer) beeinflusst die Systemleistung direkt. Aber auch Komponenten und Anwendungen ohne Echtzeit-Unterstützung können sich auf das Echtzeit-Verhalten auswirken.

Der System-Timer ist ein Hardware-Zeitgeber, der pro Millisekunde einen Impuls erzeugt. Mittels dieser Impulse steuert der System-Scheduler, welche Threads zu welchem Zeitpunkt ausgeführt werden. Ein Thread ist die kleinste ausführbare Einheit in einem Prozess. Das Betriebssystem bzw. der Echtzeit mit SystemScheduler des Betriebssystems teilt den Prozessen Ausführungszeit zu. Mit der Sleep-Funktion kann ein Thread für eine angegebene Zeitdauer angehalten werden. Der Mindestwert für die Sleep-Funktion ist 1, was den Thread für ca. eine Millisekunde anhält.

Eine Sleep-Einheit beträgt jedoch nicht genau 1 Millisekunde, da sie den aktuellen System-Impuls plus den Rest der vorherigen Zeiteinheit umfasst. Die Sleep-Zeit ist außerdem mit der Priorität des Threads verknüpft. Die Thread-Priorität bestimmt die Reihenfolge, in der das Betriebssystem die Threads auf dem Prozessor ausführt. Aus diesem Grund sollte die Sleep-Funktion nicht verwendet werden, wenn genaue Zeitgeber für Echtzeit-Anwendungen benötigt werden. Besser sind in diesem Fall dedizierte Zeitgeber mit Interrupts.

Die Energieverwaltung (Power Management) kann sich auf die Systemleistung auswirken. Wenn der Prozessor in den Leerlauf übergeht, verursachen alle von einem Peripheriegerät oder dem System-Scheduler generierten Interrupts, dass der Prozessorstatus gewechselt, der vorherige Kontext wiederhergestellt und der Scheduler aufgerufen wird. Der Energiekontextwechsel ist ein zeitaufwendiger Vorgang.

Der Kernel reserviert und verwaltet den Systemspeicher für Heaps, Prozesse, Critical Sections, Mutexe, Events und Semaphores. Wenn Kernel-Objekte nicht mehr benötigt werden, wird dieser Speicher jedoch nicht vollständig freigegeben. Stattdessen bleiben die Systemspeicherbereiche für die nächste Zuordnung reserviert. Da die Wiederverwendung des zugeordneten Speichers schneller ist, initialisiert der Kernel während des Startprozesses den Systemspeicherpool und ordnet weiteren Speicher nur dann zu, wenn im Pool kein Speicher mehr verfügbar ist. Die Systemleistung kann abnehmen, abhängig davon, wie die Prozesse den virtuellen Speicher, die Heap-Objekte und den Stack verwenden.

Beim Aufrufen von System-APIs oder Grafik-APIs ist zu beachten, dass das Aufrufen von APIs ohne Echtzeit-Unterstützung die Systemleistung drastisch reduzieren kann. Das Graphical Windows Event System (GWES), das die Darstellung der Fenster und der Benutzeroberfläche steuert, gehört z.B. dazu. Wer eine Benutzeroberfläche braucht, muss sich also dessen bewusst sein, dass viele Grafik-Aufrufe das System langsamer machen. Wer kritische Echtzeit-Anwendungen betreibt, sollte sicherstellen, dass die APIs, die dort aufgerufen werden, auch echtzeit-kompatibel sind.

Andere APIs, beispielsweise für den Zugriff auf ein Dateisystem oder Hardware, können die Leistung ebenfalls beeinträchtigen, da sie möglicherweise Blockaden auslösen, z.B. bei Mutexen oder Critical Sections, um Ressoucen zu schützen.

Echtzeit-Leistung messen

Windows Embedded Compact umfasst zahlreiche Tools für die Leistungsüberwachung und Problembehandlung, mit denen die Auswirkungen der Win32-APIs auf die Systemleistung ausgewertet werden können. Mit diesen Tools lässt sich eine ineffiziente Speicherbelegung identifizieren, beispielsweise wenn eine Anwendung den zugeordneten Systemspeicher nicht freigibt.

Folgende Werkzeuge von Windows Embedded Compact 7 sind insbesondere zum Auswerten der Echtzeit-Leistung der Systemkomponenten und -anwendungen nützlich:

ILTiming: Wertet ISR-Latenzen (Interrupt Service Routine) und IST-Latenzen (Interrupt ServiceThread) aus.
OSBench: Wertet die Systemleistung aus, indem die Zeitdauer überwacht wird, die der Kernel zum Verwalten der Kernelobjekte benötigt.
Remote Performance Monitor: Wertet die Systemleistung aus, einschließlich der Speicherbelegung, des Netzwerkdurchsatzes und anderer Aspekte.