Build Failed with 1 error, error wird aber nicht angezeigt, AVR Studio 4

Gast #2153494
Lesenswert?
• ▲
▼
Hallo,

habe eine Fehlermeldung beim compilieren (siehe Anhang). Der fehler wird 
allerdings nicht angezeigt. Hatte jemand eventuell schon mal ein 
ähnliches Problem oder weiß woran es heben könnte?

Beste Grüße Sven

BTW: kann mir einer sagen warum die memcpy-Befehle warnings werfen?
Angehängte Dateien:
Gast #2153553
Lesenswert?
• ▲
▼
Sven schrieb:
> ... Der fehler wird allerdings nicht angezeigt. ...

Dann schau nochmal hin, insbesondere ab der 5. Zeile von unten.
Ist ein Linker Fehler. Du hantierst scheinbar mit float-Typen rum und 
hast vergessen die libm zu linken

Sven schrieb:
> BTW: kann mir einer sagen warum die memcpy-Befehle warnings werfen?

Wenn Du den Source posten würdest, vielleicht. Meine Glaskugel meint, 
einer der übergebenen Pointer ist volatile.
Gast #2154400
Lesenswert?
• ▲
▼
Hallo.
Danke mal für die Infos.

Nur leider kann ich in der 5ten Zeile von unten nichts erkennen was auf 
eine libm hindeutet. Zumal ich nicht mal weiß für was die libm sein 
soll, google liefert da nicht wirklich ne Antwort.

Ich hab jetzt mal fürs bessere Verständniss den Source-Code in den 
Anhang gepackt.

Der error wird erst geworfen seidem ich ein Abfrage ergänzt hab. Sie 
schaut folgendermaßen aus und befindet sich in der datei "DataInput" und 
dort in der gleichnamigen Funktion.
1
if((XYZ[2] >= -130.00) || (XYZ[2] <= -250.00 ))
2
        {
3
            BListEnd = true;
4
        }

XYZ[] ist ein float array mit drei elementen.

Die beiden memcpy warnings werden in der Datei "angletopwm" in den 
Funktionen "PositionWrite" und "PositionSave" geworfen.

Wäre nett wenn sch das mal einer anschauen könnte. Wenn generell noch 
was auffällt zwecks programmierstiel, bin ich gern für Kritik offen.

Besten Dank im voraus!
Gruß Sven
Angehängte Dateien:
Gast #2154620
Lesenswert?
• ▲
▼
Sag ich doch, Du hantierst mit Gleitkommazahlen (Typ 'float' bzw. 
'double'), auch an den obigen Messages zu erkennen ('__lesf2', 'fplib', 
...). Genau deshalb solltest Du dann unbedingt auch die entsprechende 
Floatingpointlibrary zu Deinem Programm dazu linken. Der Dateiname der 
Library ist libm.a. Das die bei Dir fehlt sieht man an der 6. Zeile von 
unten (die letzte mit dem grünen Punkt davor), das ist der Aufruf des 
Linkers. Solange dort kein '-lm' mit auftaucht, fehlt die Lib.

Geh mal im AVRStudio auf "Project"->"Configuration Options", dann auf 
der linken Seite auf "Libraries". Dann markierst Du in der Liste links 
unten 'libm.a' und klickst auf den Button "Add Library ->", jetzt sollte 
'libm.a' auch in der rechten Liste stehen, dann noch mit "OK" 
bestätigen.

CU

PS: Ich hoffe Du bist Dir bewußt, daß Floatingpointarithmetik auf einem 
AVR eine ziemlich lahme Sache ist.

Antwort schreiben

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.

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.