Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
light_grundstruktur_mit_uml [2020/01/28 13:17] – [Videozusammenfassung] huwilight_grundstruktur_mit_uml [2023/07/17 12:37] (aktuell) huwi
Zeile 1: Zeile 1:
 +{{tag>Vorlage Grundgerüst PEC Klassendiagramm Projekt_anlegen}}
 ====== UML Grundstruktur für das mySMT32 Board light ====== ====== UML Grundstruktur für das mySMT32 Board light ======
 Wie bereits angekündigt werden wir in diesem Tutorial von Anfang an grafisch programmieren. Dafür verwenden wir als Entwicklungswerkzeug das UML-Klassendiagramm und Klassenbibliotheken für den STM32. Wir werden im Folgenden diese Arbeitsschritte gemeinsam ausführen: Wie bereits angekündigt werden wir in diesem Tutorial von Anfang an grafisch programmieren. Dafür verwenden wir als Entwicklungswerkzeug das UML-Klassendiagramm und Klassenbibliotheken für den STM32. Wir werden im Folgenden diese Arbeitsschritte gemeinsam ausführen:
Zeile 16: Zeile 17:
 {{:uml:libstorepec.png?direct&550|}}{{:uml:umlprojektohnebeispiel.jpg?direct&480|}} {{:uml:libstorepec.png?direct&550|}}{{:uml:umlprojektohnebeispiel.jpg?direct&480|}}
  
-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 **STM32F042 mySTM32 Board light HAL** und den Programmer **mySTM-Light-Board** aus. +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 **STM32F042 mySTM32 Board light HAL** und den Programmer **mySTM-Light-Board** aus. 
  
 {{:neuesklassendiagramm.jpg?direct&600|}} {{:neuesklassendiagramm.jpg?direct&600|}}
Zeile 37: Zeile 38:
  
 ====== Grundstruktur einer objektorientierten Anwendung ====== ====== 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//+Sie erhalten das nachfolgende Diagramm. Dabei handelt es sich um die typische Grundstruktur einer objektorientierten Anwendung auf der Basis des //SiSy PEC Framework//
  
 {{:stm32light:stml001.png?direct&800|}} {{:stm32light:stml001.png?direct&800|}}
Zeile 55: Zeile 56:
 {{:uml:istein.png?direct&250|}} {{:uml:istein.png?direct&250|}}
  
-Die Pfeile mit den großen dicken Endpfeilen lesen wir als **"ist ein"**. Systembausteine werden sowohl in der Modellierungssprache UML als auch in der Programmiersprache C++ als **Klasse** bezeichnet. +Die Pfeile mit den großen dicken Endpfeilen lesen wir als **"ist ein"**. Systembausteine werden sowohl in der Modellierungssprache UML als auch in der Programmiersprache C + + als **Klasse** bezeichnet. 
  
 Mit diesen ersten Informationen können wir versuchen die Darstellung etwas professioneller zu lesen: Mit diesen ersten Informationen können wir versuchen die Darstellung etwas professioneller zu lesen:
Zeile 63: Zeile 64:
 {{:stm32light:appcontroller.png?direct&600|}} {{:stm32light:appcontroller.png?direct&600|}}
  
-Der Baustein **app:Controller** ist die Instanz der Anwendungsklasse. Falls Sie noch kein C++ oder eine andere Objektorientierte Programmiersprache kennen nur so viel: Instanzen sind vergleichbar mit den Variablen in klassischen Programmiersprachen. Nur dass Instanzen von Klassen nicht nur Daten sondern auch Funktionen enthalten.+Der Baustein **app:Controller** ist die Instanz der Anwendungsklasse. Falls Sie noch kein C + + oder eine andere Objektorientierte Programmiersprache kennen nur so viel: Instanzen sind vergleichbar mit den Variablen in klassischen Programmiersprachen. Nur dass Instanzen von Klassen nicht nur Daten sondern auch Funktionen enthalten.
  
 {{:stm32light:pakete.png?direct&400|}} {{:stm32light:pakete.png?direct&400|}}
Zeile 71: Zeile 72:
 **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. **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.
  
-{{:seq_grundstruktur.jpg?nolink&|}}+{{:seq_grundstruktur.jpg?direct&|}}
  
 Die entsprechenden Operationen in der Klasse Controller sind bis jetzt noch leer. Die entsprechenden Operationen in der Klasse Controller sind bis jetzt noch leer.
Zeile 98: Zeile 99:
  
 ====== Videozusammenfassung ====== ====== Videozusammenfassung ======
 +{{tag>Video}}
 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. 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.
  
Zeile 106: Zeile 108:
   * [[light Hallo UML|Hallo mySTM32 light (Blinky)]]   * [[light Hallo UML|Hallo mySTM32 light (Blinky)]]
   * [[mystm32_board_light_tutorial|zurück zur Übersicht]]   * [[mystm32_board_light_tutorial|zurück zur Übersicht]]
 +
 +====== Suchbegriffe ======