Hi Kurt, I think you misunderstand the keywords data and idata and did not fully graps the (im)possibilities of the 8051 internal ram. Data memory is only 128 bytes big and it shares space with the registers and bit variables. In the upper 128 bytes you can only have idata variables and stack. When using --pack-iram, the stack is automatically placed after all data and idata variables.
--idata-loc 256 is impossible. There are only 256 addresses (0-255) available. My recommendation is move some variables to idata/pdata/xdata. Maarten > 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. > > 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.san...@kodak.com > Office: 585 477-6761 > 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@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user