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 ;)
M103C Fuse ist kontrolliert? http://www.mikrocontroller.net/articles/AVR_Fuses#Kompatibilit.C3.A4tsfuses_und_manchmal_l.C3.A4stige_Defaults
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?
Vielleicht hilft dir da diese Diskussion weiter, insbesondere der Tip von Johann L.: Beitrag "StackViewer (RAM Rechner) für WinAVR"
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!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.