.map 파일에서 'Linker created', 'Lc', 'Gb', 'Wk'는 무엇입니까?
기술노트 81528
아키텍처:
ARM, RiscV, RH850, RL78, RX, SH, STM8
컴포넌트:
linker
업데이트:
2021-06-30 오전 3:46
소개
본 기술 노트는 다음에 적용됩니다:
IAR Embedded Workbench |
Versions |
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 |
uninit |
If the The linker directive for a block that holds a stack must use the A |
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]
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.