Hi Antonio, > Is there any switch to pass to compiler to use udata_ovr to some > variable, or to join rx1000... registers in routines that are > not called one by another? > > If I edit many functions in the same file will the compiler reduce > register quantity?
The first idea (assigning variables to named banks) cannot be realized with the current pic14 port (as far as I know). There may be a #pragma, I will have to look that up. However, overlaying r0x1000+ registers will be done unless --nooverlay is given. To make it work best, aggregate many functions in a single file (the compiler/linker will allocate disjoint memory regions per file) *and* make most of them static (*only* functions that cannot be called from outside the current file can have their registers overlaid; otherwise interrupt handlers would be really ugly). Then, do NOT use the --nooverlay option, which precludes exactly the desired behaviour: The option exists because of bugs in the overlay algorithm that have been removed only recently (I think this was fixed on 2009-02-28). Use a recent SDCC snapshot (2.9.0 should be fine, more recent ones typically rather improve than deteriorate things ... typically ...). Hope that helps, Raphael ------------------------------------------------------------------------------ This SF.net email is sponsored by: High Quality Requirements in a Collaborative Environment. Download a free trial of Rational Requirements Composer Now! http://p.sf.net/sfu/www-ibm-com _______________________________________________ Sdcc-user mailing list Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user