What is 'N/A (alignment)' in the IAR XLINK Linker map file?

Technical Note 35041


8051, AVR, AVR32, Coldfire, CR16C, H8, HCS12, M16C, M32C, MAXQ, MSP430, R32C, R8C, S08, SAM8, V850, 78K




10/12/2021 2:23 PM


Read this technical note to understand why the IAR XLINK Linker™ generates the 'N/A (alignment)' entry in the map file.


The 'N/A (alignment)' entry shows bytes lost due to alignment restrictions on segments.


Placement command example for the IAR XLINK Linker:



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


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

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


Reverse the order of 'A,B,C' in the placement command to 'C,B,A'. The reason is that allocating segments in falling alignment order doesn’t generate byte 'spill'.

With falling alignment order the result is:

  • Segment C is placed on 0x00-0x3F
  • Segment B is placed on 0x40-0x49
  • Segment A is placed on 0x4A-0x68


The N/A (alignment) entry allows you to quickly see if any bytes are lost due to alignment restrictions.

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.