I'm compiling stuff for the Wiznet W7100 8051 varient and hit the 
dreaded "can't allocate DSEG" error. A search through the forum indicates 
that --stack-auto and/or large model may fix this. Large model alone didn't
seem to so I rebuilt from source (vi Cygwin) from a recent snap and modified
the makefile (probably incorrectly by hand, is there a more proper way via 
a build option?) to create all the -stack-auto librarys apparantly correctly.
   Compiling like this:

/usr/local/bin//sdcc -c wiz.c --model-large --stack-auto --funsigned-char
wiz.c:89: error 16: variable 'tmpEA' must be static to have storage class in ree
ntrant function

gets lots of these error messages here (I'm converting from Keil):

  volatile unsigned char xdata tmpEA;

this is fixable by adding a static as it requests:

  static volatile unsigned char xdata tmpEA;

or by

  volatile unsigned char tmpEA;

but the code which works when compiled like this (for this smaller case than
the original failure):

"/cygdrive/c/program files/sdcc"/bin/sdcc -c wiz.c --model-medium --funsigned-ch
ar

        Doesn't actually run any more (a network connection is refused by the
stack-auto compiled code). I'm just about to add printf statements to try and
figure out whats wrong (and therefore a fix) but thought I'd inquire in case
I'm just missing some needed step in this process.

Peter Van Epp

------------------------------------------------------------------------------
Download Intel® Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Sdcc-user mailing list
Sdcc-user@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/sdcc-user

Reply via email to