IAR XLINK Linder map 파일에서 'N/A (alignment)'란 무엇입니까?
기술노트 35041
아키텍처:
8051, AVR, AVR32, Coldfire, CR16C, H8, HCS12, M16C, M32C, MAXQ, MSP430, R32C, R8C, S08, SAM8, V850, 78K
컴포넌트:
linker
업데이트:
2021-06-30 오전 3:51
소개
왜 map 파일에서 IAR XLINK Linker가 'N/A (alignment)'를 생성하는가?
세그먼트의 할당 제한으로 인해 손실되는 공간입니다.
배치 명령어 예시:
-Z(DATA)A,B,C=0-FFFF
추정:
- A는 0x1F 바이트 사이즈를 가지고 0 (1-byte 정렬)로 정렬됨
- B는 0xA 바이트 사이즈를 가지고 1 (2-byte 정렬)로 정렬됨
- C는 0x40 바이트 사이즈를 가지고 2 (4-byte 정렬)로 정렬됨
결과:
- A는 0x0-0x1E에 배치됨
- B는 0x20-0x29에 배치됨 (1 byte, 0x1F, 는 정렬에 의해 손실)
- C는 0x2C-0x6B에 배치됨 (2 bytes, 0x2A와 0x2B, 는 정렬에 의해 손실)
이 경우 모듈 요약에 3바이트가 N/A (alignment)로 표시됩니다.
(C,B,A) 역순으로 할당하면 0바이트 정렬 "spill"이 생성됩니다. N/A (alignment) 항목을 사용하면 정렬 문제에 낭비되는 바이트가 있는지 빠르게 확인할 수 있습니다.
모든 제품 이름은 해당 소유자의 상표 또는 등록 상표입니다.