No, there are only 256 bytes.
The upper 128 when accessed as direct access are the SFR's (Port, Peripheral Registers, etc.)
When accessed in indirect mode you get the RAM.
SDCC knows how to access it depending on what you use (Register or variable).

Ori Idan

On Nov 12, 2007 8:22 AM, Ulhas Vaidya <> wrote:

I request help regarding usage of internal ram. The controller is AT89C55WD

The data sheet reads
"The AT89C55WD implements 256 bytes of on-chip RAM. The upper 128
bytes occupy a parallel address space to the Special Function
Registers. That means the upper 128 bytes have the same addresses as
the SFR space but are physically separate from SFR space. When an
instruction accesses an internal location above address 7FH, the
address mode used in the instruction specifies whether the CPU
accesses the upper 128 bytes of RAM or the SFR space. Instructions
that use direct addressing access SFR space."

Does it mean that there are actually 384 locations (256+128)
available? If yes, how to use it in SDCC. I have tried --iram-size
--stack-loc and --stack-size but no avail. Is the stack-loc option
broken? I am using version 2.6.5 #4735


Ulhas Vaidya
Cell No: 098695 74699

This email is sponsored by: Splunk Inc.
Still grepping through log files to find problems?  Stop.
Now Search log events and configuration files using AJAX and a browser.
Download your FREE copy of Splunk now >>
Sdcc-user mailing list

ספרים וסיפורים שכתבתי: