5.3.8. 사전 처리 지시문 사용

스캐터 로딩 설명 파일의 첫 행을 사용하여 링커가 파일을 처리하기 위해 호출하는 선처리 프로세서를 지정합니다. 이 명령은 다음과 같은 형식입니다.

#! <preprocessor> [pre_processor_flags]

가장 일반적으로 명령은 #! armcc -E입니다.

링커는 제한된 연산자 세트 즉, +, -, *, /, AND, OR 및 괄호를 사용하여 단순 식 평가를 수행할 수 있습니다. ORAND의 구현 뒤에는 C 연산자 우선순위 규칙이 옵니다.

스캐터 로딩 설명 파일의 맨 위에 사전 처리 지시문을 추가할 수 있습니다. 예를 들면 다음과 같습니다.

#define ADDRESS 0x20000000
#include "include_file_1.h"

링커는 지시문이 명령으로 처리되고 무시되는 사전 처리된 스캐터 로딩 설명 파일을 구문 분석합니다.

다음과 같은 간단한 예제를 고려하십시오.

#define AN_ADDRESS (BASE_ADDRESS+(ALIAS_NUMBER*ALIAS_SIZE))

다음 지시문을 사용하십시오.

#define BASE_ADDRESS 0x8000#define ALIAS_NUMBER 0x2#define ALIAS_SIZE 0x400

스캐터 로딩 설명 파일에 다음이 포함될 경우

LOAD_FLASH AN_ADDRESS    ; start address

사전 처리 후 이것은 다음으로 평가됩니다.

LOAD_FLASH ( 0x8000 + ( 0x2 * 0x400 ))  ; start address

평가 뒤에는 링커가 스캐터 로딩 파일을 구문 분석하여 로드 영역을 생성합니다.

LOAD_FLASH 0x8808 ; start address
Copyright © 2002-2006 ARM Limited. All rights reserved.ARM DUI 0206GK
Non-Confidential