FIFO-Speicher Überlauf

Gast #2084624
Lesenswert?

Hallo zusammen,
Bei einer Applikation werden Messdaten in einem FIFO-Speicher geschleift 
und dann alle 5ms an einer Steuerung geschickt.
Wie kann man sicher sein bzw feststellen dass der FIFO-Speicher nie voll 
wird?
Ich meine kann man einen Fehler bauen oder simulieren so dass der 
FIFO-Speicher voll wird? um zu prüfen ob das Programm eine entsprechende 
Fehlermeldung schickt?

Gruß F
Gast #2084741
Lesenswert?

Wenn weniger Daten am Ziel ankommen als am Sensor generiert wurden, dann 
fehlt was ;)

Also ich weiß nicht wie der FIFO programmiert ist, aber bei meiner 
Implementation geht bei einem Überlauf der gesamte Bufferinhalt auf 
einmal verloren und er macht dann weiter als wäre nichts...
Gast #2085347
Lesenswert?

Fabian schrieb:
> Ich meine kann man einen Fehler bauen oder simulieren so dass der
> FIFO-Speicher voll wird? um zu prüfen ob das Programm eine entsprechende
> Fehlermeldung schickt?

Uuhhhh, wie jetzt?

Einfach keine Daten aus dem FIFO auslesen, dann wird er doch voll- und 
ueberlaufen?

Oder meintest Du was total anderes als Du schrobst?
Gast #2085457
Lesenswert?

Guten Morgen

es geht um ein Prüfprogramm bei dem eine MDF(enthält Messdaten) geöffnet 
wird und bearbeitet.
Die Messdaten werden zuerst in einem FIFO geschleift und dann zur 
Steuerung geschickt. Da es auch eine Dauerprüfung gedacht muss vorher 
sichergestelt werden dass der FIFO nie überlaufen wird bzw wenn er voll 
ist dann muss das Prüfprogramm einen Fehler zurückmelden.
Meine Frage ist wie man das simulieren kann bzw extra einen Fehler bauen 
um dies zu überprüfen.
AN programm selbst kann ich nichts ändern

Gruß F
Persönliche Seite #2085468
Lesenswert?

Fabian schrieb:
> Die Messdaten werden zuerst in einem FIFO geschleift und dann zur
> Steuerung geschickt. Da es auch eine Dauerprüfung gedacht muss vorher
> sichergestelt werden dass der FIFO nie überlaufen wird bzw wenn er voll
> ist dann muss das Prüfprogramm einen Fehler zurückmelden.

Dann musst Du den Punkt "und dann zur Steuerung geschickt" halt drosseln 
bzw. anhalten.
Persönliche Seite #2086138
Lesenswert?

Was soll ich damit meinen? Ein Fifo wird von einer Seite befüllt und von 
einer anderen entleert.

Das schreibst Du ja auch selber:

> Bei einer Applikation werden Messdaten in einem FIFO-Speicher
> geschleift und dann alle 5ms an einer Steuerung geschickt.

Du musst also entweder seltener als alle 5ms Datensätze an die Steuerung 
weiterreichen oder mit mehr als 200 Datensätzen pro Sekunde das Fifo 
befüllen.
#2086230
Lesenswert?

Fabian schrieb:
> Rufus Τ. Firefly schrieb:
>> an der Füllgeschwindigkeit zu arbeiten, aber davon abgesehen
>> gibt es keine anderen Möglichkeiten.
>
> was meinst du denn damit

Wenn du testen willst, ob der Überlauf deiner Badewanne funktioniert 
gibt es nur 2 Möglichkeiten:

Entweder du vergrößerst den Wasserzulauf auf Feuerwehrschlauch-Niveau 
oder du stopfst den Abfluss zu.

Wenn du an die Badewanne selber rankommst, kannst du zusätzlich zum 
normalen Wasserzulauf auch noch eimerweise selber Wasser zuschütten. 
Aber laut deiner Aussage hast du ja diese Option nicht.

Also bleiben dir nur diese beiden Möglichkeiten.
Gast #2087373
Lesenswert?

Karl Heinz Buchegger schrieb:
> Entweder du vergrößerst den Wasserzulauf auf Feuerwehrschlauch-Niveau
> oder du stopfst den Abfluss zu.

ich kann natürlich die Verbindung zwischen Steuergerät und 
Mikrocontroller trennen und somit werden keine Daten zur Steuerung 
geschickt. Aber ich gehe davon aus dass das Programm einen 
Kommunikation-Fehler melden wird das heisst in diesem Fall kann den 
FIFO-speicher auf Überlauf nicht prüfen.

Die 2te Variante war dass ich die Datenmenge die der Speicher holen kann 
vergrößen muss. Das heisst wenn der Speicher 1mm Messwerte einliest dann 
soll ich die menge auf 200 erhöhen
Darauf habe ich leider keinen Einfluß ich weiss nur dass die MDF datei 
schrittweise eingelesen wird und zwar alle 10ms werden zB. 100 Messwerte 
eingelesen.
Die Datei liegt in einem vordefienierten Verzeichniss und wird durch 
Knopfdurck "Messung_Starten" geöffnet
#2087887
Lesenswert?

Fabian schrieb:
> Karl Heinz Buchegger schrieb:
>> Entweder du vergrößerst den Wasserzulauf auf Feuerwehrschlauch-Niveau
>> oder du stopfst den Abfluss zu.
>
> ich kann natürlich die Verbindung zwischen Steuergerät und
> Mikrocontroller trennen und somit werden keine Daten zur Steuerung
> geschickt.

Was zu beweisen wäre.
Wenn dein µC, so wie meistens, die Daten einfach rausbläst und sich 
nicht darum kümmert ob ihm wer zuhört, dann kannst du die Verbindung 
trennen und der FIFO läuft deswegen immer noch nicht über.

Ein nicht angestecktes Kabel bedeutet nicht automatisch, dass deswegen 
keine Daten an diesem Anschluss rausgesendet werden.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren