Selbes Program geht auf dem einen µC, am andern nicht

Gast #2073395
Lesenswert?

Hallo!

Hatte schon jemand ein ähnliches Problem?
Ich habe einen C-Code mit dem St7-Toolset und dem Cosmic C Compiler für 
ST72F521r9 Controller geschrieben. Diesen Code habe ich dann auf 7 
baugleiche Geräte aufgespielt, auf denen allen (!) vorher bereits ein in 
Assembler geschriebenes Programm fehlerfrei lief. Die HW funktioniert 
also. Nach dem Programmieren mit der neuen SW funktionieren nur mehr 4 
Geräte mit dem neuen Programm, die anderen 3 nicht (am LCD, welcher 
direkt vom µC angesteuert wird, erscheinen kryptische Zeichen, Taster 
triggern keine LEDs/Piezobuzzer mehr, etc.)

Ich hab die 7 Geräte direkt hintereinander geflasht - also angesteckt, 
geflasht, abgesteckt, nächstes dran und so weiter. Es hat sich 
(offensichtlich) kein Parameter verändert. Es ist auch nicht so, dass 
nur die ersten oder letzten 3 nicht gehen. Ab und zu ging eins nicht.

Woran kann dies liegen? Selbes Programm, gleiche Hardware, 3 von 7 gehn 
nicht.
Danke für Hilfe,
Sebastian
Gast #2073451
Lesenswert?

LCD-Display und Tastenerfassung?

Klappt die LCD-Initialisierung nicht, ist vielleicht die Pause
zwischen den Initialisierungspulsen zu knapp.

Sind die Display-Routinen auch noch (mit Abfragen zum Display)
"interaktiv"? - Vielleicht hängt sich das Programm dort auf,
weil das nicht-initialisierte Display sich nicht zurückmeldet...
Gast #2075004
Lesenswert?

Das mit dem Code-limit könnte ein guter Hinweis sein. Der Compiler ist 
limitiert auf 16k Code, und da bin ich genau dran. Musste auch schon 
Konstanten, die ich anfangs in Variablen gespeichert hatte, durch 
#defines ersetzen und andere Kürzungen vornehmen, um den Code-rahmen 
nicht zu sprengen. Der µC selbst hat jedoch 60k Flash ROM. Werde mal 
schaun, ob ich mit gekürztem Code etwas erreiche.

Mit LCD inits hatte ich am Anfang Probleme, hab dann 500ms - 1s Pausen 
dazwischen gelassen, ab dann gings immer. Display Routinen sind nur 
one-way.
Nicht initialisierte Variablen kann ich fast ausschließen, im Zuge der 
Code-effizienzsteigerung werde ich aber nochmal genau nachprüfen.


Danke schön für die Anregungen,
Sebastian

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren