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

L30 ERROR:MEMORY SPACE OVERLAP

Hi,
Could you help me please. Do you know how this offset is written without using "_at_" keywords.
this developpment compiled and run properly on an older compiler (CC51).It is using 2 bank register, signal and serial interrupt, and is coded in asm with C. I link with LX51.

the MAP file generated indicate this:
<

START STOP LENGTH ALIGN RELOC MEMORY CLASS SEGMENT NAME
* * * * * * * * * * * C O D E M E M O R Y * * * * * * * * * * * * *
000582H 000584H 000003H --- OFFS.. CODE ?CO?LETM?14
*** OVERLAP ***
000583H 000585H 000003H --- OFFS.. CODE ?CO?LETM?15

>
ROM:from 0x0000 to: 0x8000
RAM:from 0x0000 to: 0x2000
I even change the start of ROM (to see) and these adresses and error stay the same.

I don't understand this problem.
Thanks
(nota: I'm french)

Parents
  • I think that you understand the meaning, namely that the compiler imposes addresses to the program on constants, apparently related to the segmentation, as if I had coded with the keyword "_ At _". But nowhere in my sources I do not use this keyword, nor in .C neither in .A51.

    The manual (assembler p364) tells that the area is occuped by several segment.
    My segments was declared as:
    LETM_PRT SEGMENT BIT ; ports
    LETM_BA SEGMENT DATA BITADDRESSABLE ;
    LETM_BI SEGMENT BIT ;
    LETM_DA SEGMENT DATA ;
    BB2_XD SEGMENT XDATA PAGE ; buffer
    BC2L_XD SEGMENT XDATA PAGE ; buffer
    BC2E_XD SEGMENT XDATA PAGE ; buffer
    BB3_XD SEGMENT XDATA PAGE ; buffer
    BC3L_XD SEGMENT XDATA PAGE ; buffer
    BC3E_XD SEGMENT XDATA PAGE ; buffer
    LETM_RO SEGMENT CODE PAGE ;
    LETM_XD SEGMENT XDATA PAGE ;
    LETM_PR SEGMENT CODE ; code

Reply
  • I think that you understand the meaning, namely that the compiler imposes addresses to the program on constants, apparently related to the segmentation, as if I had coded with the keyword "_ At _". But nowhere in my sources I do not use this keyword, nor in .C neither in .A51.

    The manual (assembler p364) tells that the area is occuped by several segment.
    My segments was declared as:
    LETM_PRT SEGMENT BIT ; ports
    LETM_BA SEGMENT DATA BITADDRESSABLE ;
    LETM_BI SEGMENT BIT ;
    LETM_DA SEGMENT DATA ;
    BB2_XD SEGMENT XDATA PAGE ; buffer
    BC2L_XD SEGMENT XDATA PAGE ; buffer
    BC2E_XD SEGMENT XDATA PAGE ; buffer
    BB3_XD SEGMENT XDATA PAGE ; buffer
    BC3L_XD SEGMENT XDATA PAGE ; buffer
    BC3E_XD SEGMENT XDATA PAGE ; buffer
    LETM_RO SEGMENT CODE PAGE ;
    LETM_XD SEGMENT XDATA PAGE ;
    LETM_PR SEGMENT CODE ; code

Children
No data