This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

XDATA Range Error

I'm using the latest (Evaluation) version of UVision2. I have a project in which the EPROM and RAM are tied together. The EPROM is at 0-7fffh and the RAM at 8000h-FFFFh. In Target Options I get the error (XDATA memory range out of bounds) if I try to set up 8000h as a RAM starting address.

Please Help
Brian

Parents
  • "The EPROM is at 0-7fffh and the RAM at 8000h-FFFFh."

    Remember that the 8051 and uVision don't know or care about what actual memory devices you may have in your external hardware: ROM, RAM, Whatever - it's all irrelevant.
    All they know is that Instruction fetches and MOVC instructions will read CODE space, and MOVX instructions can read or write XDATA space. How you map the CODE and XDATA spaces into physical memory devices is entirely down to your hardware design.

    So, when you say, "RAM at 8000h-FFFFh."
    Do you mean that XDATA addresses X:0x0000-0x7FFF map to physical addresses 0x8000-FFFF in your external memory map?
    Or XDATA addresses X:0x0000-0x7FFF are not used, and XDATA addresses X:0x8000-0xFFFF map to physical addresses 0x8000-FFFF in your external memory map?

    Or what?

Reply
  • "The EPROM is at 0-7fffh and the RAM at 8000h-FFFFh."

    Remember that the 8051 and uVision don't know or care about what actual memory devices you may have in your external hardware: ROM, RAM, Whatever - it's all irrelevant.
    All they know is that Instruction fetches and MOVC instructions will read CODE space, and MOVX instructions can read or write XDATA space. How you map the CODE and XDATA spaces into physical memory devices is entirely down to your hardware design.

    So, when you say, "RAM at 8000h-FFFFh."
    Do you mean that XDATA addresses X:0x0000-0x7FFF map to physical addresses 0x8000-FFFF in your external memory map?
    Or XDATA addresses X:0x0000-0x7FFF are not used, and XDATA addresses X:0x8000-0xFFFF map to physical addresses 0x8000-FFFF in your external memory map?

    Or what?

Children