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

Technical Note 13971

Arkitekturer:

All

Komponent:

linker

Uppdaterad:

2018-05-31 09:14

Introduction

It is space that is allocated based on some specific placement commands.

Placement command example

Look at these commands for the IAR XLINK Linker:

-DSPACE=8000
-Z(DATA)MYSEGMENT+SPACE=4000-FFFFFF

These commands will allocate the segment MYSEGMENT on address 4000 and upwards. 0x8000 (SPACE) additional bytes will also be allocated at the end of MYSEGMENT. If MYSEGMENT had a size of 0x45678 bytes it will show up as 0x4D678 bytes (0x45678 + 0x8000) in the segment map (it will occupy 0x4000 - 0x51677), the module map will show N/A (command line) 32 768 (0x8000) if SPACE was the only extra space.

This is listed in this way as the extra space allocated in the placement commands isn't a part of the program, they do not reside in a module, they are just there because they were defined on the command line. This is primarily used to set the size of the stack and the heap in an easily configurable way.

Background

The name is due to the "Linker point of view". The Linker doesn't know of any Compiler and/or Assembler tools. The Linker just link "relocatable CODE and DATA modules" into output, placed in the available memory. As the DATA (that we discuss) is not relocatable, it enters the Linker in another fashion. And from the "Linker point of view" the "fixed placed DATA" is additional input from the command line.

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

Det här innehållet finns tyvärr inte på svenska.

Vår webbplats finns främst på vårt koncernspråk engelska, förutom det innehåll för investerare som vi är lagstadgade att kommunicera på svenska. Vi rekommenderar att du besöker vår globala webbplats på engelska för att få en bättre upplevelse.

Vi stöder inte längre Internet Explorer. För att få bästa möjliga upplevelse av iar.com rekommenderar vi att du uppgraderar till en modern webbläsare som Chrome eller Edge.