Inhaltsverzeichnis:

FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit einrichten - Gunook
FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit einrichten - Gunook

Video: FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit einrichten - Gunook

Video: FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit einrichten - Gunook
Video: 0x03 Ethernet Wake On Lan Tutorial mit dem STM32F4 Discovery, CubeMX und der CooCox IDE 2024, Juli
Anonim
Einrichten von FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit
Einrichten von FreeRTOS von Grund auf auf dem STM32F407 Discovery Kit

Die Wahl von FreeRTOS als Echtzeitbetriebssystem für Ihr eingebettetes Projekt ist eine gute Wahl. Das FreeRTOS ist wirklich kostenlos und bietet viele einfache und effektive RTOS-Funktionen. Aber das Einrichten von freeRTOS von Grund auf kann schwierig sein oder ich kann ein bisschen verwirrend sagen, da es einige Anpassungen erfordert, wie das Hinzufügen von Mikrocontroller-spezifischen Dateien, das Festlegen von Header-Dateipfaden usw. In diesem Instructable werde ich Sie bei der Einrichtung von FreeRTOS anleiten Ihr STM32F407 Discovery Kit im Detail mit Kiel uVision IDE.

Lieferungen

  • Weitere Informationen zu FreeRTOS finden Sie unter freertos.org
  • Anleitung zum Herunterladen von FreeRTOS Anleitungen zum Herunterladen des RTOS-Quellcodes
  • Vollständige Details zum STM32F407 Discovery Kit Erste Schritte mit dem STM32F407 Discovery KIt
  • Github Repository FreeRTOS auf STM32F407 Discovery Kit

Schritt 1: Öffnen Sie die Keil UVision IDE

Öffnen Sie die Keil UVision-IDE
Öffnen Sie die Keil UVision-IDE

Öffnen Sie die Keil uVision-IDE. Klicken Sie auf ein Projekt und wählen Sie Neues uVision-Projekt… Wählen Sie dann Ihr Arbeitsverzeichnis und geben Sie Ihren bevorzugten Projektnamen ein.

Schritt 2: Wählen Sie das Gerät aus

Wählen Sie das Gerät aus
Wählen Sie das Gerät aus

Nachdem Sie dem Projekt einen Namen gegeben haben, müssen Sie im nächsten Schritt das Gerät hinzufügen. Hier fügen wir den STM32F407VG Microncontroller von STMicroelectronics hinzu. Wählen Sie STM32F407VG aus, und klicken Sie dann auf OK.

Schritt 3: Laufzeitumgebung verwalten

Laufzeitumgebung verwalten
Laufzeitumgebung verwalten

Der nächste Schritt besteht darin, die Bibliotheks-/Treiberkomponente auf der Registerkarte Laufzeitumgebung verwalten auszuwählen. Wählen Sie hier alle Komponenten wie im obigen Bild gezeigt aus. Nachdem Sie alle entsprechenden Felder angekreuzt haben, klicken Sie auf Auflösen und dann auf OK.

Schritt 4: Kopieren Sie FreeRTOS in Ihren Projektordner

Kopieren Sie FreeRTOS in Ihren Projektordner
Kopieren Sie FreeRTOS in Ihren Projektordner

Jetzt müssen Sie den gesamten FreeRTOS-Ordner in Ihren Projektordner kopieren.

Schritt 5: FreeRTOS-Dateien zum Projekt hinzufügen

FreeRTOS-Dateien zum Projekt hinzufügen
FreeRTOS-Dateien zum Projekt hinzufügen

Nachdem Sie den FreeRTOS-Ordner in Ihren Projektordner kopiert haben, müssen Sie alle erforderlichen FreeRTOS-Dateien zu Ihrem Projekt hinzufügen.

  1. Klicken Sie in Keil mit der rechten Maustaste auf Select Target1, und wählen Sie dann Neue Gruppe hinzufügen aus. Benennen Sie diese Gruppe in FreeRTOS um.
  2. Klicken Sie nun auf die FreeRTOS-Gruppe, klicken Sie mit der rechten Maustaste und wählen Sie Vorhandene Dateien zur Gruppe hinzufügen "FreeRTOS…"
  3. Fügen Sie alle FreeRTOS-Dateien wie im obigen Bild gezeigt hinzu.

Der Pfad zum Auffinden dieser Dateien im FreeRTOS-Ordner lautet:

  • Dateien: croutine, event_groups, list, queue, stream_buffer, Tasks und Timer. Pfad: (….\FreeRTOSv10.2.1\FreeRTOS\Source)
  • Dateien: heap_4 (Es gibt 4 Speicherverwaltungsdateien, die jeden hinzufügen). Pfad: (….\FreeRTOSv10.2.1\FreeRTOS\Source\portable\MemMang)
  • Dateien: port.c (Dies ist eine MCU-spezifische Datei). Pfad: (…\FreeRTOSv10.2.1\FreeRTOS\Source\portable\RVDS\ARM_CM4F)

Hinweis: Die FreeRTOS-Version kann sich ändern. Verwenden Sie einfach die neueste verfügbare Version.

Schritt 6: Konfigurieren Sie den Pfad der FreeRTOS-Headerdateien

Konfigurieren Sie den Pfad der FreeRTOS-Headerdateien
Konfigurieren Sie den Pfad der FreeRTOS-Headerdateien

Nachdem Sie die FreeRTOS-Quelldateien hinzugefügt haben, müssen Sie dem Compiler mitteilen, wo sich die entsprechenden Header-Dateien befinden. Daher müssen wir die Compiler-Option konfigurieren.

Rechtsklick auf Target1 Option für Target "Target1.." C/C++ Include-Pfad. Stellen Sie sicher, dass Sie diese Pfade angeben:

  1. Ordner in FreeRTOS einschließen (…\FreeRTOSv10.2.1\FreeRTOS\Source\include)
  2. RVDS-Verzeichnis (…\FreeRTOSv10.2.1\FreeRTOS\Source\portable\RVDS\ARM_CM4F)

Hinweis: Wenn Sie Header-Dateien haben, stellen Sie sicher, dass Sie den Pfad dieser Header-Dateien wie oben beschrieben angeben.

Schritt 7: Datei "FreeRTOSConfig.h" zum Projekt hinzufügen

Hinzufügen
Hinzufügen

Das FreeRTOS hat eine wichtige Header-Datei namens FreeRTOSConfig.h. Diese Datei enthält die anwendungsspezifische (in unserem Fall spezifisch für Cortex M4F MCU) Anpassung. Der Einfachheit halber habe ich unsere MCU-spezifische FreeRTOSConfig.h-Datei in das RVDS-Verzeichnis kopiert. Und auch in Schritt 6 haben wir bereits den RVDS-Pfad hinzugefügt. Wenn Sie sie selbst hinzufügen, müssen Sie diese Datei zu Ihrem Projekt hinzufügen und auch den Pfad dieser Datei angeben, wie in Schritt 6 beschrieben.

Falls Sie die Datei FreeRTOSConfig.h selbst in Ihrem bevorzugten Verzeichnis hinzufügen möchten, habe ich diese Datei unten eingefügt.

Für weitere Informationen Klicken Sie hier FreeRTOSConfig.h

Schritt 8: Fügen Sie die Datei "main.c" mit der Basisvorlage hinzu

Ergänzen Sie die
Ergänzen Sie die
  • Erstellen Sie nun eine neue Benutzergruppe (ich habe sie in "Benutzeranwendung" umbenannt).
  • Fügen Sie dieser Gruppe eine neue C-Datei hinzu (ich habe eine Datei namens main.c hinzugefügt).
  • Dies ist die Datei, in der die Funktion main() existiert. Ich habe alle minimal erforderlichen Funktionen und Header in diese Datei aufgenommen, damit das Projekt erfolgreich kompiliert wird.

Sie finden die main.c-Datei mit der grundlegenden Vorlage unten.

Schritt 9: Verbinden Sie Ihr STM32F407 Discovery Kit mit Ihrem PC/Laptop

Verbinden Sie Ihr STM32F407 Discovery Kit mit Ihrem PC/Laptop
Verbinden Sie Ihr STM32F407 Discovery Kit mit Ihrem PC/Laptop

Schritt 10: Wählen Sie den ST-Link-Debugger in der Compiler-Konfiguration

Wählen Sie den ST-Link-Debugger in der Compiler-Konfiguration
Wählen Sie den ST-Link-Debugger in der Compiler-Konfiguration

Klicken Sie mit der rechten Maustaste auf Target1, dann klicken Sie auf Option für Target "Target1..", navigieren Sie dann zur Registerkarte Debug und wählen Sie ST-Link-Debugger wie im obigen Bild gezeigt

Schritt 11: ST-Link-Debugger konfigurieren

ST-Link-Debugger konfigurieren
ST-Link-Debugger konfigurieren

Nachdem Sie in Schritt 10 den ST-Link Debugger ausgewählt haben, klicken Sie auf Einstellungen, wählen Sie Trace und überprüfen Sie alle Felder wie im obigen Bild gezeigt.

Schritt 12: Code erstellen und hochladen

Code erstellen und hochladen
Code erstellen und hochladen

Erstellen Sie nach Abschluss aller Schritte das Projekt und stellen Sie sicher, dass der Code fehlerfrei ist. Laden Sie den Code nach erfolgreicher Kompilierung in Ihr Discovery Kit hoch.

Schritt 13: Gehen Sie zum Debug-Fenster und öffnen Sie den seriellen Monitor

Gehe zum Debug-Fenster und öffne den seriellen Monitor
Gehe zum Debug-Fenster und öffne den seriellen Monitor

Gehen Sie nach dem Hochladen zu Debug windowviewSerial WindowsDebug(printf) Viewer, wie im obigen Bild gezeigt.

Schritt 14: Führen Sie den Code aus, um die Ausgabe im Debug Printf-Fenster anzuzeigen

Führen Sie den Code aus, um die Ausgabe im Debug Printf-Fenster anzuzeigen
Führen Sie den Code aus, um die Ausgabe im Debug Printf-Fenster anzuzeigen

Der letzte Schritt besteht darin, den Code wie im Bild gezeigt auszuführen, um die Ausgabe im printf-Fenster anzuzeigen. Hier in main.c habe ich 2 einfache Aufgaben namens task1 und task2 implementiert. Beide Aufgaben haben die gleiche Priorität und geben nur den Namen der Aufgabe aus. Aufgrund der gleichen Prioritäten können Sie beide laufen sehen und den Namen drucken.

Empfohlen: