Forum: Projekte & Code FIFO32: Versatile 32 bit fifo with variable array length


von Michael H. (overthere)


Angehängte Dateien:

Lesenswert?

Hallo zusammen,

folgender Code implementiert einen 32Bit FIFO, welcher eine variable 
anzahl an 32Bit elementen aufnimmt. Am besten in die Testfunktion 
reinschauen, die erklärt die Implementierung eigentlich relativ einfach.

Falls jemand damit noch Probleme haben sollte, hier schreiben und mir 
dann oben eine Email senden.

Hoffe, das spart einem ein paar Stunden sowas zu implementieren.

-Michael

von Falk B. (falk)


Lesenswert?

Naja, nicht sonderlich wertvoll, genauso wie das Beispiel im Artikel.
Einfach nur schnell hingerotzter Mist.

Es gibt dort schon eine WIRKLICH gescheite Lib. Ich mach mal die Inga.

https://www.mikrocontroller.net/articles/FIFO#FIFO_als_Bibliothek

: Bearbeitet durch User
von Michael H. (overthere)


Lesenswert?

Hallo Falk,

es zwingt dich keiner die Lib zu nutzen.

Was ich aber unverschämt von Dir finde, ist anderen Code schlecht 
darzustellen, und dann auf deinen eigenen Code zu verweisen, der "viel 
besser sei". Sorry, sowas geht nicht, behaupten etwas sei objektiv 
besser, nur weil es sein eigenes ist.

Sich hier sein eigenes Ego in der Codesammlung aufzupolieren, finde ich 
echt unangebracht.

-Michael

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Michael H. schrieb:
> Sorry, sowas geht nicht, behaupten etwas sei objektiv besser, nur weil
> es sein eigenes ist.

Nun, Du könntest ja mal versuchen, zu erklären, warum die Idee, die 
Fifoverwaltungsinformationen im gleichen Puffer wie die eigentlichen 
Nutzdaten unterzubringen besser sein soll.

Und Du könntest versuchen zu erklären, warum keine Dokumentation außer 
ein paar Kommentaren im Quelltext besser sein soll.

Oh, und Du könntest erklären, was daran gut ist, Deine Funktionen ohne 
jede Parameterüberprüfungen arbeiten zu lassen.

Im übrigen:
Wie kommst Du eigentlich auf die Idee, daß der Code von Falk sein soll?

Der Artikel wurde vor dreizehn Jahren von jemandem namens "C-Logic" 
angelegt, seitdem haben etliche Autoren daran gearbeitet.

von Falk B. (falk)


Lesenswert?

@ Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite

>Wie kommst Du eigentlich auf die Idee, daß der Code von Falk sein soll?

Er halt wahrscheinlich in die Artikelhistorie geschaut.
Und an meinem Zaunspfahl "Ich mach mal die Inga"

;-)

http://www.usenet-abc.de/wiki/Team/Ingrid

uups, es war die Ingrid

von Falk B. (falk)


Lesenswert?

@ Michael H. (overthere)

>es zwingt dich keiner die Lib zu nutzen.

Das typische Kindergartenargument. Du solltest an deiner passiven 
Kritikkompetenz arbeiten.

https://de.wikipedia.org/wiki/Kritikkompetenz

>Was ich aber unverschämt von Dir finde, ist anderen Code schlecht
>darzustellen, und dann auf deinen eigenen Code zu verweisen, der "viel
>besser sei".

Das ist er objektiv auch.

> Sorry, sowas geht nicht, behaupten etwas sei objektiv
> besser, nur weil es sein eigenes ist.

Hat das einer getan? Nö. Es ist objektiv besser. Das kann jeder sehen, 
der beide Software"pakete" incl. Doku vergleicht.

>Sich hier sein eigenes Ego in der Codesammlung aufzupolieren, finde ich
>echt unangebracht.

Du leidest unter einer Projektion.

https://de.wikipedia.org/wiki/Projektion_(Psychologie)

: Bearbeitet durch User
von Michael H. (overthere)


Lesenswert?

Mir geht es nicht darum, hier endgeilen Code zu publizieren. Sondern, 
falls jemand was braucht, kann er es nutzen.

Mein Kritikpunkt an Falk ist, dass er unter irgendwas schreibt "meins 
ist viel Besser". Ob das jetzt so ist, oder nicht ist mir Bumps. Es ist 
einfach nicht gut, den anderen Code als "hingerotzter Mist" und das ist 
viel geiler zu bezeichnen. Und dass dann sein eiger Code ist zu 
verschwiegen.

Das führt nur dazu, dass sich keiner Traut was zu veröffentlichen. Wenn 
das Euer Ziel ist, gratulation, das ereicht man damit.

Ich werde mich jetzt nicht mehr an dieser Troll-Diskussion beteiligen. 
Falls jemand fachliche Fehler findet, darf er sich gerne melden und ich 
werde die Korrigieren.

von W.S. (Gast)


Lesenswert?

Michael H. schrieb:
> Hoffe, das spart einem ein paar Stunden sowas zu implementieren.

Michael H. schrieb:
> Mir geht es nicht darum, hier endgeilen Code zu publizieren. Sondern,
> falls jemand was braucht, kann er es nutzen.

Nun, für deine beiden Hoffnungen sehe ich wenig Chancen. In deinem 
fifo32.c machst du ne Menge Schaum, ich frag mich bloß wozu?

Schau mal, in recht vielen Lowlevel-Treibern stecken FIFO's in Form von 
üblichen Ringpuffern drin, insbesondere in Treibern für UART's und 
dergleichen. Ich selber hab hier schon des öfteren sowas gepostet. Es 
ist schlichtweg ein übliches Software-Detail, das eigentlich jeder 
Programmierer aus dem Ärmel schüttelt. Der Sach-Hintergrund ist immer, 
daß da irgendwelche Daten zwischengespeichert werden sollen, um Prozesse 
voneinander zu entkoppeln.

Vielleicht wäre es besser gewesen, wenn du ne Dokumentation als PDF 
beigefügt hättest, wo du drin erklärst, was denn nun das Besondere bei 
deiner Quelle ist. Ebenso hättest du auf deine Strategien eingehen 
können, die du bei Pufferüberlauf und -unterlauf verfolgst. Genau das 
ist nämlich ganz wichtig, wenn es um das Systemverhalten bei der 
Anwendung eines FIFO's geht, denn Zustände wie "Puffer voll" oder 
"Puffer leer" sind keine Ausnahmen, sondern eher die Regel.

Also: anstatt jetzt die beleidigte Leberwurst zu spielen, solltest du 
lieber ein wenig in dich gehen und nachdenken, wozu und wie irgend 
jemand anderes deinen Code gebrauchen könnte. Wie gesagt, normale 
Programmierer brauchen nicht ein paar Stunden, sondern eher zwei 
Minuten, um einen voll funktionablen FIFO sich hinzuschreiben.

W.S.

von Falk B. (falk)


Lesenswert?

@W.S. (Gast)

>jemand anderes deinen Code gebrauchen könnte. Wie gesagt, normale
>Programmierer brauchen nicht ein paar Stunden, sondern eher zwei
>Minuten, um einen voll funktionablen FIFO sich hinzuschreiben.

Träum weiter ;-)

Wenn ich sicherlich kein Softwerker und Programmierer vor dem Herrn bin, 
so hat das doch ein "wenig" länger als 2 Minuten gedauert. Auch deutlich 
länger als 2h, wieviel genau weiß ich nicht mehr. Denn das Hinschreiben 
ist das eine, das SOLIDE Durchtesten das Andere!

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.