kurt.m.sanger-qa2vv93yo6iavxtiumw...@public.gmane.org wrote: > We was compiling fine, made a few additions, and now we're out of room. > We are using a Cypress CY7C68013 with 256 bytes of iram and don't > believe we should be out of room.
Check the lst file for the internal ram data section. You can see which functions are allocated parameters to iram. When you find one that has a lot (or just one too many even), you can add __reentrant to that function to allocate those parameters to the stack instead of to the iram space. -Dennis > > Exact error message is "?ASlink-Error-Insufficient space in data memory. > 9 bytes short." > > Link command line is in a dos batch file. carrot (^) does a line extend; > > sdcc -mmcs51 --model-small --iram-size 256 --idata-loc 256 ^ > --stack-loc 0xA0 --no-pack-iram ^ > --code-loc 0x0500 --xram-loc 0x3600 ^ > -L c:\SDCC\MyCode\EZ-USB_Lib -l EZUSB -I C:\SDCC\Include ^ > fw.rel myStart.rel dscr.rel D2A_A2D.rel gpif_D2A_A2D.rel ^ > crtpagesfr.rel myInit.rel myErrorCode.rel > > We've set iram size to 256 but it doesn't appear that the compiler will > let me use it for data memory. Without the stack location change we get > an error that we were 14 bytes short. Is there a compiler limit that > does not allow for more than 128 bytes of variables? Added the no pack > iram option when we moved the stack to no avail. We'ld like to use pack > to get the register space back but then it doesn't let us move the stack > into the upper 128 bytes? It seems a shame to have 256 bytes of RAM and > not be able to have the compiler assign it. > > The last thing tried was to pack, eliminate using 3, and move the stack > to 0x7f, 0x7e, and 0xa0. With packing the stack move doesn't appear to > work and its allocated to 0x0000 when the data memory is "out of room". > The iram size doesn't seem to allow the stack to be placed above 0x80 > when pack is enabled. > > Any help is welcome. Thanks. (otherwise we'll have to eliminate a few > variables, using 2, etc., or maybe assign fixed addresses for a few > variables in the upper 128 bytes, then assign the stack in the upper 128 > bytes, and use the no pack iram option.) > > sdcc version is > SDCC : mcs51/gbz80/z80/avr/ds390/pic16/pic14/TININative/xa51/ds400/hc08 > 2.9.2 #5524 (Sep 28 2009) (MINGW32) > > Running under Windows XP. > > *Kurt M. Sanger* > Research Scientist > OCTO US KRL DSTR APPLIED PHYSICS > > Eastman Kodak Company > 66 Eastman Avenue > Rochester, NY 14650-2109 > _ > __kurt.m.sanger-qa2vv93yo6iavxtiumw...@public.gmane.org_ > <mailto:kurt.m.sanger-qa2vv93yo6iavxtiumw...@public.gmane.org> > Office: 585 477-6761 _ > __www.kodak.com_ <http://www.kodak.com/> > > > ------------------------------------------------------------------------ > > ------------------------------------------------------------------------------ > Return on Information: > Google Enterprise Search pays you back > Get the facts. > http://p.sf.net/sfu/google-dev2dev > > > ------------------------------------------------------------------------ > > _______________________________________________ > Sdcc-user mailing list > sdcc-user-5nwgofrqmnerv+lv9mx5uipxlwaov...@public.gmane.org > https://lists.sourceforge.net/lists/listinfo/sdcc-user ------------------------------------------------------------------------------ Return on Information: Google Enterprise Search pays you back Get the facts. http://p.sf.net/sfu/google-dev2dev _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user