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)
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