STM32 LEDBlinken AtollicTrueStudio: Unterschied zwischen den Versionen

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „Um den Einstieg zu erleichtern wird hier ein minimales Beispiel, eine blinkende LED, mithilfe der STM32 Std. Peripherial Library vorgestellt. === Verwendete Komp…“)
 
KKeine Bearbeitungszusammenfassung
Zeile 95: Zeile 95:


</c>
</c>
=== Projekt Builden ===


Das Projekt nun Builden mit dem Eintrag "Debug" beim Hammersymbol.
Das Projekt nun Builden mit dem Eintrag "Debug" beim Hammersymbol.
Zeile 102: Zeile 104:


[[Datei:Truestudio_compilieren.JPG]]
[[Datei:Truestudio_compilieren.JPG]]
=== Configuration zum Flashen und Debuggen ===


Das File nun mit dem ST-Link über JTAG auf das Board flashen.
Das File nun mit dem ST-Link über JTAG auf das Board flashen.
Zeile 115: Zeile 119:


[[Datei:Truestudio_debug_session1.JPG]]
[[Datei:Truestudio_debug_session1.JPG]]
=== Workspace mit Projekt zum download ===
Falls es nicht klappt hier der Workspace mit dem Blinking LED Projekt drin.
[http://www.inexess.com/pwiki/doku.php?id=electronic:arm_cortex_m3 TrueStudio/STM32 Workspace mit Blinking LED Projekt]

Version vom 6. Oktober 2010, 22:15 Uhr

Um den Einstieg zu erleichtern wird hier ein minimales Beispiel, eine blinkende LED, mithilfe der STM32 Std. Peripherial Library vorgestellt.

Verwendete Komponenten

  • IDE Atollic Truestudio Lite 1.4 (Free)
  • JTAG Debugger (ca. 25€)
  • Ein Test/Demoboard mit einem STM32F10x (und mindestens eine schaltbare LED)

Kompontenten herunterladen und installieren

Downloaden von Atollic TrueSTUDIO®/STM32 Lite (1.4) von http://www.atollic.com/index.php/download/downloadstm32 und intallieren.

Den ST-LINK updaten damit er neuere Controller kennt. Downloaden des "ST-Link firmware upgrade" von der ST Seite http://www.st.com/mcu/familiesdocs-110.html. ST-Link am USB anstecken, ZIP-File Entpacken, ST-LinkUpgrade.exe ausführen, Button "Device Connect" und "YES" anklicken um das update auszuführen.

Dokumentationen herunterladen

Von der ST Seite http://www.st.com/mcu/familiesdocs-110.html herunterladen von

  • RM0008 Reference Manual
  • Das zum Controller auf dem Board passende Datasheet
 (zb. "STM32F105/107xx" für den STM32F107)
  • PM0056 STM32F10xxx Cortex-M3 programming manual

C-Code Projekt für den Controller einrichten

TrueStudio starten und einen (neuen) Workspace Ordner wählen. Im Workspace Ordner wird pro Projekt dann ein Projektordner abgelegt.

Truestudio start workspace.png

Die Introseite beenden mit "Start using TrueSTUDIO" und ein neues C-Projekt erstellen mit File -> New -> C-Projekt.... wähle STM32 C Projekt ... Atollic ARM Tools

Truestudio new c project.jpg

Truestudio new c project wizard1.JPG

Nachfolgender Dialog definier welche Projekteinstellungen vorgenommen werden und welches Linkerscript und Startupfile in das Projekt kopiert wird.

Evaluation board: None Ausser der Std. Peripherial Library wollen wir keinen zusätzlichen Code hinzufügen

Microcontroller family und Microcontroller: Wähle hier den Controller der auf DEINEM EIGENEN Board bestückt ist.

Code location: FLASH -- das Programm wird dauerhaft in in internen Flash des STM32 abgelegt. RAM -- das Programm wird in den internen RAM geschrieben und ist nach dem abschalten des Stromes wieder futsch.

Nun den Finish Button drücken, das Projekt wird erstellt, die notwendigen Dateien erzeugt.

Truestudio new c project wizard2.JPG

Main Code für Blinking LED

Die Codefiles finden sich im Order src. Der vom Wizard erstellte Code im main.c wird durch folgenden Code ersetzt.

main.c:

<c>

  1. include "stm32f10x.h"

// Die Std. Peripherie arbeitet viel über Strukturen // Struktur um PortPins zu initialisieren GPIO_InitTypeDef GPIO_InitStructure;


void delayLoop() { uint32_t delayCount = 1000000; while (delayCount > 0) { delayCount--; } }

int main(void) { // Die Std. Peripherie nun Clocks, PLLs usw. einrichten SystemInit();

// PORT D Peripherie aktivieren RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);

// PortPin als Ausgang configurieren GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOD, &GPIO_InitStructure);

while(1) { GPIOD->BSRR = GPIO_Pin_7; // LED On delayLoop();

GPIOD->BRR = GPIO_Pin_7; // LED Off delayLoop(); } }

</c>

Projekt Builden

Das Projekt nun Builden mit dem Eintrag "Debug" beim Hammersymbol. Am unteren Rand gibt es die Problems view, hier dürfen keine Fehler aufscheinen. In der Console View wird der Compile und Linkerablauf und das Ergebnis ausgegeben.

Wenn es klappt liegt nun das fertige File als LEDBlinken.elf im Ordner "Debug".

Truestudio compilieren.JPG

Configuration zum Flashen und Debuggen

Das File nun mit dem ST-Link über JTAG auf das Board flashen. Dazu muss erstmalig eine Debug Configuration eingerichtet werden. Klicke auf das Icon des "Grünen Käfer" und selektiere "Debug As" --> "Embedded C/C++ Application". Der Wizard für eine neue Debug Configuration wird geöffnet, die Einstellungen für den ST-LINK sich korrekt eingetragen.

Mit Apply und OK wird die neuen Debug Configuration angelegt (elf File in den Controller flashen, debug starten, brakepoint ist erste zeile in main) Diese Debug Config ist nun direkt über das Debug Icon "Grüner Käfer" erreichbar.

Truestudio flash and debug stlink first time.JPG

Truestudio flash and debug wizard.JPG

Truestudio debug session1.JPG


Workspace mit Projekt zum download

Falls es nicht klappt hier der Workspace mit dem Blinking LED Projekt drin.

TrueStudio/STM32 Workspace mit Blinking LED Projekt