5.3.4. 오버레이를 사용한 섹션 배치

스캐터 로딩 설명 파일의 OVERLAY 키워드를 사용하여 동일한 주소에 여러 실행 영역을 배치할 수 있습니다. Example 5.7은 RAM에서 일련의 오버레이 앞에 오는 정적 섹션입니다. 여기서는 런타임에 이러한 섹션 중 하나만 인스턴스화됩니다.

Example 5.7. 루트 영역 지정

EMB_APP 0x8000			 
{
    .
    .
    STATIC_RAM 0x0                  ; contains most of the RW and ZI code/data
    {
            * (+RW,+ZI)
    }
    OVERLAY_A_RAM 0x1000 OVERLAY    ; start address of overlay...
    {
            module1.o (+RW,+ZI)
    }
    OVERLAY_B_RAM 0x1000 OVERLAY
    {
            module2.o (+RW,+ZI)
    }
    .                               ; rest of scatter description...
    .
}

정적 영역의 길이를 알 수 없으면 0 기준 오프셋을 사용하여 오버레이의 시작 주소를 지정하여 오버레이가 정적 섹션의 끝 부분 바로 뒤에 배치되도록 합니다. 예를 들면 다음과 같습니다.

OVERLAY_A_RAM +0 OVERLAY

이 경우 +offset이 동일한 연속적 오브레이 영역은 이전의 오버레이가 아닌 영역 또는 로드 영역의 시작 부분에서 +offset 바이트 위치에 배치됩니다. 사용하지 않는 RAM (정적 영역이 작은)이 없도록 하거나 오버레이가 있는 정적 영역(정적 영역이 큰)이 덮어쓰이지 않도록 하기 위해 이렇게 합니다.

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