STM32CubeProgrammer-Tutorial

Inhaltsverzeichnis

STM32CubeProgrammer Tutorial

Einführung in STM32CubeProgrammer

STM32CubeProgrammer ist ein sehr leistungsfähiges STM32-Programmierwerkzeug, das von STMicroelectronics auf den Markt gebracht wurde. Es integriert in hohem Maße die Funktionen der folgenden Werkzeuge:

  • STVP oder STLinkUtility (JTAG/SWD-Programmierwerkzeug)
  • STMFlashLoaderDemo (UART-Programmierwerkzeug)
  • DfuSeDemo (USB-Brennwerkzeug)
  • ST-LinkUpgrade (Firmware-Upgrade-Tool für Stlink-Programmierer)

Benutzeroberfläche von STM32CubeProgrammer

STM32CubeProgrammer bietet sowohl eine grafische Benutzeroberfläche als auch eine Befehlszeilenschnittstelle. Darüber hinaus stellt es eine C++-API bereit, sodass Benutzer die Funktionen von STM32CubeProgrammer in die von ihnen entwickelten PC-Anwendungen integrieren können.

Overview of STM32CubeProgrammer
Overview of STM32CubeProgrammer

Wie in der Abbildung oben gezeigt, können Benutzer im Konfigurationsbereich auf der rechten Seite wählen, ob sie über die STLink-Debugging-Schnittstelle oder über Kommunikationsschnittstellen wie USB und UART eine Verbindung zum STM32-Mikrocontroller herstellen möchten. Nach dem Herstellen der Verbindung zum STM32-Mikrocontroller werden im Bereich „Geräteinformationen“ das aktuelle MCU-Modell, die Version und die Flash-Größe angezeigt. Wenn ein offizielles ST-Entwicklungsboard angeschlossen ist, wird auch der Name des Entwicklungsboards angezeigt.

Funktionen von STM32CubeProgrammer

STM32CubeProgrammer unterstützt das Löschen und Lesen/Schreiben des On-Chip-Speichers von STM32-MCUs über die SWD/JTAG-Debugging-Schnittstelle von STLink oder über Kommunikationsschnittstellen wie UART, USB, I2C, SPI und CAN unter Verwendung des werkseitig programmierten System-Bootloaders, der im Chip gespeichert ist.

Hier sind die wichtigsten Funktionen von STM32CubeProgrammer:

Löschen und Programmieren

STM32CubeProgrammer unterstützt das sektorbasierte Löschen und das vollständige Löschen des Flash-Speichers. Es kann verschiedene Dateiformate für die Programmierung importieren, darunter Binärdateien (.bin), ELF-Dateien (.elf, .axf, .out), Hex-Dateien (.hex) und Motorola S-Record-Dateien (.srec).

Erasing and Programming of STM32CubeProgrammer
Erasing and Programming of STM32CubeProgrammer

Löschvorgang

Nachdem Sie über STLink eine Verbindung mit der Ziel-MCU hergestellt haben, können Sie auf der Seite „Löschen und Programmieren“ Flash-Sektoren einzeln löschen oder durch Auswahl der Schaltfläche „Vollständiges Löschen des Chips“ einen vollständigen Chip-Löschvorgang durchführen.

Programmierung Betrieb

Auf der Seite „Löschen & Programmieren“ können Sie auf die Schaltfläche „Durchsuchen“ klicken, um eine ausführbare Datei zu importieren, und dann auf „Programmierung starten“ klicken, um den Programmiervorgang zu starten.

Alternativ können Sie auf der Seite „Speicher- und Dateibearbeitung“ die ausführbare Datei öffnen, die Sie programmieren möchten, und dann auf „Herunterladen“ klicken, um die Programmierung zu starten.

Auf der Seite „Memory & File Edition“ unter „Device Memory“ können Sie auch die Werte des MCU-Speichers in einem bestimmten Adressbereich lesen und den gelesenen Inhalt über das Menü „Save As“ als Binär- (.bin), Hex- (.hex) oder S-Record- (.srec) Datei speichern.

Neben der Programmierung der gesamten ausführbaren Datei können Sie den Wert an einer bestimmten Adresse auf der Seite „Memory & File Edition“ unter „Device Memory“ direkt ändern. Nach Drücken der Eingabetaste liest, ändert, löscht und schreibt STM32CubeProg automatisch zurück. Diese Methode kann zum Programmieren von einmalig programmierbaren (OTP) Bytes verwendet werden.

Option Byte Lesen/Schreiben

Auf der Seite „OB (Option Byte)“ können Sie die aktuellen Einstellungen der Optionsbytes für die angeschlossene MCU anzeigen. Hier können Sie auch die Werte der Optionsbytes ändern. Ausführliche Erläuterungen zu den Optionsbytes finden Sie im Referenzhandbuch für die jeweilige MCU.

Option bytes Reading and Writing of STM32CubeProgrammer
Option bytes Reading and Writing of STM32CubeProgrammer

„Zwei-in-Eins“-Programmierung

Mit dem Programmiermodus „Two-in-One“ auf der Seite „Erasing & Programming“ können Sie sowohl den FLASH-Speicher als auch die Optionsbytes in einem einzigen Vorgang programmieren. Die Konfiguration der Optionsbytes erfolgt über die „STM32CubeProgrammer-Befehlszeile“ mit dem Befehl „-ob“. Um beispielsweise nach der Programmierung des FLASH-Speichers den Leseschutz auf Stufe 1 zu setzen, gehen Sie wie folgt vor:

  • Legen Sie den Pfad zur herunterzuladenden ausführbaren Datei fest.
  • Aktivieren Sie unter „Automatic Mode“ die Optionen „Full chip erase“ und „Download file“.
  • Geben Sie im Eingabefeld „Option bytes commands“ (Befehle für Optionsbytes) „-ob rdp=0xBB“ ein.
  • Klicken Sie auf „Start automatic mode“ (Automatischen Modus starten). STM32CubeProgrammer führt die angegebenen Vorgänge nacheinander aus und zeigt den Fortschritt im Protokollfenster an.
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer
2 in 1 Programming-Automatic Mode of STM32CubeProgrammer

Einzelheiten zum Befehlsformat „-ob“ finden Sie in Abschnitt 3.2.15 von UM2237 (STM32CubeProgrammer Software Tool User Manual). Die OptByte-Felddefinitionen innerhalb des Befehls „-ob“ werden in UM2237 nicht erläutert, aber Sie finden sie, indem Sie die Registerkarte „Option bytes“ in der grafischen Benutzeroberfläche von STM32CubeProgrammer überprüfen, da die Definitionen im Befehl „-ob“ mit denen hier übereinstimmen. Alternativ können Sie den Befehl „-ob displ“ verwenden, um die aktuelle Konfiguration aller Optionsbytes anzuzeigen, sodass Sie die Definitionen der einzelnen OptByte-Felder nachvollziehen können.

Externer Speicher lesen/schreiben

Wenn Sie über Schnittstellen wie SPI, FMC oder QSPI auf einen externen Speicher zugreifen möchten, der an STM32 angeschlossen ist, benötigen Sie einen externen Loader. CubeProgrammer bietet standardmäßige externe Loader, die den in STM32-Entwicklungsboards integrierten externen Speichern entsprechen. Wenn Sie ein anderes Speichermodell verwenden, können Sie Ihre eigenen externen Loader-Dateien (*.stldr) erstellen. Ausführliche Anweisungen finden Sie in Abschnitt 2.3.3 von UM2237.

External Memory Programming of STM32CubeProgrammer
External Memory Programming of STM32CubeProgrammer

Bevor Sie Operationen am externen Speicher durchführen, müssen Sie auf der Seite „Externer Loader“ den entsprechenden externen Loader auswählen. Dieser externe Loader wird bei den nachfolgenden Lösch- und Programmiervorgängen am externen Speicher auf den Seiten „Löschen & Programmieren“ und „Speicher & Datei bearbeiten“ verwendet.

Bootloader

STM32-MCUs verfügen standardmäßig über einen internen Systemspeicher, der einen Bootloader enthält, der Updates des On-Chip-Flash-Speichers über Schnittstellen wie USART, USB, I2C, SPI und CAN ermöglicht. Die unterstützte Bootloader-Schnittstelle variiert je nach STM32-MCU-Modell. Spezifische Informationen finden Sie in der Anwendungsbeschreibung AN2606. STLink v2 und STLink v3 bieten Brückenschnittstellen von USART-, USB-, I2C-, SPI- und CAN-Kommunikationsprotokollen zu USB, sodass STM32-MCUs an einen PC angeschlossen werden können.

Bootloader of STM32CubeProgrammer
Bootloader of STM32CubeProgrammer

STM32CubeProgrammer bietet eine PC-seitige Schnittstelle zum Löschen und Programmieren des On-Chip-Flash-Speichers über den Bootloader. STLink v2 unterstützt nur USART- und USB-Kommunikationsschnittstellen, während STLink v3 zusätzlich I2C-, SPI- und CAN-Kommunikationsschnittstellen unterstützt. ST bot zuvor zwei separate PC-seitige Softwaretools an: „STM32 Flash Loader Demonstrator” und „Dfuse Demo”, die jeweils USART-Bootloader- und USB-DFU-Funktionalität unterstützten. Jetzt können Sie STM32CubeProgrammer, ein einziges Softwaretool, verwenden, um alle diese Kommunikationsschnittstellen zu unterstützen.

SWO-Informations-Eingabefenster

Während der Entwicklung ist es oft notwendig, Debugging-Informationen auszugeben. Eine gängige Methode ist die Umleitung der printf-Ausgabe auf einen seriellen Port, wodurch ein serieller Port belegt wird. Eine andere Methode besteht darin, die printf-Ausgabe über die SWD-Debugging-Schnittstelle an den SWO-Pin (Serial Wire Output) umzuleiten, sodass Debugging-Informationen über SWO gesendet werden können. Das SWV-Fenster (Serial Wire Viewer) von STM32CubeProgrammer kann über SWO gesendete Debugging-Informationen anzeigen und alle empfangenen Informationen in einer angegebenen „.log“-Datei speichern.

Serial Wire Viewer of STM32CubeProgrammer
Serial Wire Viewer of STM32CubeProgrammer

Befehlszeilenschnittstelle

STM32CubeProgrammer bietet eine Befehlszeilenschnittstelle, über die Sie die meisten Funktionen durch Ausführen von Befehlen ausführen können. Die ausführbare Datei „STM32_Programmer_CLI.exe“ befindet sich im Ordner „bin“ des STM32CubeProgrammer-Installationsverzeichnisses. Durch Ausführen von „STM32_Programmer_CLI.exe“ wird eine Liste der unterstützten Befehle und ihrer Parameter angezeigt.

Command Writing of STM32CubeProgrammer
Command Writing of STM32CubeProgrammer

Die Befehlszeilenschnittstelle bietet auch einige Funktionen, die in der grafischen Benutzeroberfläche nicht verfügbar sind, wie z. B. das Erstellen vertrauenswürdiger Pakete, sichere Programmierung, Berechnen von CRC-Werten und vieles mehr. Ausführliche Anweisungen finden Sie unter UM2237. Das Beispiel in der Abbildung zeigt die Verbindung zum Zielchip über die SWD-Schnittstelle und die Einstellung der Leseschutzstufe 1 mithilfe von Befehlszeilenbefehlen. Der vollständige Befehl lautet „STM32_Programmer_CLI.exe -c port=SWD -ob rdp=0xBB“.

STLink-Firmware-Update

Nachdem Sie den STLink-Debugger an Ihren Computer angeschlossen haben, öffnen Sie STM32CubeProgrammer und aktualisieren Sie die STLink-Verbindung, um die aktuelle STLink-Firmware-Version anzuzeigen. Klicken Sie auf die Schaltfläche „Firmware-Upgrade“ und öffnen Sie das STLinkUpgrade-Tool, um die STLink-Firmware-Version zu aktualisieren.

Firmware Upgrade of ST-LINK of STM32CubePorgrammer
Firmware Upgrade of ST-LINK of STM32CubePorgrammer

Wie verwendet man STM32CubeProgrammer?

STM32CubeProg ist ein umfassendes Programmierwerkzeug, das typische Vorgänge wie Lesen, Schreiben (Herunterladen/Programmieren), Löschen und Programmieren von Optionsbytes umfasst.

STM32CubeProg herunterladen

Installationsumgebung

STM32CubeProg unterstützt die Betriebssysteme Windows, Linux und macOS. Da es auf JAVA basiert, müssen Sie die Java Runtime Environment (JRE) auf Ihrem Computer installieren. Der Installationsvorgang ist in der folgenden Abbildung dargestellt (Version 2.5.0b):

Chips verbinden und STM32CubeProg

Bei der Verwendung von STM32CubeProgrammer zur Verbindung mit der Zielplatine über STLINK kann es vorkommen, dass die Verbindung fehlschlägt. Dies kann an einer veralteten Firmware-Version im STLINK liegen. Um dieses Problem zu beheben, klicken Sie auf die Schaltfläche „Firmware-Upgrade“, um ein Firmware-Upgrade durchzuführen. Während des Aktualisierungsvorgangs müssen Sie möglicherweise mehrmals den Stecker ziehen und wieder einstecken. Nach Abschluss der Aktualisierung ziehen Sie den Stecker einmal ab und stecken Sie ihn wieder ein, damit STM32CubeProgrammer den STLINK erkennt.

Chip-Programmierung und Fehlerbehebung

Nach Abschluss der Programm-Fehlersuche müssen Sie den Chip mit Ihrem Code programmieren. In der Regel haben Sie drei Möglichkeiten:

  1. Verwenden Sie die JTAG/SWD-Debugging-Schnittstelle, um den Chip zu programmieren. Dazu benötigen Sie häufig die Software STLink Utility oder STVP.
  2. Programmieren Sie den Chip über die UART-Schnittstelle mit der STM32 Flash Loader Demonstrator-Software auf dem PC.
  3. Programmieren Sie den Chip über die USB-Schnittstelle mit der USB DfuSe-Software.

Programmierung mit ST-LINK

Programming with ST-LINK _ STM32CubeProgrammer
Programming with ST-LINK _ STM32CubeProgrammer

Programmierung mit UART

Programming with UART_ STM32CubeProgrammer
Programming with UART_ STM32CubeProgrammer

Programmierung mit USB

Programming with USB_ STM32CubeProgrammer
Programming with USB_ STM32CubeProgrammer

Achten Sie bei der Programmierung über den USB-DFU-Modus darauf, alle zuvor installierten STM32-DFU-Programmierwerkzeuge zu deinstallieren. Führen Sie anschließend die Datei „STM32Bootloader.bat“ im Installationsverzeichnis aus.

Abonnieren

Tragen Sie sich in unsere Abonnentenliste ein, um monatliche Blog-Updates, Technologie-News und Fallstudien zu erhalten. Wir versenden niemals Spam, und Sie können sich jederzeit wieder abmelden.

Nach oben scrollen

Instant Quote