From: Peter K. <pe...@pk...> - 2008-05-22 17:04:21
|
Hi all, Is it possible to define multiple xdata segments? I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and 0x3000-0x3FFF. Is it possible to tell sdcc to use this two segments? Is it possible to define memory allocation on source file basis? foo.c uses segment at 0x1000 bar.c uses segment at 0x3000 Basically I need multiple --xdata-loc/--xram-size definitions. Cheers, Peter Kuhar -- http://www.pkuhar.com/ skype: pkuhar |
From: Maarten B. <sou...@ds...> - 2008-05-22 19:34:56
|
Hello Peter, The only solution I can think of is to put an absolute located block in the 'forbidden' area. This is best done in asm. .area SKIP1 (XDATA,ABS) .org 0x2000 .ds 0x1000 HTH, Maarten > Hi all, > > Is it possible to define multiple xdata segments? > I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and 0x3000-0x3FFF. > Is it possible to tell sdcc to use this two segments? > > Is it possible to define memory allocation on source file basis? > foo.c uses segment at 0x1000 > bar.c uses segment at 0x3000 > > Basically I need multiple --xdata-loc/--xram-size definitions. > > Cheers, > Peter Kuhar > > > -- > http://www.pkuhar.com/ > skype: pkuhar > |
From: Peter K. <pe...@pk...> - 2008-05-22 20:20:39
|
Hi, The problem is that booth areas can not be used for the same purpose. One area is preserved during low power mode and the other is not. Would a patch to sdcc that would allow to specify multiple xdata segments be considered for main branch? I'm thinking of implementing it. Something like "--xram-segment XDATAx" and then -Wl -bXDATA1"=0x1000 at linker Cheers, Peter Maarten Brock wrote: > Hello Peter, > > The only solution I can think of is to put an absolute > located block in the 'forbidden' area. This is best done > in asm. > > .area SKIP1 (XDATA,ABS) > .org 0x2000 > .ds 0x1000 > > HTH, > Maarten > > >> Hi all, >> >> Is it possible to define multiple xdata segments? >> I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and 0x3000-0x3FFF. >> Is it possible to tell sdcc to use this two segments? >> >> Is it possible to define memory allocation on source file basis? >> foo.c uses segment at 0x1000 >> bar.c uses segment at 0x3000 >> >> Basically I need multiple --xdata-loc/--xram-size definitions. >> >> Cheers, >> Peter Kuhar >> >> >> -- >> http://www.pkuhar.com/ >> skype: pkuhar >> >> > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: Peter K. <pe...@pk...> - 2008-05-24 06:31:34
|
On Thu, May 22, 2008 at 9:34 PM, Maarten Brock <sou...@ds...> wrote: > The only solution I can think of is to put an absolute > located block in the 'forbidden' area. This is best done > in asm. > > .area SKIP1 (XDATA,ABS) > .org 0x2000 hereiam: > > .ds 0x1000 I tried this idea. I've made a restrict.asm file and put the above lines in it. Then it was linked with the rest of the project. The region 0x2000-0x3000 is still populated with other XSEG variables. This is what the map file says(i've added a label "hereiam"): Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ SKIP12000 0000 1000 = 4096. bytes (ABS,CON,XDATA) . . 0D:0000 s_SKIP1 0D:0000 s_SKIP12000 0D:2000 hereiam > > > HTH, > Maarten > > > Hi all, > > > > Is it possible to define multiple xdata segments? > > I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and > 0x3000-0x3FFF. > > Is it possible to tell sdcc to use this two segments? > > > > Is it possible to define memory allocation on source file basis? > > foo.c uses segment at 0x1000 > > bar.c uses segment at 0x3000 > > > > Basically I need multiple --xdata-loc/--xram-size definitions. > > > > Cheers, > > Peter Kuhar > > > > > > -- > > http://www.pkuhar.com/ > > skype: pkuhar > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > -- http://www.pkuhar.com/ skype: pkuhar |
From: Maarten B. <sou...@ds...> - 2008-05-22 21:31:05
|
Peter, A patch to specify a different xdata segment on the command line could be accepted. I prefer --xdataseg as it resembles the existing --constseg and --codeseg. But beware that it would be impossible to combine with the current xdata initialization. I think an implicit --no- xinit-opt is required when using a non-standard xdata segment. Maarten > Hi, > > The problem is that booth areas can not be used for the same purpose. > One area is preserved during low power mode and the other is not. > Would a patch to sdcc that would allow to specify multiple xdata > segments be considered for main branch? I'm thinking of implementing it. > Something like "--xram-segment XDATAx" and then -Wl -bXDATA1"=0x1000 at > linker > > Cheers, > Peter > > Maarten Brock wrote: > > Hello Peter, > > > > The only solution I can think of is to put an absolute > > located block in the 'forbidden' area. This is best done > > in asm. > > > > .area SKIP1 (XDATA,ABS) > > .org 0x2000 > > .ds 0x1000 > > > > HTH, > > Maarten > > > > > >> Hi all, > >> > >> Is it possible to define multiple xdata segments? > >> I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and 0x3000-0x3FFF. > >> Is it possible to tell sdcc to use this two segments? > >> > >> Is it possible to define memory allocation on source file basis? > >> foo.c uses segment at 0x1000 > >> bar.c uses segment at 0x3000 > >> > >> Basically I need multiple --xdata-loc/--xram-size definitions. > >> > >> Cheers, > >> Peter Kuhar > >> > >> > >> -- > >> http://www.pkuhar.com/ > >> skype: pkuhar > >> > >> > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > Sdcc-user mailing list > > Sdc...@li... > > https://lists.sourceforge.net/lists/listinfo/sdcc-user > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |
From: Maarten B. <sou...@ds...> - 2008-05-24 07:31:49
|
Peter, Can you please try again with the latest snapshot? I fixed something in the linker some time ago regarding absolute segments. I'm not sure if this is related though. Maarten > On Thu, May 22, 2008 at 9:34 PM, Maarten Brock <sou...@ds...> > wrote: > > > The only solution I can think of is to put an absolute > > located block in the 'forbidden' area. This is best done > > in asm. > > > > .area SKIP1 (XDATA,ABS) > > .org 0x2000 > > hereiam: > > > > > .ds 0x1000 > > > I tried this idea. I've made a restrict.asm file and put the above lines in > it. Then it was linked with the rest of the project. > The region 0x2000-0x3000 is still populated with other XSEG variables. > > This is what the map file says(i've added a label "hereiam"): > > Area Addr Size Decimal Bytes (Attributes) > -------------------------------- ---- ---- ------- ----- ------------ > SKIP12000 0000 1000 = 4096. bytes > (ABS,CON,XDATA) > > . > . > 0D:0000 s_SKIP1 > 0D:0000 s_SKIP12000 > 0D:2000 hereiam > > > > > > > > > > HTH, > > Maarten > > > > > Hi all, > > > > > > Is it possible to define multiple xdata segments? > > > I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and > > 0x3000-0x3FFF. > > > Is it possible to tell sdcc to use this two segments? > > > > > > Is it possible to define memory allocation on source file basis? > > > foo.c uses segment at 0x1000 > > > bar.c uses segment at 0x3000 > > > > > > Basically I need multiple --xdata-loc/--xram-size definitions. > > > > > > Cheers, > > > Peter Kuhar > > > > > > > > > -- > > > http://www.pkuhar.com/ > > > skype: pkuhar > > > > > > > > > > > ------------------------------------------------------------------------- > > This SF.net email is sponsored by: Microsoft > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > _______________________________________________ > > Sdcc-user mailing list > > Sdc...@li... > > https://lists.sourceforge.net/lists/listinfo/sdcc-user > > > > > > -- > http://www.pkuhar.com/ > skype: pkuhar > |
From: Peter K. <pe...@pk...> - 2008-05-26 06:50:56
|
Maarten, The snapshot doesn't work as expected either. I've tested with 2.7.0 2.8.0 and may 25. snapshot. 2.7 and 2.8 output is the same. Snapshot however gives an "?ASlink-Error-Insufficient EXTERNAL RAM memory.". The test folder is at http://download.modula.si/random/sdcc_test.tar.bz2 Map files from different versions are at http://download.modula.si/random/index.php?dir=sdcc_test The xdata area is 0xE000-0xFFFF and the area I've wanted to exclude was 0xF000-0xF0FF - Peter On Sat, May 24, 2008 at 9:31 AM, Maarten Brock <sou...@ds...> wrote: > Peter, > > Can you please try again with the latest snapshot? I > fixed something in the linker some time ago regarding > absolute segments. I'm not sure if this is related > though. > > Maarten > > > On Thu, May 22, 2008 at 9:34 PM, Maarten Brock <sou...@ds... > > > > wrote: > > > > > The only solution I can think of is to put an absolute > > > located block in the 'forbidden' area. This is best done > > > in asm. > > > > > > .area SKIP1 (XDATA,ABS) > > > .org 0x2000 > > > > hereiam: > > > > > > > > .ds 0x1000 > > > > > > I tried this idea. I've made a restrict.asm file and put the above lines > in > > it. Then it was linked with the rest of the project. > > The region 0x2000-0x3000 is still populated with other XSEG variables. > > > > This is what the map file says(i've added a label "hereiam"): > > > > Area Addr Size Decimal Bytes > (Attributes) > > -------------------------------- ---- ---- ------- ----- > ------------ > > SKIP12000 0000 1000 = 4096. bytes > > (ABS,CON,XDATA) > > > > . > > . > > 0D:0000 s_SKIP1 > > 0D:0000 s_SKIP12000 > > 0D:2000 hereiam > > > > > > > > > > > > > > > > > HTH, > > > Maarten > > > > > > > Hi all, > > > > > > > > Is it possible to define multiple xdata segments? > > > > I have 2 seperate segments in xdata. Like 0x1000-0x1FFF and > > > 0x3000-0x3FFF. > > > > Is it possible to tell sdcc to use this two segments? > > > > > > > > Is it possible to define memory allocation on source file basis? > > > > foo.c uses segment at 0x1000 > > > > bar.c uses segment at 0x3000 > > > > > > > > Basically I need multiple --xdata-loc/--xram-size definitions. > > > > > > > > Cheers, > > > > Peter Kuhar > > > > > > > > > > > > -- > > > > http://www.pkuhar.com/ > > > > skype: pkuhar > > > > > > > > > > > > > > > > > ------------------------------------------------------------------------- > > > This SF.net email is sponsored by: Microsoft > > > Defy all challenges. Microsoft(R) Visual Studio 2008. > > > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > > > _______________________________________________ > > > Sdcc-user mailing list > > > Sdc...@li... > > > https://lists.sourceforge.net/lists/listinfo/sdcc-user > > > > > > > > > > > -- > > http://www.pkuhar.com/ > > skype: pkuhar > > > > > > ------------------------------------------------------------------------- > This SF.net email is sponsored by: Microsoft > Defy all challenges. Microsoft(R) Visual Studio 2008. > http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/ > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > -- http://www.pkuhar.com/ skype: pkuhar |