Gibt es für die AVR uC eine .asm Bibliothek für die Add (Sub) Mul und Div Routinen im IEEE 754 Format (32 bit) hier in den Foren ? Ich habe das Forum "Codesammlung" bis zum ersten Eintrag am 04.01.2002 durchgesehen und nichts gefunden. Vielleicht habe ich ja was übersehen oder ihr könnt mir einen Tip geben, wo ich sowas finden kann. Gruß Manni
Ich denke mal, da gibt es keine volle Implementierung. Prof. Kahan beschreibt hier gut den Aufbau und Sinn des IEEE754-Formats: http://www.cs.berkeley.edu/~wkahan/ieee754status/IEEE754.PDF Ich bezweifele mal, dass du dich mit der avr-libc an die verschiedenen Traps dranhängen kannst. Prominentestes Beispiel für das Fehlen voller IEEE754-Funktionalität ist der Absturz der Ariane-Rakete!
@A.K. So wie König sagt, werde ich es tunlichst unterlassen mich an die libc "dranzuhängen". Würde wohl eher ein Jahrzehnt-Projekt. @König Europas Danke für den Link, habe bzgl. IEEE754 schon alle möglichen Definitionen, Beschreibungen und Notes aus dem Netz gefischt, teils gut, teils übel. Übrigens: nicht nur Over- oder auch Underflows führen zu solch kostspieligen Katastrophen. Es sind auch mal ganz banale Gründe: Putzlappen bei der Integration bzw. beim Final Flight Acceptance Review im Antriebssystem vergessen. Davon könnte ich noch viele aufzählen ... Trotzdem vielen Dank für die Infos. Manni
FP in BCD ist auch ein Möglichkeit, aber damit nicht mehr kompatibel zum C compiler --> man weiss ja nie was alles noch für Projekte kommen !?! Ich sitze gerade dran, die FP Arithmetik im Format IEE754 in Assembler zu erstellen. Esrt mal Add, Sub, Mul, Div und dann noch string floating point zahl (z.B.: "-1.234567E-27") nach IEE754 und das ganze noch zurück. Wenn ich das habe, werde ich's ins Forum stellen zum Testen und Meckern !!! Trotzdem vielen Dank für deine Idee.
Neu? In der Library ist alles schon drin. Die Programme heißen __addsf3 __subsf3 __mulsf3 und __divsf3. Die Quellen dafür gibt es da: http://download.savannah.gnu.org/releases/avr-libc/ Ich hatte das auch mal probiert die Quellen sind da : Beitrag "float arithmetic" Besondere Schwierigkeiten machen +Inf -Inf NaN und subnormal - Wenn man da etwas wegoptimiert spart man viel Zeit und Platz. Testcases (Überprüfungsprogramme) gibt es im avr-libc CVS, auf https://savannah.nongnu.org/cvs/?group=avr-libc Wenn Du schon ein Porgramm schreibst, dann nimm den ersten Wert (a) in r25 r24 r23 r22, den zweiten in r21 r20 r19 r18, dann sind deine Programme kompatibel zu avr-libc und zm Compiler. An einem Testcase-interpreter und Simulator schreibe ich gerade noch. Wenn er fertig ist schiebe ich ihn auf den thread Beitrag "float arithmetic" Trotzdem: nicht aufgeben, vielleicht wird Deine Version ja besser schneller kürzer, genialer.
Hab alles gefunden und werd' mal genauer reinschauen, auch in deine home.zip. Was mir auf die Schnelle bei den "savannah" sourcen aufgefallen ist, dass man dass das IEEE754 Thema "Runden" als nicht relevant ansieht. Vielleicht hab ich das auch nur übersehen. Werde forschen ! Danke dir für die vielen Links!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.