Forum: Mikrocontroller und Digitale Elektronik Silabs C8051F120 und Code Banking


von Simon Keller (Gast)


Lesenswert?

Guten Tag allerseits

Ich sitze zurzeit an einem Problem, das mir nicht ganz klar erscheint.

Obengenannter uP ersetzt ein altes Modell. Der neue SIlabs-Chip wurde 
schon vor längerer Zeit ausgewählt und eine Prototypen-Platine inkl. 
Peripherie ist auch schon vorhanden. Den uP zu wechseln kommt also nicht 
in Frage.

Ich möchte nun ein altes Programm auf dem neuen uP zum Laufen bringen. 
Dieses ist allerdings grösser als 64kB. Codeoptimierungen wurden 
durchgeführt, kleiner wird er also leider nicht mehr.

Deshalb muss ich nun mit Code-Banking arbeiten, was für mich unnötig 
kompliziert erscheint. Grundsätzlich ist es ja wünschenswert, dass ich 
auf sämltiche Speicherbereiche linear zugreifen kann. Und das der 
Compiler/Linker die Aufteilung auf die Code-Bänke übernimmt.
Nach aktuellem Kenntnisstand ist das allerdings nicht möglich und muss 
von Hand organisiert werden. Dieser Aufwand ist vielleicht zurzeit 
tragbar, aber in Zukunft wird es garantiert neue Funktionen im Programm 
geben, worauf irgendwann die ganze Banking-Geschichte neu organisiert 
werden müsste. Mühsam.

Kann die Aufteilung irgendwie automatisiert werden? Ich hoffe, ein paar 
klärende Antworten zu bekommen.

Grüsse aus der Schweiz

Simon Keller

von MC (Gast)


Lesenswert?

Es gibt auch 8051er, die mehr als 64kByte linear adressieren können.
Ein konkreter Typ fällt mir im Moment aber nicht ein.

von R. W. (quakeman)


Lesenswert?

Im Keil C51 Compiler Paket gibt es ein paar Beispiele Für Code-Banking. 
Das schöne dabei ist, daß man selber im eigenen Code nicht sehr viel 
dafür machen muß. Den größten Teil davon übernehmen eigene Routinen im 
Compiler basierend auf vorhandenen Code Bibliotheken.

Ciao,
     Rainer

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
Noch kein Account? Hier anmelden.