Data Abort Exception durch Library

Gast #367311
Lesenswert?

Hallo,

ich bekomme ein Data Access Abort Exception innerhalb eine sprintf
Aufrufes bei GNUARM . Ich habe die Stelle gefunden, sie liegt innerhalb
der Libray.

Es ist     str r0,[r10,#0x4]

wobei r10 gleich 0xC0 ist.

Wie bekomme ich raus was ich falsch mache bzw. was zur Behebung zu tun
ist?

Danke
Gast #367313
Lesenswert?

Der Formatstring löst manchmal gar seltsame Sachen aus ;-)

Sind deine Argumente beim Aufruf der sprintf Funktion korrekt? Sind
die benutzen Formatangaben im Formatstring implementiert und passen die
restlichen Argumente dazu? Ist der Zielpuffer ausreichend gross?
Gast #367314
Lesenswert?

Ähm, bei Verdacht auf Fehler im GCC oder der Library und/oder zur
Steigerung der Anzahl nützlicher und hilfreicher Antworten...

Hilft es ein möglichst kleines, aber komplettes Codebeispiel inkl.
Makefile zu posten, damit der Fehler bei Dritten ggf. nachvollziehbar
wird.

Hilft es anzugeben, welche Version des GCC bzw. der Library benutzt
wird.
Gast #367316
Lesenswert?

Was bitte ist hier falsch?
       ....
  sprintf (line2,"  %#5.3f V   ",3.2 );
       ....

(hierbei handelt es sich schon um eine vereinfachte Version, 3.2
 ist nur dummy, geht aber auch nicht. line2 ist ausrechend lang)
Weiter sprintf Aufrufe davor und danach ohne fp Formatschlüssel
funktionieren auch einwandfrei.

Ein anderer ARM C-Compiler verabeitet diese Zeile problemlos.

Danke
Gast #367318
Lesenswert?

Um diesen Thread abzuschliessen:

Die Problemursache war eine Änderung im Startup-Code , die ICH (mea
culpa!) dem roty vorgeschlagen hatte und die das wichtige Symbol end
aus der Heap-Verwaltung rausgekickt hat... und u.a. die Funktion
sprintf verlässt sich halt auf eine funktionierende Heap-Verwaltung...

THX an Martin Thomas für das Finden der üblen Bugursache und den Report
im en.mikrocontroller.net Forum

Stefan

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren