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/09 19:20] 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.  +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: 
-  - Starten Sie SiSy +  - SiSy starten,  
-  - Legen Sie ein neues SiSy-Projekt an und wählen Sie das ARM-Vorgehensmodell. +  - Ein neues SiSy-Projekt ananlegen und das ARM-Vorgehensmodell auswählen, 
-  - Laden Sie aus dem LibStore eine Projektvorlage mit den PEC Bibliotheken +  - Aus dem LibStore eine Projektvorlage mit den PEC Bibliotheken laden,  
-  - Legen Sie ein Klassendiagramm an. +  - Ein Klassendiagramm erstellen, 
-  - Öffnen Sie das Klassendiagramm und laden die Duiagrammvorlage für PEC-Anwendungen. +  - Das Klassendiagramm öffnen und die Diagrammvorlage für PEC-Anwendungen laden, 
-  - Weisen Sie das Treiberpaket für den STM32F0 zu.+  - Das Treiberpaket für den STM32F0 zuweisen. 
 + 
 +Starten Sie SiSy und wählen Sie die Schaltfläche **"neues Projekt erstellen"** und das Projektprofil "ARM-Vorgehensmodell".
  
 {{uml:umlprojekt01.PNG?direct&500|}} {{uml:umlprojekt02.PNG?direct&500|}} {{uml:umlprojekt01.PNG?direct&500|}} {{uml:umlprojekt02.PNG?direct&500|}}
Zeile 14: 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 30: Zeile 33:
 {{:umlnachunten.png?direct&480|}} {{:stm32light:treiberpaketstmf0.jpg?direct&520|}} {{:umlnachunten.png?direct&480|}} {{:stm32light:treiberpaketstmf0.jpg?direct&520|}}
  
 +Standardmäßig läuft der STM32F042 mit stromsparenden 8MHz. Das reicht für die Übungen die wir machen vorerst absolut aus. Um den Controller mit voller Leistung (48MHz) zu betreiben, können Sie zusätzlich noch den Bibliotheksbaustein //"stm32F042_48MHz"// hinzufügen. Diesen finden Sie über die Suchfunktion im Explorer. 
 +
 +{{:stm32light:full48mhz.png?direct&1000|}}
  
 ====== 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//. Standardmäßig läuft der STM32F042 mit stromsparenden 8MHz. Das reicht für die Übungen die wir machen vorerst absolut aus. Um den Controller mit voller Leistung (48MHz) zu betreiben können Sie zusätzlich noch den Bibliotheksbaustein //"stm32F042_48MHz"// hinzufügen. Diesen finden Sie über die Suchfunktion im Explorer+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 50: 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 58: 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 66: 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 93: 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.
  
 <html><iframe width="888" height="500" src="https://www.youtube.com/embed/4BuD5ziKMqM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html> <html><iframe width="888" height="500" src="https://www.youtube.com/embed/4BuD5ziKMqM" frameborder="0" allow="accelerometer; autoplay; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe></html>
  
 +[[https://youtu.be/qjmiR5f33ls|oder die schnelle Version ohne Sprachkommentare]]
 ====== Weiter mit: ====== ====== Weiter mit: ======
   * [[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 ======