Other Parts Discussed in Thread: CC2530
Hi,
I have been working with the CC2530 chip with 256 kB of flash memory on IAR EW v7.51A. I downloaded and installed the TIMAC-CC2530-1.3.0 platform. So far, my program is about 64kB and is compiled in the banked configuration. However, whenever I try to add additional variables, I run into memory errors such as:
Error[e16]: Segment XDATA_I (size: 0x73 align: 0) is too long for segment definition. At least 0x1e more bytes needed. The problem occurred while processing the segment placement command "-Z(XDATA)XDATA_N,XDATA_Z,XDATA_I=_XDATA_START-_XDATA_END", where at the moment of placement the available memory ranges were "XDATA:1dab-1dff"
Reserved ranges relevant to this placement:
XDATA:100-27f XSTACK
XDATA:280-1dff 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:e8-ef SFR_AN
BIT:f8-ff SFR_AN
In the run time model,
// Map flash bank #1 into XDATA for access to "ROM mapped as data".
MEMCTR = (MEMCTR & 0xF8) | 0x01
(hal_startup.c)
I can see that only bank 1 is mapped into the XDATA portion of memory. I have seven banks and so I was wondering if anyone knew how to map multiple banks into the XDATA portion of memory? Or, if anyone knew of any other way to allow my program to have a larger data memory space? So far, I have only done memory management in terms of placing variables in either the data or xdata portions of memory. I have not used or configured any of the banks explicitly (aside from the default configurations from the sample program).
I'm new at this so any suggestions would be of great help and much appreciated.
Thank you in advance,
Regards,
GR