> 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

Reply via email to