Das PEC-Framework in der Übersicht
Die folgende Darstellung zeigt die grobe Struktur des PEC-Framework als Paketdiagramm. Das Basispaket bildet die eigentliche PEC-Bibliothek (Portable Embedded Classes). Alle portablen Elemente (Klassen, Templates, Interfaces, Strukturen, VariationPoints, Varianten, Definitionen und Modifier) sind mit dem Präfix pec versehen. Dieser Präfix zeigt an, dass bei diesen Elementen keine plattformspezifischen Befehle, Bezeichner, Register etc. verwendet wurden. Sie können in allen Zielplattformen gleichermaßen angewendet werden.
Auf der Basis der PEC-Bibliotheken werden plattformspezifische Realisierungen aufgebaut. Die hier gezeigte Version des PEC-Framework gliedert sich in die Realisierungen für 8 Bit AVR Controller und 32 Bit ARM Controller. Das ARM Paket enthält die für alle ARM gültigen Spezifikationen. Die ARM Controller werden wiederum in konkrete ARM-Familien aufgeteilt. Hier finden sich vor allem familienspezifische Realisierungen der herstellerabhängigen IP (internal peripherals). Möglich wird diese Portabilität durch die Verwendung von VariationPoints. Dabei stellt ein PEC-Interface (Klasse, Template oder Struktur) lediglich die abstrakte Definition zum Beispiel eines Bausteins ohne konkrete Realisierung dar.
Die innere Struktur des PEC-Paketes gibt zum Beispiel einen Überblick welche Peripherie plattformübergreifend spezifiziert wurde. Alle Lösungen die auf die hier festgelegten Interfaces aufsetzen und somit gegen die PEC-API (Application Programming Interface) programmiert wurden sind hoch portabel. Die Portierung von einem AVR auf einen STM32 ist faktisch add hoc möglich. Lediglich die konkrete Hardware muss neu zugewiesen werden.
Über das Anbinden von plattformspezifischen Varianten werden zum Zeitpunkt der Codegenerierung durch das UML Werkzeug die für das Target benötigte Realisierung ausgewählt (vgl. Constraint an der Realisierungsbeziehung). Die plattformspezifischen Realisierungen sollen nicht in den Benutzermodellen verwendet werden. Damit die durch den Anwendungsentwickler nicht zu verwendende Elemente erkannt werden tragen Sie den Präfix sys.
Das PEC-Framework im Detail
- pec_AppManagement (nur über eine SiSy-Lizenz verfügbar)
- pec_Utils (nur über eine SiSy-Lizenz verfügbar)
- pec_Debug (nur über eine SiSy-Lizenz verfügbar)
- pec_Strings (nur über eine SiSy-Lizenz verfügbar)
- pec_InOut (nur über eine SiSy-Lizenz verfügbar)
- pec_Gpio (nur über eine SiSy-Lizenz verfügbar)
- pec_Lcd (nur über eine SiSy-Lizenz verfügbar)
- pec_Uart (nur über eine SiSy-Lizenz verfügbar)
- pec_Spi (nur über eine SiSy-Lizenz verfügbar)
- pec_Adc (nur über eine SiSy-Lizenz verfügbar)
- pec_I2C (nur über eine SiSy-Lizenz verfügbar)
- pec_Timer (nur über eine SiSy-Lizenz verfügbar)
- pec_Sound (nur über eine SiSy-Lizenz verfügbar)
- avr_Commons (nur über eine SiSy-Lizenz verfügbar)