|
From: Eric A. <eri...@sh...> - 2011-02-25 21:27:36
|
I have an in- and out-buffer of 64 bytes that should fit in the near ram, but it gets a linker error of: link-Error-Could not get 128 consecutive bytes in internal RAM for area ISEG. Declaration: __idata BYTE Out_Packet[64]; // Last packet received from host __idata BYTE In_Packet[64]; // Next packet to sent to host Linker map shows: Area Addr Size Decimal Bytes (Attributes) -------------------------------- ---- ---- ------- ----- ------------ ISEG 0000 0200 = 512. bytes (REL,CON) Value Global -------- -------------------------------- 0100 G$Out_Packet$0$0 0100 _Out_Packet 0140 G$In_Packet$0$0 0140 _In_Packet BYTE is type defined as unsigned char but appears to use 4 bytes per element. I tried changing them to int and long long, both of which seem to take up 4 times what they should (8 bytes per int, 16 per long). What am I missing here? Attached: mem layout. |