mikrocontroller.net

Forum: Compiler & IDEs Abbruch beim Funktionsaufruf


Autor: Matthias (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,

ich versuche eine Steuerung über ATmel128-Controller zu realisieren.
Das Programmieren erfolgt in C, das Kompilieren mit avr-gcc.

Dabei tritt folgendes Problem auf:
Beim Versuch selbstdefinierte Funktionen aufzurufen bricht der
Mikrocontroller den Prozeß zum Zeitpunkt des Funktionsaufrufs ab. Dies
geschieht selbst bei leeren Funktionen. Der Programmcode ohne
Funktionsaufruf läuft problemlos (=fehlerfrei).

Kennt einer von Euch das Problem? oder besser: eine Lösung?

Das gleiche Phänomen des Abbruchs tritt auch in einem Programm auf, bei
dem ich eine Endlosschleife (mit while(1), for(;;) oder goto Start)
realisieren wolte. Das entsprechende Programm habe ich als Datei
angehängt. Im vorhandenen Zustand läuft es einwandfrei, beim Einfügen
der Schleife (auf eine der oben genannten Arten) kommt es beim Beginn
der Schleife zum Abbruch.

Ich würde mich freuen, wenn mir jemand bei der Fehlerbehebung helfen
könnte.

Vielen Dank, Matthias

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
FAQ gelesen?

Vermutung #1: M103C Fuse ist nicht gelöscht...

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Jörg,

vielen Dank für die Antwort, aber irgendwie stehe ich gerade auf dem
Schlauch. Zumindest kann ich keine entsprechende Passage in den faq
finden. Wäre für einen link oder eine Beschreibung dankbar.

MfG, Matthias

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
http://www.nongnu.org/avr-libc/user-manual/FAQ.htm...

Wenn Du WinAVR hast, hast Du das auch auf Deiner Festplatte stehen.

Autor: BAB ( Kai K. ) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie jörg schon sagte ist es sehr wahrscheinlich die mega103 fuse bit.

d.h. standard mässig beim kauf vom mega128 ist die mega103 fuse bit
gesetzt und dein mega128 läuft dann im mega103 kompatiblitäts modus. du
hast dein programm aber für einen mega128 compiliert und der stack vom
mega103 liegt an einer anderen stelle im sram als der vom m128 und
somit crashed dein controller nach dem ablauf deiner funktion weil er
die rücksprungadresse an einer anderen stelle sucht.

nimm pony prog und lösche diese fuse bit.

Autor: BAB ( Kai K. ) (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nachtrag:
zum testen kompiliere dein programm mal für einen mega103 und schon
sollte dein programm laufen ohne probleme.
Dir stehen dann aber nicht alle funktionen vom m128 zur verfügung !!
Siehe datenblatt m128 !!

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.