Forum: Compiler & IDEs Ab 3.DMA stellt die CPU die Arbeit ein?


von vampire (Gast)


Lesenswert?

STM32F4xx:
Ich weis, dies ist nicht primär ein GCC-Problem!
Ein F4-Discovery auf "Open407V-D" BB soll möglichst viel der einzel 
durchaus lauffähigen Example-Programme menügesteuert (durch 
Touch-auswahl) unter
einem Hauptprogramm ausführen.
Dieses HP startet zunächst einen LAN-Server(standalone), als Phy einen 
DP83846
 USE_ENHANCED_DMA_DESCRIPTORS
sowie die config einer µSD-card als FatFs module(SDIO) mit 
DMA_InitTypeDef SDDMA;
Bei Auswahl Programm 6 startet die Bild-capture(DCMI) und stellt 
continious oder als Snapshot den Inhalt auf LCD(FSMC) dar.(DCMI über 
DMA-stream)

UND AB HIER IST SCHLUSS !
„Rien ne va plus.“
Ich kann den Stream nicht unterbrechen, da die CPU die Arbeit 
eingestellt hat.
Alle Versuche, danach irgentetwas aufzurufen, werden ignoriert!

Ein Vorläufer des von mir benutzten Programms ist hier:
Beitrag "Re: ST-Discovery-Net-IO Anfang"

Kann jemand helfen...?

von Patrick (Gast)


Lesenswert?

ARGH!

Bitte lesen und anwenden, dann besteht auch die Chance, dass jemand 
helfen kann: 
http://www.mikrocontroller.net/articles/Netiquette#Klare_Beschreibung_des_Problems

Beispiele:
- "... da die CPU die Arbeit eingestellt hat." - sehr viel 
wahrscheinlicher ist ein Programmabsturz bzw. -aufhänger, z. B. durch 
einen nicht implementierten IRQ-Handler - ist das geprüft?
- "Ein Vorläufer des von mir benutzten Programms ist hier:" - Ja, 
schön... Und wie sieht jetzt Dein aktuelles Programm aus, mit dem der 
Fehler auftritt? Welcher Compiler (Version) wird benutzt etc.?

von B. Scheuert (Gast)


Lesenswert?

Schon eine Suchmaschine probiert? Dann könnte man auch diesen Text 
finden:
http://blog.frankvh.com/2012/01/13/stm32f2xx-stm32f4xx-dma-maximum-transactions/

von vampire (Gast)


Lesenswert?

Bitte, nicht aufregen!
Sollte ich gegen "Umgangsformen" verstossen haben, so bitte ich um 
Entschuldigung!
Gleich zu Beginn des verlinkten Beitrages steht, das ich CoIDE verwendet 
habe.
(mit arm-none-eabi-gcc-4.6.2)
Ich grüble schon seit längerem und kann einen Programm-Absturz 
ausschliessen.
Mein aktuelles Programm ist nur eine mp3 - Ausgabe auf einem anderen 
Programm, sowie eine USB-Host Anwendung ebenfalls auf einem anderen 
Programm.
Der beschriebene "Hänger" titt bereits in diesem "Vorgänger", in 
Programm 6 auf.
Ich habe das aktuelle Programm wegen seiner Grösse nicht eingestellt und 
der kleinere "Vorgänger" das Problem bereits aufzeigt --

Patrick schrieb:
> nicht implementierten IRQ-Handler - ist das geprüft?

- Ja !
Ich tippe eher auf grundsätzliche Probleme des STM32F4xx mit mehreren 
DMA-stream's!

von vampire (Gast)


Lesenswert?

B. Scheuert schrieb:
> Schon eine Suchmaschine probiert? Dann könnte man auch diesen Text
> finden:

Entschuldigung das ich die Foren-Eigner gestört habe!
Kommt garantiert nicht mehr vor!

@B. Scheuert obwohl sicher nicht deine Absicht, -aber der Link hilft 
tatsächlich --

von Der (Gast)


Lesenswert?

vampire schrieb:
> Ich kann den Stream nicht unterbrechen,

Auch nicht mit dem Debugger?

von vampire (Gast)


Lesenswert?

Sorry, -ich debugge nicht!

Ist der Stream erst etabliert, bringt ihn nichts zum stoppen.
Auch "Snapshot" beendet nach getaner Arbeit die Verbindung nicht. Ein
disable allein macht nichts:
DMA_Cmd(DMA2_Stream1, DISABLE);
DCMI_Cmd(DISABLE);
DCMI_CaptureCmd(DISABLE);
-- diese Anweisungen werden schlichtweg nicht ausgeführt --
und alles was folgt wird ignoriert;
Ich schreibe auf max. 2 DMA-Stream um --
Danke !

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.