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

* OVERLAP * in XDATA space

hi all,

i'm developing a projet using an external 512K code memory and a 512K external sram. For now i'm just using the first 64k page on both chip.

since i was compiling with DW(6) linker directive, i didn't seen till now that i was full of xdata "OVERLAP" messages in the m51 file.

* * * * * * * X D A T A M E M O R Y * * * * * * *
XDATA 0000H 19B6H ABSOLUTE
* OVERLAP * XDATA 0000H 0004H ABSOLUTE
* OVERLAP * XDATA 0000H 7D4EH ABSOLUTE
* OVERLAP * XDATA 0000H 0200H ABSOLUTE
* OVERLAP * XDATA 0000H 19B6H ABSOLUTE
* OVERLAP * XDATA 0000H 0004H ABSOLUTE
* OVERLAP * XDATA 0000H 7D4EH ABSOLUTE
* OVERLAP * XDATA 0000H 0200H ABSOLUTE
* OVERLAP * XDATA 0000H 19B6H ABSOLUTE
* OVERLAP * XDATA 0000H 0004H ABSOLUTE
* OVERLAP * XDATA 0000H 7D4EH ABSOLUTE
* OVERLAP * XDATA 0000H 0200H ABSOLUTE
* OVERLAP * XDATA 0000H 19B6H ABSOLUTE
* OVERLAP * XDATA 0000H 0004H ABSOLUT

and many others.

By the way, i've used some _at_ declarations.
Hope for some help. Angelo.

  • since i was compiling with DW(6) linker directive

    Well, you shouldn't have done that, ever. Turning off warnings summarily is pretty much never a good idea. Especially not for warnings as fundamentally important as L6. I hope this nasty surprise taught you the lesson.

    That said, the memory map shown is highly irregular. That's not what usually happens, which means you must have made some mistake in your source (or linker controls). The "ABSOLUTE" annotation at the end of each XDATA segment entry feels like the most probable culprit. You apparently forced all XDATA segments to the same location: zero. I strongly doubt that's what you ever intended. Looking at the segments in more details, you also appear to have several copies of the same segment (--> equal size!) linked.