Segmentation Fault

Schnoogle

Mitglied
Hallo,

ich habe mit den APIs <time.h> und <signal.h> einen Timer für ein Microcontroller-Board mit einem Power PC 604 Prozessor programmiert. Als ich es unter meiner virtuellen Maschine (x86, xubuntu) getestet habe, konnte ich das Programm fehlerfrei ausführen und habe in Abständen von 5 Sekunden etwas auf der Konsole ausgegeben.

Wenn ich es nun mit dem Cross-Compiler für Power PC kompiliere und auf dem Microcontroller Board ausführe erhalte ich einen Segmentation Fault.

Dabei erhalte ich von den Funktionen timer_create(...) und timer_settime(...) als Rückgabewert null (0). Nach meinem zeitlichen empfinden erhalte ich den Segmentation Fault erst, wenn die Timer-Funktion nach 5 Sekunden zum ersten Mal aufgerufen wird - also (ca.) 5 Sekunden nach die Funktion timer_settime(...) mit dem Rückgabewert null (0) beendet wurde.

Weiss jemand von euch evtl. wo hier das Problem liegen könnte ? Könnte es am Cross-Compiler oder dem Linux Betriebssystem auf dem Microcontrollerboard liegen ? Gibt es evtl. eine Möglichkeit die Fehlerursache mit bestimmten Tools oder Systemlogs zu bestimmen ?

Ich hoffe man kann mir Hilfestellung zu meinem Problem geben.

Viele Grüße und vielen Dank
 
Zuletzt bearbeitet:
Hi!

Höchstwahrscheinlich ist der Fehler wohl in der Callback-Funktion, also diejenige welche vom sigev_notify_function Member der sigevent Struktur referenziert wird. Vielleicht postest Du mal den Quellcode..?
Ich würde den Fehler an den Stellen suchen an denen Du Zeiger manipulierst (nicht deren referenzierte Werte) - wahrscheinlich führst Du eine Operation durch die auf dem x86 System mehr oder minder zufällig Funktioniert aber aufgrund von Speicherausrichtung und/oder dadurch bedingten Optimierungen des Compilers auf anderen Systemen Fehler verursacht.
Ach ja, vielleicht helfen Dir auch ein paar Informationen und einfache Grundregeln derartige Probleme in Zukunft zu vermeiden...

Gruß
Enum
 
Zurück