mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Probleme mit ATmega128 & RAM


Autor: Johannes Boss (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo.

Ich versuche seit einger zeit ein vorgefertigten code für eine 
SD/MMC-Kartenansteuerung und FAT16 FS von einem ATmega644P auf Atmega128 
umzumünzen.
ich hab ein JTAG ICE I (nachbau...jedoch voll fuktionsfähig) und auch 
ein ausgereiftes testboard mit aufbau.

Problem ist stressig...MCU startet und gibt mir korrekt via USART eine 
meldung über den initalisierungsstatus aus. Danach sollte das 
Intaface(SPI) für die Karte initalisierst werden und das FAT16...dazu 
kommt es jedoch meist nicht! Er springt irgendwo ins Programm oder 
startet neu. Leider ist kein System drin. Er scheint aus zufall einfach 
so zu springen.
Interrupts sind via cli() deaktiviert.

Ich hab die vermutung das der RAM probleme macht...bzw das er überläuft!
Beim Kompilieren bleiben noch 50% vom RAM über...jedoch braucht FAT sehr 
viel auslagerung...wie kann ich feststellen wie und wann der RAM 
überläuft oder der Stack crasht?

Danke schonmal im vorraus ;)

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fuses sind ok.
M102C ist nicht aktiviert.
Nur JTAG und OCD sind aktiv.

MCU Freq. ist auch korrekt. UART funktioniert auch...

Hab langzeit test via UART versuch...Lang texte und berechnungen 
ausgegeben und diese wiederholt.

Nur hab ich noch keine möglichkeut gefunden den RAM auf überlauf zu 
prüfen.

Weiß jemand wie ich bei überlauf irgendwas machen kann?

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Vielleicht hilft dir da diese Diskussion weiter, insbesondere der Tip 
von Johann L.:
Beitrag "StackViewer (RAM Rechner) für WinAVR"

Autor: Johannes (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klasse! Vielen dank an stefan!

Ich konnt die funktion problemlos implantieren und dem fehler 
schrittweise auf die schliche kommen.

Am ende war es dann ein byte array mit 512bytes das ich 3 mal hin und 
her kopiert habe und es nicht freigeeben hatte.

danke nochmal!

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.