5.4.2. 타입 2, 로드 영역 하나와 연속되지 않는 출력 영역

이 타입의 이미지는 로드 뷰에 있는 단일 로드 영역과 실행 뷰에 있는 세 개의 실행 영역으로 이루어져 있습니다. 이것은 RW 실행 영역이 RO 실행 영역과 연속되지 않는다는 점을 제외하고는 타입 1의 이미지와 유사합니다.

--ro-base address1은 RO 출력 섹션을 포함하는 영역의 로드 및 실행 주소를 지정합니다. --rw-base address2는 RW 실행 영역의 실행 주소를 지정합니다.

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

Example 5.13. 로드 영역 하나와 여러 실행 영역

LR_1 0x010000        ; Defines the load region name as LR_1
{
    ER_RO +0         ; The first execution region is called ER_RO		 and starts at end of previous region.
                     ; Since there was no previous region, the address is 0x010000.
    {
        * (+RO)      ; All RO sections are placed consecutively into this region.
    }
    ER_RW 0x040000   ; Second execution region is called ER_RW and starts at 0x040000.
    {
        * (+RW)      ; All RW sections are placed consecutively into this region.
    }
    ER_ZI +0         ; The last execution region is called ER_ZI.
                     ; The address is 0x040000 + size of ER_RW region.
    {
        * (+ZI)      ; All ZI sections are placed consecutively here.
    }
}

이 설명은 0x010000의 로드 주소를 가진 LR_1이라고 하는 로드 영역이 있는 이미지를 만듭니다.

이미지에는 각각 RO, RW 및 ZI 출력 섹션을 포함하는 ER_RO, ER_RWER_ZI라고 하는 세 개의 실행 영역이 있습니다. RO 영역은 루트 영역입니다. ER_RO의 실행 주소는 0x010000입니다.

ER_RW 실행 영역은 ER_RO와 연속되지 않습니다. 실행 주소는 0x040000입니다.

ER_ZI 실행 영역은 선행 실행 영역 ER_RW의 끝 부분 바로 뒤에 배치됩니다.

rwpi 예제 변형

이것은 RO 실행 영역과 별개인 RW 실행 영역이 있는 --rw-base를 가진 타입 2 이미지와 유사합니다. 그러나 --rwpi는 RW 출력 섹션을 포함하는 실행 영역을 위치 독립적으로 만듭니다.

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

Example 5.14. 위치 독립적 데이터

LR_1 0x010000           ; The first load region is at 0x010000.
{
    ER_RO +0            ; Default ABSOLUTE attribute is inherited from parent. The execution address
                        ; is 0x010000	. The code and ro data cannot be moved.
    {
        * (+RO)         ; All the RO sections go here.
    }
    ER_RW 0x018000 PI   ; PI attribute overrides ABSOLUTE
    {
        * (+RW)         ; The RW sections are placed at 0x018000		 and they can be moved.
    }
    ER_ZI +0            ; ER_ZI region placed after ER_RW region.
    {
        * (+ZI)         ; All the ZI sections are placed consecutively here.
    }
}

ER_RO 즉, RO 실행 영역은 로드 영역 LR_1에서 ABSOLUTE 특성을 상속합니다. 다음 실행 영역, ER_RWPI로 표시됩니다. 또한, ER_ZI 영역에는 +0의 오프셋이 있기 때문에 ER_RW 영역에서 PI 특성을 상속합니다.

타입 2와 타입 3 이미지를 가진 --ropi--rwpi의 다른 조합의 사용에 해당하도록 유사한 스캐터 로딩 설명을 작성할 수도 있습니다.

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