ARM Technical Support Knowledge Articles

VARIABLES GET LOCATED TO RW RATHER THAN ZI

Applies to: RealView C Compiler

Answer


Information in this article applies to:


QUESTION

For the following example code:

char test_array[8];

The linker reports these memory sizes RW data = 8 and ZI data = 0

While for:

char test_array[9];

The linker reports these memory sizes RW data = 0 and ZI data = 9.

Why is the latter in the ZI section but the former isn't? Is there a way to change the linker behaviour?

ANSWER

Data objects smaller than 9 bytes get moved to the RW region for optimization reasons. This threshold can be controlled by the bss_threshold compiler switch. To enable this option in uVision please add the compiler switch in Options for Target — C/C++ — Misc Controls field.

Example:

--bss_threshold=0

Note:

SEE ALSO

ATTACHED FILES

Request the files attached to this knowledgebase article.

Article last edited on: 2012-09-11 06:54:39

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