ARM Technical Support Knowledge Articles

LOCATE COMMON CODE SEGMENTS

Applies to: LX51 Linker/Locator

Answer


Information in this article applies to:


QUESTION

We are using Linker Code Banking and the linker generates segments with the name ?L?COMxxxx. However, we need to locate these segments to a specific address region. Since these segments always belong to the memory class CODE it seems to be impossible to locate them.

I have even tried to use a wildcard in the SEGMENTS directive (for example ?L?COM*(C:0x2000)) but this does not work either.

Is there any way to locate these segments in specific address ranges?

ANSWER

The linker generated segments with the name ?L?COMxxxx are generated very late during the optimization process. The only way to locate them is to use the memory class CODE. When you need to locate your application code to a specific memory region, you may use the USERCLASS directive.

The required steps for the setup in µVision are explained below:

Note: The linker generates the common code sequences very late and therefore the size is not known when the application code segments are located. You may need to adjust the address ranges for the different memory classes when you are getting *** ERROR L107: ADDRESS SPACE OVERFLOW linker errors.

MORE INFORMATION

SEE ALSO

Article last edited on: 2006-08-17 19:58:42

Rate this article

[Bad]
|
|
[Good]
Disagree? Move your mouse over the bar and click

Did you find this article helpful? Yes No

How can we improve this article?

Link to this article
Copyright © 2011 ARM Limited. All rights reserved. External (Open), Non-Confidential