Inhaltsverzeichnis:

Beginnen Sie mit der Entwicklung von STM32 unter Linux - Gunook
Beginnen Sie mit der Entwicklung von STM32 unter Linux - Gunook

Video: Beginnen Sie mit der Entwicklung von STM32 unter Linux - Gunook

Video: Beginnen Sie mit der Entwicklung von STM32 unter Linux - Gunook
Video: ИСПЫТАНИЯ КОНТРОЛЛЕРА ЭЛЕКТРОДВИГАТЕЛЯ ДЛЯ КОНКУРСА 2024, Juli
Anonim
Image
Image
Laden Sie alles herunter, was Sie brauchen
Laden Sie alles herunter, was Sie brauchen

In diesem Instructable werde ich Ihnen zeigen, wie einfach es ist, STM32-Programme unter Linux zu entwickeln. Ich habe vor 2 Jahren angefangen, Linux als meine Hauptmaschine zu verwenden und wurde nicht im Stich gelassen. Alles funktioniert schneller und besser als Windows. Natürlich ist es von Zeit zu Zeit weniger bequem, aber es zwingt Sie dazu, die Dinge tiefer zu lernen, damit Sie es verwenden können.

Wie auch immer, in diesem anweisbaren Teil einer Serie, die ich hier beginne UND auf YouTube geht es darum, wie man es startet. Bitte sehen Sie sich auch mein Youtube-Video an, in dem ich alles in einem Segment erkläre und Sie mit mir zusammen codieren können.

In dieser Serie zeige ich Ihnen, wie Sie nur mit einem Texteditor wie Notepad, SublimeText oder Atom entwickeln können, sodass Sie keine proprietäre Software oder IDE benötigen. Dies ist so knochentrocken wie es nur geht und es ist überraschend einfach.

Schritt 1: Laden Sie alles herunter, was Sie brauchen

Sie müssen drei Teile herunterladen, damit alles funktioniert:

  • GCC-Compiler für ARM
  • STM32-Firmware-Dateien
  • St-Link-Dienstprogramm
  • Beispielprojekt

Compiler ist die Hauptsoftware, die unseren C-Code mit allen anderen Bibliotheksdateien in Maschinensprache kompiliert, die unser stm32-Controller verstehen kann. Laden Sie die neueste vorkompilierte Version dieses Compilers herunter.

Der Ordner mit der STM32-Firmware enthält alle Start- und Kerndateien, die für den Betrieb des Hauptprozessors erforderlich sind. Wir werden die Standard Peripheral Library verwenden, die von HAL übertroffen wurde. Ich mag StPeriphLibrary mehr, da Unternehmen, die an diesen Prozessoren arbeiten, sie verwenden, weil sie robust und älter ist und unterstützt wird. Es ist auch robuster. Es verringert nicht die Arbeit, die Sie tun müssen, um ein Peripheriegerät zu initialisieren oder eine LED einzuschalten, aber es zwingt Sie dazu, zu lernen, wie diese Prozessoren funktionieren. Damit haben Sie mehr Wissen über das Innenleben und können jede Aufgabe sinnvoll programmieren.

Die letzte herunterzuladende Software ist das Dienstprogramm st-link. Es wird auf github verwaltet und wird verwendet, um kompilierte Binärdateien mit einem Stlink-IC auf der Platine an den Prozessor zu übertragen, der als SWD / JTAG-Programmierer/Debugger dient.

Außerdem habe ich einen Beispielprojektordner bereitgestellt, über den ich später spreche und den Sie herunterladen können. Es befindet sich im ersten VIDEO1-Ordner.

Schritt 2: Software installieren

Software installieren
Software installieren
Software installieren
Software installieren

Nachdem Sie alle Dateien heruntergeladen haben, schlage ich vor, dass Sie sie in einen gemeinsamen Ordner legen, da sie alle zusammen für denselben Zweck verwendet werden. Ich habe alle Ordner in einem Ordner namens "Embedded" in meinem HOME-Verzeichnis abgelegt.

Wir beginnen mit der einfachsten, den STM32-Bibliotheken. Der heruntergeladene Ordner kann einfach dort belassen werden. Stellen Sie sicher, dass Sie herumstöbern, um zu sehen, wo die entsprechenden Dateien gespeichert sind. Daher können Sie das Haupt-MakeFile ändern und bearbeiten, damit es mit Ihrer Plattform funktioniert.

Zweite einfachste ist der Compiler. Sie müssen auch nichts daran tun, aber wir machen den Compiler zu einer global zugänglichen Funktion, damit Sie den Compiler unabhängig vom Pfad aus jedem Ordner aufrufen können. Alle Schritte können im Terminal oder in der GUI durchgeführt werden, aber ich verwende gerne Terminal, da es mit zunehmender Erfahrung schneller und einfacher wird, und ich ermutige Sie, Terminal mehr zu verwenden, wenn Sie Angst davor haben. Hier sind die Schritte:

  1. Gehen Sie in Ihren Home-Ordner "/home/IHRBENUTZERNAME/" oder "~/" oder geben Sie cd in das Terminal ein
  2. Öffnen Sie die Datei ".bashrc", indem Sie Folgendes eingeben: nano.bashrc
  3. scrollen Sie bis zum Ende der Datei und fügen Sie diese Zeile hinzu: export PATH=$PATH:~/Embedded/gcc-arm-none-eabi-8-2018-q4/bin
  4. Beenden durch Speichern: STRG+X, klicken Sie auf Y, ENTER
  5. Befehl ausführen: source.bashrc zum Aktualisieren der Terminalquellen
  6. Überprüfen Sie, ob alles funktioniert, indem Sie Folgendes eingeben: arm-none-eabi-gcc --version, es sollte die neueste Version des Compilers anzeigen

Um st-link zu installieren, extrahieren Sie das heruntergeladene Archiv in den Embedded-Ordner. Folgen Sie dann diesen Schritten:

  1. Ausführen: machen
  2. Gehen Sie in den Ordner "build/Release": cd build/Release
  3. Geben Sie ls ein und Sie sehen zwei ausführbare Dateien namens "st-flash" und "st-util".
  4. Verschieben Sie diese beiden in das übergeordnete Verzeichnis stlink: mv st-flash st-util../../
  5. Sie können, wenn Sie diese beiden Funktionen verwenden möchten, die Datei ".bashrc" erneut global bearbeiten, indem Sie Folgendes hinzufügen:

    export PATH=$PATH:~/Embedded/stlink/

Das ist alles! Sie haben alles, was Sie brauchen. Holen Sie sich jetzt Ihren Lieblings-Texteditor. Verwenden Sie nur einen Standard, einen intelligenteren wie SublimeText oder Atom, den verwende ich.

Schritt 3: Einrichten eines Beispielprojekts

Einrichten eines Beispielprojekts
Einrichten eines Beispielprojekts

Wir erstellen nun ein Beispielprojekt, mit dem Sie jedes Projekt starten können. Es ist wie eine Vorlage, bei der alle Haupteinstellungen bereits behandelt wurden.

Sie können es auf meinem MEGA herunterladen, der Link ist im ersten Schritt dieses anweisbaren und unter jedem Youtube-Video von mir. Darin befindet sich die leere main.c-Datei zusammen mit einigen Startdateien für diesen Prozessor und das Makefile. Makefile ist dasjenige, das dem C-Compiler mitteilt, wo der Arm-Compiler zu finden ist, wie er kompiliert werden soll und wo sich alle Bibliotheken befinden. Um diese entsprechenden Dateien für Ihr Projekt zu erhalten, können Sie in den STM32-Bibliotheksordner gehen und nach einem "Projekt"- oder "Beispielordner" suchen. Darin sehen und kopieren Sie diese Dateien: main.c, Makefile und XXX_conf.h, system_XXX.c. Außerdem benötigen Sie die Linker-Datei stm32_flash.ld, die sich im Ordner befindet:

"/FLASH_Program/TrueSTUDIO/FLASH_Program/", das sich im Beispielordner befindet oder suchen Sie einfach nach der Datei.

Makefile kann online gefunden oder aus meinem Ordner kopiert werden, aber Sie müssen ein paar Dinge ändern. Lassen Sie uns einen Blick auf meine Make-Datei werfen und was Sie ändern könnten.

# Pfad zum Stlink-Ordner zum Hochladen von Code auf das Board

STLINK=~/Embedded/stlink # Geben Sie hier Ihre Quelldateien ein (*.c) SRCS=main.c system_stm32f4xx.c # Quelldateien der Bibliotheken #SRCS += stm32f4xx_rcc.c #SRCS += stm32f4xx_gpio.c # Binärdateien werden mit erzeugt dieser Name (.elf,.bin,.hex) PROJ_NAME=test # Legen Sie Ihr STM32F4-Bibliothekscodeverzeichnis hier ab, ändern Sie IHRBENUTZERNAME in Ihren STM_COMMON=/home/matej/Embedded/STM32F4-Discovery_FW_V1.1.0 # Compilereinstellungen. Bearbeiten Sie CFLAGS nur, um andere Header-Dateien einzuschließen. CC=arm-none-eabi-gcc OBJCOPY=arm-none-eabi-objcopy # Compiler-Flags CFLAGS = -g -O2 -Wall -Tstm32_flash.ld CFLAGS += -DUSE_STDPERIPH_DRIVER CFLAGS += -mlittle-endian -mthumb -mcpu= cortex-m4 -mthumb-interwork CFLAGS += -mfloat-abi=hard -mfpu=fpv4-sp-d16 CFLAGS += -I. # Include-Dateien aus STM-Bibliotheken CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/Include CFLAGS += -I$(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Include CFLAGS += -I$(STM_COMMON)/ Libraries/STM32F4xx_StdPeriph_Driver/inc CFLAGS += -I$(STM_COMMON)/Utilities/STM32F4-Discovery # Startdatei hinzufügen, um SRCS zu erstellen += $(STM_COMMON)/Libraries/CMSIS/ST/STM32F4xx/Source/Templates//TruexxSTUDIO32f4 s OBJS = $(SRCS:.c=.o) vpath %.c $(STM_COMMON)/Libraries/STM32F4xx_StdPeriph_Driver/src \. PHONY: proj alle: proj proj: $(PROJ_NAME).elf $(PROJ_NAME).elf: $(SRCS) $(CC) $(CFLAGS) $^ -o $@ $(OBJCOPY) -O ihex $(PROJ_NAME).elf $(PROJ_NAME).hex $(OBJCOPY) -O binär $(PROJ_NAME).elf $(PROJ_NAME).bin clean: rm -f *.o $(PROJ_NAME).elf $(PROJ_NAME).hex $(PROJ_NAME).bin # Flashen des STM32F4 brennen: proj $(STLINK)/st-flash write $(PROJ_NAME).bin 0x80000000

  • Sie können die erste Zeile bearbeiten, um den Pfad zu Ihrem Stlink-Dienstprogrammordner zu ändern
  • Sie können die Zeile zum Ziel Ihres Ordners mit Bibliotheken und IHRBENUTZERNAME. ändern

    STM_COMMON=/home/IHRBENUTZERNAME/Embedded/STM32F4-Discovery_FW_V1.1.0

  • Sehen Sie sich auch den Abschnitt an, in dem alle Bibliotheken verlinkt sind. Dies kann sich je nach verwendeter Plattform ändern. Überprüfen Sie daher den Dateibaum auf Änderungen. Alles andere, das Pfade zu bestimmten Dateien enthält, wie die nächste Zeile mit der Startdatei, kann geändert werden.

Nachdem Sie all diese Dinge im Makefile bearbeitet haben, können Sie überprüfen, ob es funktioniert, indem Sie ein Terminal in Ihrem Verzeichnis öffnen und Folgendes eingeben: make. Wenn es alles ohne Probleme kompiliert, dann sind Sie fertig. Wenn nicht, sehen Sie sich die Compilerfehler an und bearbeiten Sie das Makefile.

Wenn ich Atom verwende, füge ich außerdem zwei Codeteile nebeneinander. Normalerweise main.c und Makefile auf der linken Seite, da Sie Makefile nur einmal und Bibliotheken auf der rechten Seite bearbeiten müssen. Sie können auf dem Bild sehen, dass ich den Ordner mit den.c- und.h-Dateien für jede Bibliothek geöffnet habe. All das seht ihr in den Videos.

Schritt 4: Fertig

Fertig!
Fertig!

Nachdem Sie Ihr Makefile konfiguriert haben und der Compiler funktioniert, können Sie diesen Ordner für alle Projekte als Vorlage verwenden, also stellen Sie sicher, dass Sie eine Kopie dieses Ordners speichern.

Sie können auch die Programme st-flash und st-info testen, indem Sie Ihr Entwicklungsboard anschließen und in das Terminal eingeben:

st-info --probe

Sie können die Plattform sehen, die die Stlink-Software erkennt, und die IC-Familie zusammen mit Cache und anderen Dingen. Sie können eingeben:

st-info

um alle verfügbaren Parameter anzuzeigen.

Jetzt können Sie mit der Programmierung beginnen. Im nächsten anweisbaren und Video zeige ich Ihnen die Grundlagen von GPIO und Uhren. Diese beiden sind die Grundlagen für alles andere, da fast alles, mit dem das Board interagiert, über GPIO läuft und alles im Takt arbeitet und Sie das Muster für die Programmierung dieser Prozessoren sehen.

Bis dahin vielen Dank, dass Sie sich mein instructable und mein Youtube-Video angesehen haben, wenn Sie dies noch nicht getan haben.

Empfohlen: