Forum: Mikrocontroller und Digitale Elektronik STM32F103C8 - Keil MDK 5.31.0 - Kein automatischer Reset


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Max M. (maxmicr)


Bewertung
0 lesenswert
nicht lesenswert
Ich verwende die Keil MDK IDE Version 5.31.0 und schaffe es anhand der 
Einstellungen leider nicht, dass mein STM32F103C8 einen automatischen 
Reset nach dem Downloaden per SWDIO/SWCLK erhält.

Nach kurzem googlen hat anscheinend jemand ein sehr ähnliches Problem: 
https://community.arm.com/developer/tools-software/tools/f/keil-forum/44063/mdk-arm-5-28-problem-with-reset-and-run

Ich verwende einen ST-Link V2 (Klon) mit Firmware V2J35S7 (die mir Keil 
angeboten hat).

Hmm, kann doch nicht sein, dass dieser Fehler (falls es denn ein Bug 
ist) bei Keil noch niemandem aufgefallen ist? Oder hängt das mit dem 
ST-Link Klon zusammen?

Mein Beispielprogramm:
#include "stm32f10x.h"
#include <stdbool.h>
#include <stdint.h>

void wait(volatile uint32_t cnt);

void wait(volatile uint32_t cnt) {
    while(cnt > 0) {
      __ASM("nop");
      cnt--;
    }
}

int main(void) {
  
  /* Enable Clock for GPIO Port C */
  RCC->APB2ENR |= RCC_APB2ENR_IOPCEN;
  
  /* GPIO Port C Pin 13 Push-Pull */
  GPIOC->CRH &= ~( GPIO_CRH_CNF13_0 | GPIO_CRH_CNF13_1 );
  
  /* GPIO Port C Pin 13 50MHz Output Mode */
  GPIOC->CRH |= ( GPIO_CRH_MODE13_0 | GPIO_CRH_MODE13_1 );
  
  while(true) {
    GPIOC->ODR |= GPIO_ODR_ODR13;
    wait(1000000);
    GPIOC->ODR &= (uint16_t)( ~GPIO_ODR_ODR13 );
    wait(1000000);
  }
}

Sobald ich auf dem "Blue-Pill"-Board den Reset-Schalter betätige bzw. in 
Keil in den Debug-Modus wechsle (und dann gleich wieder rausgehe), 
blinkt die LED einwandfrei.

Nur wenn ich auf "Download (F8)" in Keil klicke, wird das Programm zwar 
geladen:
*** Using Compiler 'V6.14', folder: 'C:\Keil_v5\ARM\ARMCLANG\Bin'
Rebuild target 'Target 1'
compiling main.c...
assembling startup_stm32f10x_md.s...
compiling system_stm32f10x.c...
linking...
Program Size: Code=712 RO-data=252 RW-data=0 ZI-data=1632  
FromELF: creating hex file...
".\Objects\ProjectFile.axf" - 0 Error(s), 0 Warning(s).
Build Time Elapsed:  00:00:01
Load "C:\\Users\\test\\Documents\\STM32TestProject\\Objects\\ProjectFile.axf" 
Full Chip Erase Done.
Programming Done.
Verify OK.
Application running ...
Flash Load finished at 20:15:28

aber es tut sich nichts.

Ich verwende von Keil die Startup-Datei sowie "CMSIS CORE" für die 
Registerdefinitionen.

In "Flash -> Configure Flash Tools -> Settings -> Flash Download" ist 
"Program", "Verify" und "Reset and Run" aktiviert.

Jemand eine Idee?

: Bearbeitet durch User
von Thomas O. (kosmos)


Bewertung
0 lesenswert
nicht lesenswert
schreib das doch dem Hersteller von Keil, anscheinend wird nach dem 
Programmieren der Resetpin nicht losgelassen.

von Max M. (maxmicr)


Bewertung
0 lesenswert
nicht lesenswert
Thomas O. schrieb:
> schreib das doch dem Hersteller von Keil, anscheinend wird nach dem
> Programmieren der Resetpin nicht losgelassen.

Der Reset-Pin ist nicht angeschlossen, sondern nur SWDIO/SWCLK. Aber ich 
vermute stark, dass sich damit auch ein Reset erzeugen lässt. Vllt. 
denkt die Keil-IDE, dass der Reset-Pin verwendet wird und erzeugt daher 
darüber den Reset. Eventuell kann man irgendwo einstellen, dass 
statdessen eben SWDIO verwendet werden soll?

Thomas O. schrieb:
> schreib das doch dem Hersteller von Keil

Nachdem das schon fast ein Jahr in ihrem Community-Forum steht bin ich 
skeptisch. Aber ich probiers, danke.

Edit: Okay, hier wird von Keil gefordert, dass man den RESET-Pin mit 
anschließt: 
https://www.keil.com/support/man/docs/ulinkplus/ulinkplus_jtagswd_interface.htm

Schade, das klappt dann wohl mit dem Blue-Pill Board nicht.

Edit: Klappt doch, hier sieht man rechts oben den RESET-Pin: 
https://www.heise.de/developer/imgs/06/2/3/9/9/2/8/7/Bluepillpinout-4974006ee90b729a.gif

: Bearbeitet durch User

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.