Forum: Mikrocontroller und Digitale Elektronik STM32L4 Reset berfore/after Programming


von Thomas T. (runout)


Lesenswert?

Hallo Gemeinde,

ich nutze ein Nucleo-144-Board.
Als IDE VisualGDB mit Arm-GCC.

Man kann in den Settings "Reset before Programming" und "Reset after 
Programming" anwählen.
Interface ist SWD.

Bisher war das eigentlich egal.
Seit ich DMA nutze (über SAI1) geht das Flashen nicht mehr.

Es kommen dann solche Meldungen:
compare-sections
~"Section .isr_vector, range 0x8000000 -- 0x80001ac: MIS-MATCHED!\n"

Bei der Einstellug "Reset before Programming" funktioniert alles 
bestens.

Ist das ein normales Verhalten?
Wo sollten Überschneidungen zwischen SWD-Flash und DMA-Transfer 
herkommen.
Wird nicht vor dem Flashen die MCU angehalten?


Viele Grüße
Runout

von Stefan F. (Gast)


Lesenswert?

Ich rate mal, dass du die CPU während des DMA Transfers schlafen legst. 
In diesem Zustand ist die SWD Schnittstelle tot.

Deswegen wird oft empfohlen, am Anfang des Programms eine Sekunde zu 
warten, bevor man schläft, damit der Verbindungsaufbau via SWD 
erleichtert wird.

von Thomas T. (runout)


Lesenswert?

Hallo Stefanus,

ich nutze keine Low-Power/Sleep-Modes.

Habe jetzt noch im Log-File vom J-Link
einen "Memory-Access-Error" entdeckt.

Es ist egal, ob ich das Nucleo-Board mit orignal ST-Link-Debugger
betreibe oder via "STLinkReflash" als J-Link.

Aber danke für den Tip.

Grüße
Runout

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.