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
Letzte ÜberarbeitungBeide Seiten der Revision
light_grundstruktur_mit_uml [2020/01/09 19:19] huwilight_grundstruktur_mit_uml [2022/08/18 16:37] – [UML Grundstruktur für das mySMT32 Board light] 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 56: Zeile 62:
 Der **Controller** //ist ein// **PecAppKernel**. Es handelt sich um die sogenannte Anwendungsklasse. Diese nimmt die Rolle der gesamten Anwendung ein und muss als erstes ausgeführt werden.  Der **Controller** //ist ein// **PecAppKernel**. Es handelt sich um die sogenannte Anwendungsklasse. Diese nimmt die Rolle der gesamten Anwendung ein und muss als erstes ausgeführt werden. 
  
-{{:stm32light:appcontroller.png?direct&500|}}+{{: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&300|}}+{{:stm32light:pakete.png?direct&400|}}
  
 Über die Referenz der Pakete **Pec** und **MCU_STM32F0** werden alle benötigten Klassen aus der Bibliothek importiert. Das ist letztlich das selbe wie das **#include** oder **#using** auf Quellcodeebene. Über die Referenz der Pakete **Pec** und **MCU_STM32F0** werden alle benötigten Klassen aus der Bibliothek importiert. Das ist letztlich das selbe wie das **#include** oder **#using** auf Quellcodeebene.
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 ======