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

String initialization in xdata

Hi

I am trying to save some code sapce
I used the STRING (XDATA) direcitve to move my constant string to xdata ,I also set my XCONST segment to 0x8000-0x8ffff.
I notice that my code size is smaller but I coul find image that describe the data RAM (including the strings).

Does the LX51 linker produce XDATA image file ?

Here is part of my map file , you can see hat I have to XCONST segments buf I couldnt find the segments in my hex file

any ideas ???

* * * * * * * * * * * X D A T A M E M O R Y * * * * * * * * * * * * *
008000H 008034H 000035H BYTE UNIT XCONST ?XC?MAIN_DEMO
008035H 00805EH 00002AH BYTE UNIT XCONST ?XC?DEBUG
00805FH 008FFFH 000FA1H --- --- **GAP**
009000H 00AF49H 001F4AH BYTE UNIT XDATA ?XD?PRINT
00AF4AH 00AF75H 00002CH BYTE UNIT XDATA _XDATA_GROUP_
00AF76H 00AF8BH 000016H BYTE UNIT XDATA ?XD?MAIN_DEMO

Parents
  • The Hex file the linker generate does not include the address range of the XCONST ...

    for example :
    in my map file
    BASE START END USED MEMORY CLASS
    ==========================================================
    X:000000H X:009000H X:00FFFFH 001F82H XDATA
    X:000000H X:009000H X:00FFFFH HDATA
    X:000000H X:008000H X:008FFFH 000072H XCONST
    C:000000H C:000000H C:00FFFFH 00068AH CODE
    I:000000H I:000000H I:0000FFH 000001H IDATA
    I:000000H I:000000H I:00007FH 00000DH DATA
    I:000020H.0 I:000020H.0 I:00002FH.7 000001H.1 BIT

    you can see XCONST start at 0x8000 and CODE start at 0x0 in the hex file I can see only the code address range (i.e from 0 to 68A) I can see memory of 0x8000

Reply
  • The Hex file the linker generate does not include the address range of the XCONST ...

    for example :
    in my map file
    BASE START END USED MEMORY CLASS
    ==========================================================
    X:000000H X:009000H X:00FFFFH 001F82H XDATA
    X:000000H X:009000H X:00FFFFH HDATA
    X:000000H X:008000H X:008FFFH 000072H XCONST
    C:000000H C:000000H C:00FFFFH 00068AH CODE
    I:000000H I:000000H I:0000FFH 000001H IDATA
    I:000000H I:000000H I:00007FH 00000DH DATA
    I:000020H.0 I:000020H.0 I:00002FH.7 000001H.1 BIT

    you can see XCONST start at 0x8000 and CODE start at 0x0 in the hex file I can see only the code address range (i.e from 0 to 68A) I can see memory of 0x8000

Children