From: Maarten B. <sou...@ds...> - 2008-09-09 19:10:32
|
Jesse, It might also help to spread your functions over multiple source files. Every source file generates one object file and all allocations in a segment (e.g. DSEG which gets the slocs) are placed by the linker in one chunk. The only way to subdivide the chunk into smaller ones is to split the object. Why would this help? Because you have still space at 0x18-0x1F in data memory which can only be filled by a chunk <= 8 bytes. Maarten > I've never tried it, it looks promising and it can't hurt to try. This > approach may be use less code than adding another function call. > > --Mark > > Bobby Garner wrote: > > 'Spill loactions' is mentioned one time in the manual: > > "3.2.8 Optimization Options > > --nogcse Will not do global subexpression elimination, this option may > > be used when the compiler creates > > undesirably large stack/data spaces to store compiler temporaries > > (spill locations, sloc). A warning > > message will be generated when this happens and the compiler will > > indicate the number of extra bytes > > it allocated. It is recommended that this option NOT be used, #pragma > > nogcse can be used to turn off > > global subexpression elimination for a given function only." > > > > Would it help to use this option, maybe as a test? > > > > Bobby > > > > Mark Swayne wrote: > >> You probably have a build up of spill locations. Look in the .map file > >> for your project for any variables with 'sloc' in the name. > >> > >> ... > >> > >> --Mark Swayne > >> > >> > >> Jesse Lackey wrote: > >> > >>> Hi - I'm using the large data model, and as I understand it all globals > >>> are in external RAM. And isn't idata the precious first 256 bytes, why > >>> would I want to put an array there? > >>> > >>> I must be missing something. > >>> > >>> Since I'm using the large data model, the unsigned 32-bit divide routine > >>> should be using xdata as well, right? > >>> > >>> J > >>> > >>> > >>> > >>> > >>>> Message: 6 > >>>> Date: Tue, 9 Sep 2008 13:12:51 +0300 > >>>> From: "Ori Idan" <or...@he...> <mailto:or...@he...> > >>>> Subject: Re: [Sdcc-user] Emergency help... linker memory error with > >>>> DSEG > >>>> To: sdc...@li... <mailto:sdc...@li...> > >>>> Message-ID: > >>>> <654...@ma...> <mailto:654...@ma...> > >>>> Content-Type: text/plain; charset="utf-8" > >>>> > >>>> Try to move some global variables to external RAM if possible. > >>>> Or maybe locating few arrays in idata. > >>>> > >>>> -- Ori Idan > >>>> > >>>> > > > > > ------------------------------------------------------------------------- > This SF.Net email is sponsored by the Moblin Your Move Developer's challenge > Build the coolest Linux based applications with Moblin SDK & win great prizes > Grand prize is a trip for two to an Open Source event anywhere in the world > http://moblin-contest.org/redirect.php?banner_id=100&url=/ > _______________________________________________ > Sdcc-user mailing list > Sdc...@li... > https://lists.sourceforge.net/lists/listinfo/sdcc-user > |