Ein UML Projekt anlegen

Für die weitere Arbeit in diesem Tutorial verwenden wir als Entwicklungsumgebung das UML-Klassendiagramm und Klassenbibliotheken für den STM32F4. Es ist nötig, dafür ein neues Projekt anzulegen und eine Projektvorlage mit den gewünschten Bibliotheken auszuwählen. Legen Sie ein neues SiSy-Projekt an und wählen Sie das ARM-Vorgehensmodell.

Sie erhalten im SiSy LibStore verschiedene Vorlagen zur Auswahl. Bitte laden Sie die Vorlage für das PEC Framework - Portable Embedded Classes ohne Beispiele.

Legen Sie ein neues Klassendiagramm an, indem Sie das entsprechende Element per Drag&Drop aus der Objektbibliothek in das Diagrammfenster ziehen. Achten Sie auf die Einstellung der Zielsprache ARM C++. Wählen Sie im nächsten Fenster die Hardware STM32F407 Discovery und den Programmer ST-Link V2 aus.

Öffnen Sie das Klassendiagramm, indem Sie auf diesem das Kontextmenü (rechte Maustaste) öffnen und den Menüpunkt nach unten (öffnen) auswählen. Laden Sie aus dem SiSy LibStore die Diagrammvorlage Application Grundgerüst für PEC Anwendungen (XMC, STM32, AVR). Schränken Sie die Vorlagensuche ggf. mit dem Suchbegriff PEC ein. Weisen Sie dem Diagramm das Treiberpaket für den konkreten Controller MCU_STM32F4 zu. Sie finden dieses Paket über den Navigator (UML-Pakete) oder über die Suchfunktion im Explorer.

Hinweis: Aktivieren Sie im Diagrammfenster die Schaltfläche Suche MCUs im Explorer. Oben links erscheint das Fenster MCU-Explorer. Ziehen Sie das Objekt MCU_STM32F4 in das Diagrammfenster.

Grundstruktur einer objektorientierten Anwendung

Sie erhalten das nachfolgende Diagramm. Dabei handelt es sich um die typische Grundstruktur einer objektorientierten Anwendung auf der Basis des SiSy ARM C++ Framework.

Die Klasse Controller ist eine Realisierung eines PecAppKernel. Es handelt sich um die sogenannte Anwendungsklasse. Diese nimmt die Rolle der gesamten Anwendung ein und muss als erstes ausgeführt werden. Das Objekt app:Controller ist die Instanz der Anwendungsklasse. Über die Referenz des Paketes PecFramework werden alle benötigten Klassen aus der Bibliothek importiert.

Das Template PecAppKernel stellt bereits eine Reihe von nützlichen Struktur- und Verhaltensmerkmalen einer ARM-Anwendung bereit. Zwei Operationen sind in der Klasse Controller zur Realisierung vorbereitet. Die Operation onStart dient der Initialisierung nach dem Systemstart, bildet also die Initalisierungssequenz. Die Operation onWork wird durch das Framework zyklisch aufgerufen. Damit nimmt diese die Position der Mainloop ein. Beachten Sie, dass die Mainloop jetzt selbst im Framework vor unsern Augen verborgen läuft und nicht mehr von uns geschrieben werden muss. Zur Verdeutlichung und zur Gewöhnung hier das grundsätzliche Verhalten der Anwendung als UML-Sequenzdiagramm.

So wie die Anwendung jetzt vor uns liegt tut das Programm nichts, sondern läuft im Leerlauf. Trotzdem wollen wir aus dem Klassendiagramm den Quellcode generieren, diesen übersetzen und auf den Controller übertragen. Das erfolgt über das Aktionsmenü in der Objektbibliothek. Wählen Sie dort den Menüpunkt Erstellen, Brennen Ausführen.

Videozusammenfassung

Damit haben wir auch schon unsere erste objektorientierte ARM-Anwendung erstellt und auf den Controller übertragen. Als Zusammenfassung dieses kurzen Abschnittes das Ganze nochmal als Video.

Nächstes Thema