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

P87C51MX on-chip EDATA & XDATA addresses

Hi every one,

The Philips 87C51MX user's manual indicated that the on-chip EDATA ranges from 0x100 to 0xffff; which followed the IDATA.

An article found in the Keil support knowledge base (CX51: LOCATING CODE IN PHILIPS MX INTERNAL CODE MEMORY) showed the following:

---------
User Classes:
EDATA (0x7F0000-0x7F04FF), /*on-chip RAM */

HCONST (0x810000-0x84FFFF) /*off-chip Flash for 'const far' */
---------

How does the "0x7f0000" become the starting address of on-chip EDATA? And where would the on-chip XDATA start?

Thanks.
Deyon

Parents
  • I used the "far" keyword, trying to create an on-chip edata variable.

    But in the map file, the variables declared with "far" turned out to be HDATA, and is not "located" at where the EDATA should be.
    What syntax will give me a report in the map file that says: EDATA ..... my_var. ?
    It seems to get much more difficult than it should.

    When it's listed as HDATA in the map file, can I think of it as EDATA?

    Thanks.

Reply
  • I used the "far" keyword, trying to create an on-chip edata variable.

    But in the map file, the variables declared with "far" turned out to be HDATA, and is not "located" at where the EDATA should be.
    What syntax will give me a report in the map file that says: EDATA ..... my_var. ?
    It seems to get much more difficult than it should.

    When it's listed as HDATA in the map file, can I think of it as EDATA?

    Thanks.

Children