Hi all,
I want to use internal flash to store data which is around 80Kbytes long. I am using an uint8 array in which i am storing my data. I get following error when i increase the length of array by around 1-2Kbytes.
Error[e16]: Segment XDATA_I (size: 0x1547 align: 0) is too long for segment definition. At least 0xb8f more bytes needed. The problem occurred while processing the segment placement command "-Z(XDATA)XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges
were "XDATA:1548-1eff"
Reserved ranges relevant to this placement:
XDATA:1-280 XSTACK
XDATA:281-1eff XDATA_Z
BIT:0-7 BREG
BIT:80-97 SFR_AN
BIT:a0-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:d8-df SFR_AN
BIT:f8-ff SFR_AN
Error while running Linker
If i reduce the array size by 1-2Kbytes then i get following used space
116 276 bytes of CODE memory
34 bytes of DATA memory (+ 88 absolute )
7 886 bytes of XDATA memory
194 bytes of IDATA memory
8 bits of BIT memory
638 bytes of CONST memory
my cc2541 flash size is 256Kbytes. If i calculate the above used space then it comes to be around 120Kbytes. My question is how adding 2-3 Kbytes data lead to above error? How can i store my required 80Kbytes data in internal flash?
Thanks