Ram-Bereich PIC 18F2550

Gast #2558718
Lesenswert?

Hallo,
ich habe eine Frage zu dem PIC 18f2550. Und zwar hat dieser laut 2048 
GPR´s. Doch kann es sein, dass ich diese gar nicht alle benutzen kann? 
Denn wenn ich diese beschreiben möchte, sagt mir mein C18 Compiler ab 
der vierten Bank, dass diese Bereiche für Stack etc. reserviert seien. 
Kann das sein? Stehen mir wirklich nur die ersten 2,5 der 8 Bänke (also 
~ 670 Variablen) zur Verfügung?

LG Hubert
#2558740
Lesenswert?

Ins Datenblatt hast du aber schon mal geschaut, oder?

Banks 4 through 7 of the data memory are actually
mapped to special dual port RAM. When the USB
module is disabled, the GPRs in these banks are used
like any other GPR in the data memory space.

When the USB module is enabled, the memory in these
banks is allocated as buffer RAM for USB operation.
This area is shared between the microcontroller core
and the USB Serial Interface Engine (SIE) and is used
to transfer data directly between the two.
Gast #2558754
Lesenswert?

Sowet so gut, aber die 3. Bank müsste mir aber dann zur Vefügung stehen. 
Laut Datenblatt ist der "STACK" nur 32 Byte groß, ich sollte also noch 
über 220 Byte zur Verfügung haben. Doch C18 steht mir nicheinmal 1 
einziges Byte ab adresse 0x300 zu?

LG Hubert
Gast #2558777
Lesenswert?

Du kannst dir eine eigene Linker Datei basteln

DATABANK   NAME=gpr2       START=0x200          END=0x2FF
DATABANK   NAME=gpr3       START=0x300          END=0x3FF

STACK SIZE=0x100 RAM=gpr3

Das änderst du dann in

DATABANK   NAME=gpr2       START=0x200          END=0x37F
DATABANK   NAME=gpr3       START=0x380          END=0x3FF

STACK SIZE=0x80 RAM=gpr3

Ob du dann mit dem Stack hinkommst musst du selber probieren.
Gast #2559244
Lesenswert?

Okay und woher weiss ich wieviel Speicher der STACK enötigit, muss ich 
das ausprobierebn ob sich das Programm aufhängt??
Un noch eine Frage, darf ich die größe der Bänke einfach so beliebig 
verändern, könnte ich auch eine 1500 Byte große Bank erstellen und die 
anderen einfach weglassen?

LG Hubert

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