tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
1
ZUGRIFFE
495
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Schnoogle Schnoogle ist offline Mitglied
    Registriert seit
    Feb 2010
    Beiträge
    10
    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
    Geändert von Schnoogle (09.02.10 um 20:12 Uhr)
     

  2. #2
    Avatar von Enumerator
    Enumerator Enumerator ist offline Mitglied Kamel
    Registriert seit
    Jan 2007
    Ort
    Schreibtisch
    Beiträge
    525
    Blog-Einträge
    2
    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
     
    Zitat Zitat von Aba Assa
    "Zitate sind so etwas wie Outsourcing des Geistes."
    just-lyrics.org :: my-lyrics.org

Ähnliche Themen

  1. Segmentation fault
    Von Vippis im Forum C/C++
    Antworten: 21
    Letzter Beitrag: 05.12.10, 22:56
  2. Segmentation Fault
    Von flogy92 im Forum C/C++
    Antworten: 23
    Letzter Beitrag: 28.01.09, 09:31
  3. Segmentation fault
    Von stain im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 28.04.08, 18:34
  4. C: Segmentation fault
    Von Westbär im Forum C/C++
    Antworten: 3
    Letzter Beitrag: 05.07.07, 10:46
  5. MC-Fehler Segmentation Fault?
    Von piti66 im Forum Linux & Unix
    Antworten: 0
    Letzter Beitrag: 06.07.05, 21:06