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) 항목을 사용하면 정렬 문제에 낭비되는 바이트가 있는지 빠르게 확인할 수 있습니다.

 

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

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