Hallo zusammen,
ich wollte mit ein sd2iec auf Basis eines Arduino Mega 2560 bauen (nun sie sind unschlagbar billig beim China-Mann und ich hab einige rumliegen bzw. in meinem Haus verbaut) und gedacht das die Hardware-Adaption ja nicht so schwer sein kann. Ist ja sehr sauber aus dem Code herausgelöst!
Aber irgendetwas scheine ich zu übersehen. Ich versuche in main.c diverse Meldungen auf der seriellen Schnittstelle (mit 9600 Baud) auszugeben, nur läuft mir der Code mehr oder weniger zuverlässig in ein Deadlock beim uart_flush(). Ohne uart_flush() habe ich keinen Deadlock aber dafür so gut wie keine Ausgaben, das Meiste wird dann verschluckt. Sporadische Ausgaben habe ich hinbekommen.
Der Arduino hat einen 16MHz Quarz aufgelötet, daher habe ich das auch als Frequenz angenommen. Da in diversen Kommentaren jedoch steht das einiges auf 8MHz hart codiert ist habe ich es auch mit dem Programmieren des internen Dividers versucht, das hat aber auch nicht funktioniert (also in der config 8MHz eingestellt und in board_init() in arch-config.h den Divider auf 2 gesetzt). Meine Vermutung war das die Software bei 8MHz am Besten getestet ist.
Meine Code-Änderungen habe ich in das GIT-Repository https://github.com/sans-ltd/iec gepusht.
Dort liegen auch meine Skripte, mit denen ich den Arduino füttere, rum.
Hat jemand von Euch eine Idee, wieso der Deadlock auftritt?
Ein Hardware-Defekt ist es jedenfalls nicht, habe es mit zwei Arduinos (einer davon frisch aus der ESD Tüte) getestet. Der andere ist mein Dev-Arduino, der auch OK sein sollte.
Gruß
Florian