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.

Compiler/LAUNCHXL-CC1310: Error[Lp017] when code size increase

Part Number: LAUNCHXL-CC1310
Other Parts Discussed in Thread: CC1310, SYSBIOS

Tool/software: TI C/C++ Compiler

Hi,

One of my customer is evaluation CC1310 and encounter below problem.

Hardware Platform: CC1310 LaunchPad

IDE: IAR 8.11.2.13606

When the code size is small, it works well. But after adding some applications, the code size increases, and gets 

Error[Lp017]: the address of "ti_sysbios_knl_Clock_doTick__I" was needed when
computing compressed initializers for section .data
(release_prm3.orm3 #127), but that address hasn't been set yet, since
the size of the compressed initializers are needed in order to set it

CC1310_LAUNCHXL_TIRTOS.icf is used and has not been modified.

I try to find the answer in EWARM_DevelopmentGuide.ENU.pdf, but get litter information. I have below questions:

1. when will initializers be compressed, and how to control

2. how to "place compressed initializers last"?

3. what is the suggested method to solve this issue?

please help to look into this issue and give your advise, Thanks!

in EWARM_DevelopmentGuide.ENU.pdf, it says

When initializers are compressed, the exact size of the compressed initializers is
unknown until the exact content of the uncompressed data is known. If this data contains
other addresses, and some of these addresses are dependent on the size of the
compressed initializers, the linker fails with error Lp017. To avoid this, place
compressed initializers last, or in a memory region together with sections whose
addresses do not need to be known.