3.2.3. 섹션 정렬

입력 섹션이 정렬되었고 기본 주소가 고정되기 전에 armlink는 필요할 경우 패딩을 삽입하여 각 입력 섹션이 입력 섹션 정렬의 배수인 주소에서 시작되도록 강제합니다.

ARM 링커는 ELF 프로그램 헤더 및 출력 섹션이 입력 섹션의 최대 정렬과 관계없이 4바이트 경계를 기준으로 정렬되도록 합니다. 따라서 armlink는 이미지로 삽입하는 패딩의 양을 최소화할 수 있습니다.

ELF 사양을 엄격하게 준수해야 하는 경우 --no_legacyalign 옵션을 사용하십시오. 사양 준수를 보장하도록 패딩이 삽입될 수 있고 링커에서는 0 mod Max(input section alignment)가 아닌 기본 주소를 사용하면 오류가 발생합니다.

ALIGN을 사용하여 정렬을 확장할 수 있지만(일반적으로 4바이트 정렬되는 것을 8바이트 정렬로 변경) 기본 정렬을 감소시킬 수는 없습니다(일반적으로 4바이트 정렬인 것에서 2바이트 정렬을 강제).

Example 3.1에 표시되듯이 입력 섹션 정렬은 다음을 사용하여 어셈블리 코드에서 지정할 수 있습니다.

ALIGN

이 특성을 어셈블리 언어의 AREA 지시문에 대해 사용합니다. 입력 섹션 주소는 2(align 특성의 값)의 승수가 될 것입니다.

Example 3.1. 어셈블리 코드의 ALIGN 특성 사용

	AREA LDR_LABEL, CODE, READONLY, ALIGN=3 ; align on eight-byte boundary

RealView Compilation Tools 버전 3.0 핵심 설명서의 지시문 참조에 나와 있는 ALIGN에 대한 설명을 참조하십시오.

Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential