mikrocontroller.net

Forum: Compiler & IDEs IEEE754 in Assembler


Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
avr-libc

Autor: König Europas (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@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

Autor: Ale (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn du möchtest FP aber auf BCD, ich kann vielleicht dir helfen.

Gruß

Ale

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Hans-jürgen Herbert (hjherbert) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Manni (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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!

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.