ARM Technical Support Knowledge Articles

HOW TO RETAIN DATA IN OBJECT FILE

Applies to: ARM Development Tools

Answer


Information in this article applies to:


QUESTION

How do I keep data in my output image regardless of whether they are referenced or not like a constant version number or checksum?

SOLUTION

Append the USED attribute to your constant. Please refer to the example below:

        unsigned const int checksum __attribute__((used)) = 0x12345678;

The same attribute can also be used for static function to avoid removal from the object file.

NOTE

Static variables marked as used are emitted to a single section, in the order they are declared. Please refer to the following example:

  static char a1;   /* at offset 0 */
  static int  b1;   /* at offset 4 */
  static char c1;   /* this will be placed at offset 1 to exploit the gap  */

  /* these ones will not only be kept but also not reordered */
  static char a2 __attribute__((used));   /* at offset 0 */
  static int  b2 __attribute__((used));   /* at offset 4 */
  static char c2 __attribute__((used));   /* at offset 8 */

You can specify the section that variables are placed in using __attribute__((section)).

MORE INFORMATION

SEE ALSO

ATTACHED FILES

Request the files attached to this knowledgebase article.

Article last edited on: 2011-06-03 09:27:21

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