This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hello,
I have got a problem when i tried to send random data to RX.
Error[e16]: Segment XDATA_I (size: 0x2a2f align: 0) is too long for segment definition. At least 0xe00 more bytes needed. The problem occurred while processing the segment placement
command "-Z(XDATA)XDATA_Z,XDATA_I=_XDATA0_START-_XDATA0_END", where at the moment of placement the available memory ranges were "XDATA:2d1-1eff"
Reserved ranges relevant to this placement:
XDATA:1-100 XSTACK
XDATA:101-1eff XDATA_Z
BIT:0-7 BREG
BIT:80-97 SFR_AN
BIT:a0-af SFR_AN
BIT:b8-c7 SFR_AN
BIT:e8-ef SFR_AN
BIT:f8-ff SFR_AN
Error while running Linker
Can i change this limitation ? If yes, how can i ?
Thanks in advance for your reponse.
Best regards,
XDATA is the "RAM" space for the CC2530, so you have added to many or too big variables - remove some of the last variables that you added until your application can successfully link again - RAM is very limited on an embedded processor, it's not a PC. You can monitor your use of resources by inspecting the bottom of the .map file found in 'Output' folder as "NameOfYourApplication.map"
****************************************
* *
* END OF CROSS REFERENCE *
* *
****************************************
152 489 bytes of CODE memory
32 bytes of DATA memory (+ 74 absolute )
6 844 bytes of XDATA memory
192 bytes of IDATA memory
8 bits of BIT memory
457 bytes of CONST memory
Errors: none
Warnings: none
Hi Dirty Harry,
Thanks for your reponse. So, can't i change this value ?
Br,
Change what value? You want to change the amount of RAM available in the system? On an embedded device, the amount of RAM, aka XDATA on this 8051-based SOC, is fixed ... on the CC2530F256, there is only a total of 8KB available. Take a look at the data sheet:
http://focus.ti.com/lit/ds/symlink/cc2530.pdf
Hi Dirty Harry,
Thanks for the data sheet. i taked a look at this.
But if i want transmit data more ... If i use the RAM as a buffer, can i do it ?
Br,
Hi MilkyWay 05,
You may use the RAM as a buffer to transmit short chunks of data (lets say 120 bytes).
ZigBee devices based on CC2530/CC2531 SoCs that running Zstack are very short on
available RAM for user's application.
Anyway, keep in mind these numbers while setting any buffer length for your data:
Coordinator Router EndDevice
PRO SECURE Flash/RAM Flash/RAM Flash/RAM
===== ======= ========== ========== ==========
Off Off 137.6K/6.6K 136.4K/6.6K 108.7K/5.0K
Off On 147.9K/6.6K 147.6K/6.6K 119.7K/5.1K
On Off 148.8K/6.7K 147.8K/6.7K 114.3K/5.1K
On On 159.2K/6.7K 159.0K/6.7K 126.2K/5.2K
Best regards,
Igtor.