> You are out of *data* memory (not flash): > ID_* -> initialized data, such as "int foo = 42;" > UD_* -> uninitialized data such as "int bar;" > code_* -> program memory "int func(void) { return 42; }" > > The data placed by the linker before and including the stuff in > piccode3.c/.asm exceeds the memory limit of 2*0x50 + 2*0x60 = 160+192 = > 352 bytes. Any large arrays/structs in use?
For completeness I should add that no object may cross memory bank boundaries. In this case (pic16f877a), no single object (struct/array) can exceed 0x60 (96) bytes, the size of the largest bank(s). On the pic14 architecture, even meddling with the .lkr scripts does not help, as the data banks are (often) at non-contiguous addresses (for pic16, banks are contiguous and can thus be combined into larger ones iff one is careful). Regards, Raphael ------------------------------------------------------------------------- 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 Sdcc-user@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/sdcc-user