Forum: Mikrocontroller und Digitale Elektronik STM32 SysTick


von Jack (Gast)


Angehängte Dateien:

Lesenswert?

hallo,
arbeite gerade an dem beispiel mit dem system timer.
Bei dem beispiel von ST läufts das beispiel nicht korrekt
und ich finde den fehler nicht.
Wenn ich das ganze laufen lasse, bleibt es an der datei
STM32F10x.s an der stelle hängen (endlosschleife).
   SysTick_Handler PROC
                   EXPORT  SysTick_Handler           [WEAK]
                   B       .
                   ENDP
Hoffe jemand kann mir helfen mit dem beispiel für den
systick

  grüße
   jack

von Jack (Gast)


Angehängte Dateien:

Lesenswert?

teil 2

von Jack (Gast)


Angehängte Dateien:

Lesenswert?

teil 3

von Jörn K. (joern)


Lesenswert?

Setzt mal in der .s Datei den richtigen Interrupthandler ein:

Anstatt:

DCD     SysTick_Handler           ; SysTick Handler

den hier

DCD     SysTickHandler

Bei dir wird bei einem Interrupt immer die  Funktion "SysTick_Handler" 
aufgerufen, die nun mal in einer Endlosschleife landet.

HTH
Jörn

von (prx) A. K. (prx)


Lesenswert?

Der Handler muss nicht in der .s Datei definiert werden, sondern als 
normale C-Funktion. Das "weak" im .s legt fest, das dieses Symbol nur 
verwendet wird wenn es keinen Handler gibt.

Diese Totschleife signalisiert, dass es keinen Handler gibt. Im *_it.c 
File steht zwar einer drin, aber der zieht offenbar nicht.

von (prx) A. K. (prx)


Lesenswert?

Es scheint hier einen Konflikt zwischen zwei nicht zusammen passenden 
Codeteilen zu geben. Einerseits den Startup-Code von Keil, der die 
Interruptleiste enthält und damit implizit die Namen der 
Interrupt-Handler vorgibt (SysTick_Handler), andererseits den 
Sample-Code von ST, der einen geringfügig anderen Namen definiert 
(SysTickHandler).

von (prx) A. K. (prx)


Lesenswert?

Nimm das Beispiel aus der ST Firmware-Lib V3, da passt es zusammen.

von Jack (Gast)


Lesenswert?

hallo zusammen,
danke für eure hilfe.
Habe nun das beispiel so geänder wie Jörn es bemerkte.
Habe in der STM32Fx10it.c aus SysTickHandler -> SysTick_Handler
und siehe es funktioniert.
@ A.K. werde das beispiel in der V3 anschauen.

  Danke euch beiden

     jack

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.