??? 11/21/06 13:18 Read: times |
#128350 - like that snippet? Responding to: ???'s previous message |
> It looks from your snippet like the linker does output symbols for the beginning and end of each segment.
No only beginning and length of each segment. > So, the next question is: can you create your own segments You can. Although currently not without falling back to inline assembly. Feature request #1600296 which was filed very shortly before your post is related. -dummy.c-------8<-------------------- void dummy_eo_xdata(void) __naked { __asm .area XSEG_DUMMY (XDATA) _eo_xdata:: ; nothing alloc'd! __endasm; } -main.c-------8<---------------------- extern unsigned char xdata eo_xdata; /* or void or an array[0] */ unsigned char xdata another_var[0x234]; void main (void) { volatile unsigned int t = (unsigned int)&eo_xdata; } then on the command line: sdcc -c dummy.c sdcc -c main.c sdcc main.rel dummy.rel gives (file main.rst) : 128 ; main.c:6: volatile unsigned int t = (unsigned int)&eo_xdata; 129 ; genCast 0062 75 08 34 130 mov _main_t_1_1,#_eo_xdata 0065 75 09 02 131 mov (_main_t_1_1 + 1),#(_eo_xdata >> 8) |