5.4.3. 타입 3, 로드 영역 두 개와 연속되지 않는 출력 영역

타입 3 이미지는 로드 뷰에 있는 두 개의 로드 영역과 실행 뷰에 있는 세 개의 실행 영역으로 이루어져 있습니다. 이 이미지는 타입 2의 단일 로드 영역이 이제는 두 개의 로드 영역으로 분할된다는 점을 제외하고는 타입 2 이미지와 유사합니다.

다음 링커 옵션을 사용하여 로드 영역을 재배치 및 분할합니다.

--reloc

--reloc --split 조합은 이미지를 단순 타입 3과 유사하게 만들지만 두 개 로드 영역이 이제는 RELOC 특성을 갖습니다.

--ro-base address1

RO 출력 섹션을 포함하는 영역의 로드 및 실행 주소를 지정합니다.

--rw-base address2

RW 출력 섹션을 포함하는 영역의 로드 및 실행 주소를 지정합니다.

--split

RO 및 RW 출력 섹션을 포함하는 기본 단일 로드 영역을 두 개의 로드 영역으로 분할합니다. 한 개 로드 영역은 RO 출력 섹션을 포함하고 다른 하나는 RW 출력 섹션을 포함합니다.

Example 5.15--ro-base 0x010000 --rw-base 0x040000 --split의 사용에 해당하는 스캐터 로딩 설명을 보여줍니다.

이 예제에서는 다음과 같습니다.

Example 5.15. 다중 로드 영역

LR_1 0x010000     ; The first load region is at 0x010000.
{    
    ER_RO +0      ; The address is 0x010000.
    {
            * (+RO)
    }
}
LR_2 0x040000     ; The second load region is at 0x040000.
{
    ER_RW +0	      ; The address is 0x040000.
    {
        * (+RW)   ; All RW sections are placed consecutively into this region.
    }
    ER_ZI +0      ; The address is 0x040000 + size of ER_RW region.
    {
        * (+ZI)   ; All ZI sections are placed consecutively into this region	.
    }	
}

재배치 가능 로드 영역 예제 변형

이 타입 3 이미지는 또한 로드 뷰에 있는 두 개의 로드 영역과 실행 뷰에 있는 세 개의 실행 영역으로 이루어져 있습니다. 그러나 --reloc는 두 개 로드 영역이 이제 RELOC 특성을 가짐을 지정하는 데 사용됩니다.

Example 5.16--ro-base 0x010000 --rw-base 0x040000 --reloc --split의 사용에 해당하는 스캐터 로딩 설명을 보여줍니다.

Example 5.16. 재배치 가능 로드 영역

LR_1 0x010000 RELOC
{
     ER_RO + 0
     {
             * (+RO)
     }
} 

LR2 0x040000 RELOC
{
     ER_RW + 0
     {
         * (+RW)
     }

     ER_ZI +0
     { 
         * (+ZI)
     }
}
Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential