Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung | ||
grundstruktur [2019/02/04 14:10] – Externe Bearbeitung 127.0.0.1 | grundstruktur [2019/11/27 20:17] (aktuell) – [Bilden und Übertragen des Programms] huwi | ||
---|---|---|---|
Zeile 6: | Zeile 6: | ||
Wählen Sie das ARM Vorgehensmodell aus. Damit sind alle wichtigen Einstellungen für das Projekt und die darin enthaltenen Übungen als Default-Werte gesetzt. Nach Auswahl des Vorgehensmodells öffnet SiSy LibStore und bietet vorhandene Vorlagen für die weitere Arbeit an. | Wählen Sie das ARM Vorgehensmodell aus. Damit sind alle wichtigen Einstellungen für das Projekt und die darin enthaltenen Übungen als Default-Werte gesetzt. Nach Auswahl des Vorgehensmodells öffnet SiSy LibStore und bietet vorhandene Vorlagen für die weitere Arbeit an. | ||
- | >>> | + | > |
Wir brauchen für die ersten Schritte noch keine UML Bibliotheken. Damit können wir die Frage nach den Projektvorlagen mit "keine Vorlage verwenden" | Wir brauchen für die ersten Schritte noch keine UML Bibliotheken. Damit können wir die Frage nach den Projektvorlagen mit "keine Vorlage verwenden" | ||
Zeile 14: | Zeile 14: | ||
Legen Sie Ihr erstes //kleines Programm// an, indem Sie das entsprechende Objekt aus der Objektbibliothek per //Drag & Drop// in das Diagrammfenster ziehen. Geben Sie dem Programm den Namen // | Legen Sie Ihr erstes //kleines Programm// an, indem Sie das entsprechende Objekt aus der Objektbibliothek per //Drag & Drop// in das Diagrammfenster ziehen. Geben Sie dem Programm den Namen // | ||
- | >>> | + | > |
- | Im nächsten Schritt wird die Hardware ausgewählt. Wir benutzen | + | Im nächsten Schritt wird die Hardware ausgewählt: |
+ | * Wenn Sie das STM32F4 Discovery benutzen wählen Sie // | ||
+ | * Als Nutzer des mySTM32 Board light wählen Sie //STM34F042 mySTM32 Board light// und als Programmer //mySTM32 Board light//. | ||
- | >>>>>> | + | Falls Sie eine neuere SiSy Version ab 3.69 verwenden, achten Sie bitte darauf, dass Sie für diese Übungen die klassischen STM32 Bibliotheken nutzen und nicht die HAL. |
+ | > | ||
Bevor wir uns dem Stress aussetzen und fast 40 Zeilen Programmcode abtippen, benutzen wir lieber eines der Features von SiSy, die Programmgerüste. Selektieren Sie das Grundgerüst für ein ARM C++ Programm und laden die Struktur über die Schaltfläche //Struktur laden// | Bevor wir uns dem Stress aussetzen und fast 40 Zeilen Programmcode abtippen, benutzen wir lieber eines der Features von SiSy, die Programmgerüste. Selektieren Sie das Grundgerüst für ein ARM C++ Programm und laden die Struktur über die Schaltfläche //Struktur laden// | ||
- | >>>>> | + | > |
Das nächste Dialogfeld mit Code-Wizzard überspringen wir und wählen die Schaltfläche //Fertig stellen//. | Das nächste Dialogfeld mit Code-Wizzard überspringen wir und wählen die Schaltfläche //Fertig stellen//. | ||
Zeile 29: | Zeile 32: | ||
Zur Sicherheit können die vorgenommenen Einstellungen kontrolliert und ggf. geändert werden. Markieren Sie dafür im Diagrammfenster das Objekt //kleines Progemm// und wählen aus dem Kontextmenü (rechte Maustaste) // | Zur Sicherheit können die vorgenommenen Einstellungen kontrolliert und ggf. geändert werden. Markieren Sie dafür im Diagrammfenster das Objekt //kleines Progemm// und wählen aus dem Kontextmenü (rechte Maustaste) // | ||
- | >>>>>>> | + | |
+ | > {{: | ||
====== Grundstruktur einer einfachen ARM Anwendung ====== | ====== Grundstruktur einer einfachen ARM Anwendung ====== | ||
Schauen wir uns den geladenen Quellcode etwas genauer an. Dieser lässt sich in mehrere Bereiche unterteilen. Zum einen ist da der Programmkopf mit Dokumentation und Deklarationen. Hier werden unter anderem die Deklarationen, | Schauen wir uns den geladenen Quellcode etwas genauer an. Dieser lässt sich in mehrere Bereiche unterteilen. Zum einen ist da der Programmkopf mit Dokumentation und Deklarationen. Hier werden unter anderem die Deklarationen, | ||
- | >>>< | + | >< |
// | // | ||
// Titel : Grundgerüst einer einfachen ARM C Anwendung in SiSy | // Titel : Grundgerüst einer einfachen ARM C Anwendung in SiSy | ||
Zeile 41: | Zeile 45: | ||
// Schaltung : ... | // Schaltung : ... | ||
// | // | ||
- | // Hardware | + | // Hardware |
- | // Takt : 168 MHz | + | // Takt : xxx MHz |
// Sprache | // Sprache | ||
// Datum : ... | // Datum : ... | ||
Zeile 55: | Zeile 59: | ||
Die Dokumentation sollte immer gewissenhaft ausgefüllt werden. Vor allem die Beschreibungen von Funktion und Hardware sind sehr wichtig. Das richtige Programm zur falschen Schaltung oder umgekehrt kann verheerende Folgen haben. Es folgt der Definitionsteil. Hier finden sich globale Variablen oder eben Unterprogramme, | Die Dokumentation sollte immer gewissenhaft ausgefüllt werden. Vor allem die Beschreibungen von Funktion und Hardware sind sehr wichtig. Das richtige Programm zur falschen Schaltung oder umgekehrt kann verheerende Folgen haben. Es folgt der Definitionsteil. Hier finden sich globale Variablen oder eben Unterprogramme, | ||
- | >>>< | + | >< |
void initApplication() | void initApplication() | ||
{ | { | ||
Zeile 65: | Zeile 69: | ||
Als vorgegebenen Funktionsaufruf finden wir dort die Initialisierung des SysTick-Timers. Dieser liefert uns schon mal ein regelmäßiges Timerereignis. In den Übungen werden wir dies recht schnell benötigen. An dieser Stelle können noch weitere Funktionen eingefügt werden. Es folgt jetzt das Hauptprogramm. Dies ist durch das Schlüsselwort //main// gekennzeichnet. Auch hier sehen wir wieder die Begrenzung des Funktionskörpers durch die geschweiften Klammern. Innerhalb des Hauptprogramms findet sich zuerst die Initialisierungssequenz. Dabei sollte als erstes die Funktion // | Als vorgegebenen Funktionsaufruf finden wir dort die Initialisierung des SysTick-Timers. Dieser liefert uns schon mal ein regelmäßiges Timerereignis. In den Übungen werden wir dies recht schnell benötigen. An dieser Stelle können noch weitere Funktionen eingefügt werden. Es folgt jetzt das Hauptprogramm. Dies ist durch das Schlüsselwort //main// gekennzeichnet. Auch hier sehen wir wieder die Begrenzung des Funktionskörpers durch die geschweiften Klammern. Innerhalb des Hauptprogramms findet sich zuerst die Initialisierungssequenz. Dabei sollte als erstes die Funktion // | ||
- | >>>< | + | >< |
int main(void) | int main(void) | ||
{ | { | ||
Zeile 81: | Zeile 85: | ||
Zum Schluss folgen die Interrupt Service Routinen und Ereignishandler. Da diese nicht explizit zum Beispiel aus der //main// aufgerufen werden sondern in der Regel an für unser Anwendungsprogramm quasi externe Hardwareereignisse gebunden sind und automatisch auslösen können, stehen sie hinter dem Hauptprogramm als Letztes . | Zum Schluss folgen die Interrupt Service Routinen und Ereignishandler. Da diese nicht explizit zum Beispiel aus der //main// aufgerufen werden sondern in der Regel an für unser Anwendungsprogramm quasi externe Hardwareereignisse gebunden sind und automatisch auslösen können, stehen sie hinter dem Hauptprogramm als Letztes . | ||
- | >>>< | + | >< |
extern " | extern " | ||
{ | { | ||
Zeile 92: | Zeile 96: | ||
> | > | ||
- | >> | + | > |
- | Während der Übertragung | + | Während der Übertragung |
- | >>>> | + | > |
====== Videozusammenfassung ====== | ====== Videozusammenfassung ====== | ||
Zeile 102: | Zeile 106: | ||
Und hier diesen Abschnitt als Videozusammenfassung zum nochmal drüberschauen. | Und hier diesen Abschnitt als Videozusammenfassung zum nochmal drüberschauen. | ||
- | >>>< | + | >< |
====== Nächstes Thema ====== | ====== Nächstes Thema ====== | ||
* [[Hallo C|Hallo ARM C]] | * [[Hallo C|Hallo ARM C]] | ||