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
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.
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
Wo wird dir denn das angezeigt? Was steht denn da wieviel RAM du insgesamt zur Verfügung hast? Wenn das stimmt, kann es dir in C doch egal sein, wo die Daten gespeichert werden.
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.
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
Kennt sich niemand damit aus? Wäre echt fantastisch wenn ich das mit den Datenregistern verstehen würde. LG Hubert
Hallo Hubert, ich kann dir leider auch keine Antwort geben. Aber ich hoffe es findet sich jemand, denn das würde mich auch interessieren. Gruß
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.