11.2.1. Interpreting size information

The information provided by the -info sizes and -info totals options can be broken down into:

Code (or read-only) segment

code size

Size of code, excluding any data that has been placed in the code segment (see Table 11.1).

inline data

Size of read-only data included in the code segment by the compiler.

Typically, this data contains the addresses of variables that are accessed by the code, plus any floating-point immediate values or immediate values that are too big to load directly into a register. It does not include inline strings, which are listed separately (see Table 11.1).

inline strings

Size of read-only strings placed in the code segment.

The compiler puts such strings here whenever possible to reduce runtime RAM requirements.


Size of any variables explicitly declared as const.

These variables are guaranteed to be read-only and so are placed in the code segment by the compiler.

Data (or read-write) segment

RW data

Size of read-write data. This is data that is read-write and also has an initializing value. Read-write data occupies the displayed amount of RAM at runtime, but also requires the same amount of ROM to hold the initializing values that are copied into RAM on image startup.

0-init data

Size of read-write data that is zero-initialized at image startup.

Typically this contains arrays that are not initialized in the C source code. Zero-initialized data requires the displayed amount of RAM at runtime but does not require any space in ROM.

Debug data

debug data

Reports the size of any debugging data if the files are compiled with the -g+ option.


There are totals for the debug data, even though the code has not been compiled for source-level debugging, because the compiler automatically adds information to an AIF file to allow stack backtrace debugging.

Copyright © 1997, 1998 ARM Limited. All rights reserved.ARM DUI 0040D