Ab 3.DMA stellt die CPU die Arbeit ein?

Gast #2937501
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...?
Gast
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.?
Gast
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!
Gast
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 --
Gast
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 !

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 13 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.