Ich verwende einen erweiterten 8051 Kern. Mit 256 Bytes internem RAM und
2048 Bytes externem RAM.
Ich habe Testweise auch xram-loc 0x8000 angegeben. Im .mem File ändert
sich dadurch garnichts?! Mit xram-size wird laut Kompilerbeschreibung
nur eine Überprüfung der Größe ermöglicht.
Hab jetzt mit der Ausgabe über UART einige Tests gemacht.
uint8_t und volatile uint8_t Variablen kann ich Ausgeben wenn sie lokal
global oder in einem Array (lokal oder global) sind.
xdata uint8_t kann ich nur fehlerfrei ausgeben wenn sie lokal und nicht
in einem Array sind (warum auch immer?). xdata volatile uint8_t kann ich
garnicht fehlerfrei ausgeben.
Ich habe das gefühl das ich entweder mit der Initialisierung des
externen Speichers was nicht stimmt oder ich sonst irgendein
Verständnissproblem hab oder die Compileroptionen irgendwo überschrieben
werden.
Mein mem File:
Internal RAM layout:
0 1 2 3 4 5 6 7 8 9 A B C D E F
0x00:|0|0|0|0|0|0|0|0|b|b|b|b|b|b|c|d|
0x10:|d|d|d|d|d|d|d|d|d|g|h|Q|Q|Q|Q|Q|
0x20:|B|B|B|B|T|a|a|a|a|a|a|a|a|a|a|a|
0x30:|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|a|
0x40:|a|a|a|a|a|a|a|a|a|a|a|a|a|a|e|e|
0x50:|e|e|e|e|e|e|f|f|f|f|f|f|f|f|f|f|
0x60:|f|f|i|i|i|i|i|i|i|i|i|i|i|i|i|i|
0x70:|i|i|i|i|i|i|i|i|i|i|i|I|I|I|I|I|
0x80:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|
0x90:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|
0xa0:|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|I|
0xb0:|I|I|I|I|I|I|I|I|I|I|I|I|I|S|S|S|
0xc0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xd0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xe0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0xf0:|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|S|
0-3:Reg Banks, T:Bit regs, a-z:Data, B:Bits, Q:Overlay, I:iData,
S:Stack, A:Absolute
Stack starts at: 0xbd (sp set to 0xbc) with 67 bytes available.
Other memory:
Name Start End Size Max
---------------- -------- -------- -------- --------
PAGED EXT. RAM 0 256
EXTERNAL RAM 0x0000 0x0002 3 65536
ROM/EPROM/FLASH 0x0000 0x19ab 6572 65536
Noch wer eine Idee?