5.3.2. 루트 실행 영역 만들기

사용자가 이미지의 초기 엔트리 포인트를 지정하거나 ENTRY 지시문이 하나밖에 없어서 링커에서 초기 엔트리 포인트를 만드는 경우 엔트리 포인트는 루트 영역 내에 있어야 합니다. 루트 영역은 로드 및 실행 주소가 동일한 영역입니다. 초기 엔트리 포인트가 루트 영역에 없으면 링크가 실패하고 링커는 다음과 같은 오류 메시지를 생성합니다.

엔트리 포인트(0x00000000)가 루트가 아닌 영역 ER_ROM 내에 있습니다.

영역이 스캐터 로딩 설명 파일의 루트 영역임을 지정하려면 다음 중 하나를 수행합니다.

FIXED 특성을 사용하여 ROM의 특정 주소에 실행 영역을 배치할 수 있습니다. 자세한 내용은 고정 주소에 영역 배치를 참조하십시오.

Example 5.2. 동일한 로드 및 실행 주소 지정

LR_1 0x040000          ; load region starts at 0x40000   
{                      ; start of execution region descriptions	      
    ER_RO 0x040000     ; load address = execution address
    {
        * (+RO)        ; all RO sections (must include section with 
                       ; initial entry point)
    }
                       ; rest of scatter description...
}

Example 5.3. FIXED 특성 사용

LR_1 0x040000              ; load region starts at 0x40000   
{                          ; start of execution region descriptions	      
    ER_RO 0x040000         ; load address = execution address
    {
        * (+RO)            ; RO sections other than those in init.o
    }
    ER_INIT 0x080000 FIXED ; load address and execution address of this
                           ; execution region are fixed at 0x80000
    {
        init.o(+RO)        ; all RO sections from init.o
    }
                           ; rest of scatter description...
}

Figure 5.9. 고정 실행 영역의 메모리 맵

고정 실행 영역의 메모리 맵
Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential