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 [2019/12/15 17:38] huwilight_grundstruktur [2023/09/19 12:28] (aktuell) huwi
Zeile 1: Zeile 1:
 ====== Grundstruktur in C für das mySTM32 Board Light ====== ====== Grundstruktur in C für das mySTM32 Board Light ======
  
-><code>+Einfache embedded C Programme bestehen oft nur aus einer *.c Datei mit der folgenden typischen Struktur: 
 +  - Programmkopfdokumentation, mit Titel, Funktion, Hardwareinformationen, Autor, Versionshistorie 
 +  - Deklarationen meist mit Anweisungen zum Einfügen von Deklarationsdatein #include 
 +  - einem Bereich in dem bei Bedarf globale Variablen oder Konstanten angelegt werden können 
 +  - die eigenen Funktionen  
 +  - das Hauptprogramm 
 +  - Interrupt-Service-Routinen  
 + 
 + 
 +><code cpp>
 //--------------------------------------------------------------------------- //---------------------------------------------------------------------------
 // Title     : Basic main code pattern of a simple ARM C application in SiSy // Title     : Basic main code pattern of a simple ARM C application in SiSy
Zeile 19: Zeile 28:
 #include "hardware.h" #include "hardware.h"
  
 +// --------------------------------------------------------------------
 +// hier bei Bedarf globale Variablen definieren
 +
 +// --------------------------------------------------------------------
 +// ab hier eigene Funktionen die benötigt werden 
 void initApplication() void initApplication()
 { {
Zeile 27: Zeile 41:
 } }
  
 +// --------------------------------------------------------------------
 +// nach den Funktionen das eigentliche Hauptprogramm
 int main(void) int main(void)
 { {
Zeile 32: Zeile 48:
     initApplication();     initApplication();
     do{     do{
-  +   // main loop 
-  // main loop +         // hier kann die Anwendungslogik programmiert werden 
-                +         // Eingabe -> Verarbeitung -> Ausgabe 
-    } while (true);+      } while (true);
     return 0;     return 0;
 } }
  
 +// --------------------------------------------------------------------
 +// Interrupt-Behandlungs-Routinen können hier nach dem Hauptprogramm  
 +// oder auch bei den Funktionen programmiert werden
 extern "C" void SysTick_Handler(void) extern "C" void SysTick_Handler(void)
 { {
Zeile 47: Zeile 66:
  
 {{:stm32light:stm32bl0.png?direct&400|}} {{:stm32light:stm32bl0.png?direct&400|}}
 +
 +====== Test ======
 +An dieser Stelle wird im Tutorial jeweils das Testen der Anwendung beschrieben. Nutzen sie die Schaltflächen Kompilieren, Linken und Brennen. Bis jetzt macht unser Mikrocontroller noch gar nichts. Wir haben ja ein leeres Programm auf den Controller übertragen.
 +
 +
 +{{:brennen.jpg?direct&700|}} {{:stm32light:stm32bl0.png?direct&400|}}
 +
 +
 +====== Videozusammenfassung ======
 +Hier dieser Abschnitt als kleine Videozusammenfassung zum nochmal Drüberschauen.
 +
 +><html><<iframe width="640" height="480" src="https://www.youtube.com/embed/1aqgfjNNFcI" frameborder="0" allowfullscreen></iframe></html>
 +
 +====== Hinweise ======
 +{{tag>ST-HAL ST-LL}}
 +In den folgenden Abschnitten können Lösungen in drei Versionen angeboten werden: 
 +  - Realisierung mit den klassischen Standard Peripherie Treibern von ST
 +  - Realisierung mit der STM32 HAL ("Hardware Abstraction Layer") Bibliothek von ST
 +  - Realisierung mit der STM32 LL ("Low Level") Bibliothek von ST
 +
 +Beachten Sie jeweils die Compilereinstellungen und die verwendeten Includes.
  
 ====== Weiter mit ====== ====== Weiter mit ======