Forum: Mikrocontroller und Digitale Elektronik #pragma udata 0x200 klappt nicht


von Thomas W. (thomas0906)


Lesenswert?

Hallo

MPLAB mit C18 PICKIT3 DEBUG MODUS
Ich habe einen 18F4550.
Der hat ja 2048 Byte RAM.

Dabei sind die Banks ab 0x400 für USB reserviert.

Die Bank 0x300-0x3FF ist für irgendeinen STACK??? reserviert

Da bleibt ja nicht viel übrig :-(

Nun dachte ich mir, nutzt Du mal die Banks
0x100-0x1FF
0x200-0x2FF

#pragma udata name100 0x100
klappt prima, alles was danach deklariert wird, legt er ab 0x100 ab.

Dann wollte ich noch einen Block für spezielle Felder definieren mit
#pragma udata name200 0x200

Im Debug Modus sehe ich aber, daß die Daten ab Adresse 0x60 abgelegt 
werden.
Ich bekomme sie einfach nicht nach Adresse 0x200.

Im Linkerscript .lkr sind die Banks alle richtig definiert.

Woran könnte das liegen?
Wie bekomme ich bestimme Variablen nach 0x200 ???

Gruß
Thomas

von Der (Gast)


Lesenswert?

https://www.google.de/search?q=%23pragma+udata

Erste Treffer, Seite (PDF-Zähler) 23

udata scheint für "uninitialized user variables" zu sein.
idata scheint für "initialized user variables" zu sein.

Funktioniert es mit idata?

von Der (Gast)


Lesenswert?

Zusatz:
http://www.microchip.com/forums/m652722-print.aspx

Sind deine Felder größer als 256 Bytes?

von Thomas W. (thomas0906)


Lesenswert?

Hi

Die Felder sind 3 Stück mit je 20 Bytes.

Ich meine, mit
unsigned char a1[20];
hat es schon nicht geklappt.

Derzeit habe ich aber tatsächlich vorbelegt.
An das idata hab ich nicht gedacht.
Mal sehen ob das damit klappt.

Also #pragma idata name200 0x200

Danke und Gruß
Thomas

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.