Große Datenmengen über TCP in ext. Flash schreiben

Gast #5690913
Hallo,
ich möchte über die Ethernet-Schnittstelle eine bestimmte Datenmenge 
(ca. 300kB) empfangen und in einem externen SPI-Flash wegspeichern, da 
der eingesetzte STM32F4 nicht genug RAM hat.


Mit dem Thema TCP/IP-Stack kenne ich mich aktuell leider noch nicht so 
gut aus. Es geht darum, ob das Vorhaben auf diese Weise überhaupt 
möglich ist.


Die Idee ist folgende:

1) Empfang der Daten mittels TCP/IP-Stack (max. 1460 Byte Datenframe?)
2) Die Daten mittels DMA und SPI mit Page-Write ins externe Flash 
schaufeln

3) Jetzt erst das TCP-Acknowledge senden (lässt sich das so einfach 
verzögern?)
4) Empfang des nächsten Frames -> Punkt 1)



Hat jemand schon so etwas ähnliches gemacht und weiß ob es funktionieren 
würde?
#5690929
spi schrieb:
> 1) Empfang der Daten mittels TCP/IP-Stack (max. 1460 Byte Datenframe?)

Das kannst du über die MTU deiner Verbindung regeln.

spi schrieb:
> 3) Jetzt erst das TCP-Acknowledge senden (lässt sich das so einfach
> verzögern?)

Über das TCP Receive Window kannst du steuern, wie viele Daten du vor 
einem ACK empfangen kannst.

Es kann allerdings passieren, dass du die Daten in einer anderen 
Stückelung, als die von dir angegebene Größe bekommst. Außerdem musst du 
auch damit klarkommen, dass du noch andere Pakete empfängst (z.B. 
broadcasts). Die belegen auch Speicher beim Empfang, auch wenn du die 
Daten gar nicht haben wolltest.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 7 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.