.map 파일에서 'N/A (command line)'는 무엇입니까?
기술노트 13971
아키텍처:
All
컴포넌트:
linker
업데이트:
2021-07-16 오전 1:12
소개
이 공간은 일부 특정 배치 명령을 기반으로 할당됩니다.
배치 명렁어 예시
IAR XLINK Linker를 위한 다음 명령을 보시기 바랍니다:
-DSPACE=8000
-Z(DATA)MYSEGMENT+SPACE=4000-FFFFFF
이 명령은 MYSEGMENT 세그먼트를 주소 4000 그 이상에 할당합니다. 0x8000 (SPACE) 추가 바이트도 MYSEGMENT 끝에 할당됩니다. 만약 MYSEGMENT가 0x45678 바이트 사이즈를 가진다면 세그먼트 맵에 0x4D678 바이트(0x45678 + 0x8000)로 표시되고, SPACE 가 여유공간인 경우, 모듈 맵은 N/A (command line) 32 768 (0x8000)를 표기합니다.
배치 명령에 할당된 추가 공간이 프로그램의 일부가 아니며 모듈에 상주하는 것이 아니라 명령줄에 정의되어 있기 때문에 이러한 방식으로 나열됩니다. 이는 주로 쉽게 구성할 수 있는 방식으로 스택과 힙의 크기를 설정하는 데 사용됩니다.
배경
이름은 "Linker point of view"에서 비롯되었습니다. 링크는 컴파일러 및/또는 어셈블리 도구에 대해 알지 못합니다. 링크는 "relocatable CODE and DATA modules"을 출력에 연결하기만 하면 사용 가능한 메모리에 저장됩니다. 이 데이터는 재배치할 수 없으므로 다른 방식으로 링커에 들어갑니다. 그리고 "Linker point of view"에서 "fixed placed DATA"는 명령줄의 추가 입력입니다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.