.map 파일에서 'Linker created', 'Lc', 'Gb', 'Wk'는 무엇입니까?

기술노트 81528


ARM, RiscV, RH850, RL78, RX, SH, STM8




2021-06-30 오전 3:46


본 기술 노트는 다음에 적용됩니다:

IAR Embedded Workbench

5.10 and later            
2.10 and later
1.10 and later
1.10 and later            
2.10 and later   
2.10 and later
1.10 and later                  

1. 'Linker created' 란 ?

IAR ILINK Linker에 의해 수행되는 추가 할당(extra allocations)입니다.


예제 링커 파일에서 발췌한 내용입니다:

  Module           ro code    ro data    rw data
  ------           -------    -------    -------
  Linker created       140        123      2 980
  Grand Total:      76 888      3 800      5 716


3개의 다른 머리글은 IAR ILINK 링커의 추가 내용에 해당합니다:

Kind of section Section type Explanation
ro code Veneer These are "helpers" used in order to achive jumps in the whole address area, i.e. longer than +-4 MB / +-32 MB (Thumb/Arm mode).
ro data .iar.init_table The table which is used during start-up to control the initialization.
ro data Initializer bytes If any symbols placed in RAM are to be initialized manually, then "Initializer bytes' are created by the linker.
rw data
ro data

If the define block directive is combined with the parameter size in the .icf file, this will order the linker to create a block of the specified size. So when linking, each such block will be filled by the linker.

The linker directive for a block that holds a stack must use the size parameter. The whole block is marked uninit, (as a stack is an empty when it comes to linking).

A block that is not a stack (and marked with the size parameter) can more or less filled with defined variables in the block. All unused bytes in the block become marked with "uninit".

rw data .iar.dynexit

Holds the table of calls to be made at exit.



2. 'Lc','Gb','Wk' 란?

ELF에는 다음과 같은 네 가지 유형의 속성이 정의되어 있습니다:

  • Lc = local.
  • Gb = global.
  • Wk = weak.
  • ?? = unknown.


예제 링커 파일의 내용입니다:

Undefined_Handler     0x00000274          Code   Wk   vectortrap.o [4]

Region$$Table$$Base   0x08002d2c          --     Gb   - Linker created -
Region$$Table$$Limit  0x08002d50          --     Gb   - Linker created -

SysTick_Config        0x08002667   0x32   Code   Lc   main.o [1]

모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.

죄송하지만, 당사 사이트에서는 Internet Explorer를 지원하지 않습니다.보다 편안한 사이트를 위해 Chrome, Edge, Firefox 등과 같은 최신 브라우저를 사용해 주시길 부탁드립니다.