Hallo Helmut
Die Sache ist natürlich etwas komplizierter als ich es oben geschildert habe.
Ich benutze zurzeit den P89C51RD von Phillips mit 512 KB interne extra Ram und 64KB flash code speicher (kein eeprom).
Meine Applikation hat auch etwas verzwicktes.
Abgesehen den benutzterspezifische Daten und den Programmvariablen sind im nicht flüchtige Speicher etwa 1KB.
Das Programm selbst hat eine Codegröße von knapp 60KB.
Den Stack habe ich freigehalten, da zwei Tasks geschedult wird.
Der scheduler läuft nach round robin prinzip.
Beim Taskswitchen werden die Stacks jeweils in interne extra ram hin und her kopiert.
Dabei muss noch hin und her geschaltet werden zwischen interne extra ram und externe extra ram (batterie gepufferte Ram). Beide Tasks muessen auf die gleichen Daten zugreifen (Semaphore) und der Watchdog muss auch noch bedient werden. Was bei der Laufzeit nicht so einfach ist da ein haufen Gleitkommenzahlen sowie unsigned long Zahlen berechnet werden muessen. Und und und...
Um auf den Punkt zu komme, pfeifft mein controller aus dem letzten Loch.
Alles klappt auch ganz gut und ich glaube nicht das man da noch vielmehr rauszuholen ist.
Leider hat Phillips die Produktion diesen Controler eingestellt.
Er ist zwar noch erhältlich und mein Lager ist noch voll, aber ich bin vorrausschauend für einen Ersatz der natürlich noch mehr auf den Kasten haben soll damit ich ihn noch mehr zupacken kann.
Mfg Stephan
Lesezeichen