by js222 » Fri Mar 27, 2009 12:00 am
Hallo,
ob Hardware oder Software, es scheint ein paar verschiedenen Ursachen zu geben die das Problem auslösen. Deswegen kann wohl auch niemand den einen entscheidenden Tip geben wie man das im Einzelfall wieder hinbekommt.
Die ID ist halt ein gewisser Schutz für die Entwicklungsleistung von Leuten die das Teil in kommerzielle Geräte einbauen, ein einfaches Klonen ist dann nicht mehr so einfach möglich.
Dafür schafft es manchmal Probleme während der Entwicklung.
Ich hatte das Problem bisher nur in Laboraufbauten oder wenn ich mal "auf die schnelle" neue Firmware einspiele.
Ich hab es dann immer mittels durchprobieren von 00h oder FFh und Aus/Einschalten zwischen den Versuchen hinbekommen.
Man sollte auch Windows als Fehlerquelle nicht unterschätzen, aktuell habe ich das Problem das ein Terminalprogramm nicht alle Zeichen empfängt und einfach Zeilen abschneidet (sogar relativ unabhängig von der Baudrate), irgendwo ist nach langer Uptime ein Knoten im System.
In einem Testsystem das auch automatisch die µCs programmiert und dazu immer gleiche, definierte Bedingungen schafft, hab ich dagegen noch nie einen ID-Fehler gehabt.
Zur Interrupt-Tabelle:
"VECTOR_ADR .equ 0FFFFFBDCH
Wenn ich richtig verstanden habe was du meinst muss einfach bim Programmieren darauf achten dass die Interrupt Tabelle nicht zu groß wird."
Genau, weil sie sonst in den Bereich der ID hineinragen könnte.
Wobei ich meine das ja eigentlich eine Fehlermeldung kommen müsste (aus dem Assembler). Ich würde es ja ausprobieren, will mir aber im Moment nicht die 60 Tage Testzeit versauen (zumindest solange es noch keine GCC-Unterstützung gibt), im Moment hab ich zuviele andere "Baustellen". Es war ja auch nicht das wirkliche Problem.
Jörg.