Hey,
I tried to port a project run by a CC2540 128k from BLE 1.2.1 to BLE 1.3 but I didn't succeed. After following the porting guide everything compiles fine but the linker is unable to create the image showing the following error:
Linking
Error[e104]: Failed to fit all segments into specified ranges. Problem discovered in segment XDATA_N. Unable to place 2 block(s) (0xc02 byte(s) total) in 0xbd7 byte(s) of
memory. The problem occurred while processing the segment placement command "-P(XDATA)XDATA_N=_XDATA0_START-_XDATA0_END", where at the moment of
placement the available memory ranges were "XDATA:1329-1eff"
Error while running Linker
Project settings described below:
Device: CC2540F128.i51
Linker configuration: C:\Texas Instruments\BLE-CC254x-1.3\Projects\ble\common\cc2540\ti_51ew_cc2540f128b.xcl
Edit when I try to build SimpleBLEPeripheral with CC2540F128 workspace as suggested here http://e2e.ti.com/support/low_power_rf/f/538/p/235017/858661.aspx#858661 I get the following linker error:
Linking
Error[e16]: Segment SLEEP_CODE (size: 0x9 align: 0) is too long for
segment definition. At least 0x1 more bytes needed. The problem
occurred while processing the segment placement command
"-Z(CODE)SLEEP_CODE=_SLEEP_CODE_SPACE_START-_SLEEP
_CODE_SPACE_END", where at the moment of placement the
available memory ranges were "CODE:7ff8-7fff"
Reserved ranges relevant to this placement:
CODE:7ff8-7fff SLEEP_CODE
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
Edit: A workaround for the second linker problem is described here http://e2e.ti.com/support/low_power_rf/f/538/p/235981/828065.aspx#828065 . Turns out it is related to the IAR Embedded Workbench version 8.20.1. Doesn't fix my initial linker error though.
Any advice is welcome