www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR32 Seltsames Verhalten bei sprintf


Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

Ich verwende AVR32 Studio und einen UC3A und habe ein sehr seltsames 
Problem mit sprintf.
Wenn ich z.b.
sprintf(text, "testtext");
schreibe, dann funktioniert alles wunderbar, also auf text steht 
testtext.
Sobald ich aber
sprintf(text, "testtext %d", zahl);
schreibe, steht auf text nur mehr Müll bzw. zweitweise springt er auch 
in eine unhandled exception.

Ich habe hier schon viel Beiträge gelesen, aber so was ähnliches war 
leider nicht dabei, was mir Anhaltspunkte geben könnte. ÖFter war die 
Rede von zu wenig Stack, aber ich denke, das kann nicht das Problem 
sein.
Wo könnte ich im AVR32 Studio die Stackgröße ändern?

Ich hoffe, ihr könnt mir weiterhelfen!
mfg
Alex

Autor: Marius Wensing (mw1987)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wie ist denn die Variable test definiert? Groß genug, um den gesamten 
String aufnehmen zu können?

MfG
Marius

Autor: Alex (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich denke schon..

text ist mit
char text[30];
 definiert und auf zahl steht 2. Es sollte sich also locker ausgehen.

Autor: Benjamin Schelte (_benjamin_)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

über dasselbe Problem bin ich gestern auch gestolpert, als ich einen 
String in ähnlicher Art und Weise formatieren wollte.
Das Problem ist wirklich die Routine "sprintf()" der Standard-Bibliothek 
<stdio.h>.

Atmel hat wohl per Supportanfrage bestätigt, dass dies ein 
Fehler/Problem ist. Siehe auch folgenden Link:
http://www.avrfreaks.net/index.php?name=PNphpBB2&f...

Als Ausweg kann man hier die Datei "printf-stdarg.c" benutzen. Dort ist 
die gewünschte sprintf-Funktion enthalten.
Allerdings wird anscheinend nur die Integerformatierung unterstützt.

Gruß, Benjamin

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.