What is 'N/A (alignment)' in the .map file?

Technical Note 35041

Architectures:

All

Component:

linker

Updated:

5/31/2018 9:14 AM

Introduction

What is 'N/A (alignment)' in the *.map file? It is space that is lost due to alignment restrictions on segments.

Placement command example:

-Z(DATA)A,B,C=0-FFFF

Assume:

  • A has a size of 0x1F bytes and an alignment of 0 (1-byte aligned)
  • B has a size of 0xA bytes and an alignment of 1 (2-byte aligned)
  • C has a size of 0x40 bytes and an alignment of 2 (4-byte aligned)

Result:

  • A will be placed on 0x0-0x1E
  • B will be placed on 0x20-0x29 (1 byte, 0x1F, will be lost due to alignment)
  • C will be placed on 0x2C-0x6B (2 bytes, 0x2A and 0x2B, will be lost due to alignment)

The module summary will list 3 bytes as N/A (alignment) in this case.

Note that allocation in the reverse order (C,B,A) will generated 0 byte alignment "spill". The N/A (alignment) entry allows you to quickly see if there are any bytes wasted on alignment problems.

All product names are trademarks or registered trademarks of their respective owners.

We do no longer support Internet Explorer. To get the best experience of iar.com, we recommend upgrading to a modern browser such as Chrome or Edge.