Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen Revision Vorhergehende Überarbeitung
grundstruktur_mit_uml [2019/02/04 14:10]
127.0.0.1 Externe Bearbeitung
grundstruktur_mit_uml [2019/07/25 21:37] (aktuell)
huwi
Zeile 2: Zeile 2:
 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. 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.
  
->>​{{uml:​projekt01.jpg?​350|}}{{umlprojekt2vgm.jpg ?350|}}+>​{{uml:​projekt01.jpg?​350|}}{{umlprojekt2vgm.jpg ?350|}}
  
 Sie erhalten im SiSy LibStore verschiedene Vorlagen zur Auswahl. Bitte laden Sie die Vorlage für das //PEC Framework - Portable Embedded Classes// ohne Beispiele. Sie erhalten im SiSy LibStore verschiedene Vorlagen zur Auswahl. Bitte laden Sie die Vorlage für das //PEC Framework - Portable Embedded Classes// ohne Beispiele.
  
->>​{{:​uml:​libstorepec.png?​350|}}{{:​uml:​umlprojektohnebeispiel.jpg?​310|}}+>​{{:​uml:​libstorepec.png?​350|}}{{:​uml:​umlprojektohnebeispiel.jpg?​310|}}
  
 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.  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. 
  
->>>​{{:​neuesklassendiagramm.jpg?​600|}}+>​{{:​neuesklassendiagramm.jpg?​600|}}
  
->>>​{{:​hardwareauswahl.jpg?​350|}} ​+>​{{:​hardwareauswahl.jpg?​350|}} ​
  
->>>​{{:​armextrasf4.jpg?​350|}}+>​{{:​armextrasf4.jpg?​350|}}
  
 Ö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. Ö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.
Zeile 21: Zeile 21:
 __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. __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.
  
->>​{{:​umlnachunten.png?​300|}}>>> ​    {{uml:​treiberpaketstm.jpg?​340|}}+>​{{:​umlnachunten.png?​300|}} {{uml:​treiberpaketstm.jpg?​340|}}
  
  
Zeile 27: Zeile 27:
 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 ARM C++ Framework//​. ​
  
->>>​{{:​uml:​umlappgg.jpg|}}+>​{{:​uml:​umlappgg.jpg|}}
  
  
Zeile 34: Zeile 34:
 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. 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.
  
->>>​{{:​seq_grundstruktur.jpg|}}+>​{{:​seq_grundstruktur.jpg|}}
  
 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//​. 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//​.
  
->>>​{{:​ggerstellenundbrennen.jpg?​500|}}+>​{{:​ggerstellenundbrennen.jpg?​500|}}
  
 ====== Videozusammenfassung ====== ====== 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. 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="​700"​ height="​440"​ src="​https://​www.youtube.com/​embed/​oxy8t0ielv4"​ frameborder="​0"​ allowfullscreen></​iframe></​html>​+><​html><​iframe width="​700"​ height="​440"​ src="​https://​www.youtube.com/​embed/​oxy8t0ielv4"​ frameborder="​0"​ allowfullscreen></​iframe></​html>​
  
 ====== Nächstes Thema ====== ====== Nächstes Thema ======
   * [[Hallo UML|Hallo ARM C++]]   * [[Hallo UML|Hallo ARM C++]]