5.1.3. 스캐터 로딩을 사용하는 경우

링커에 대한 명령 행 옵션은 데이터 및 코드 배치를 제어할 수 있도록 하지만 완전한 배치 제어를 위해서는 명령 행에서 입력할 수 있는 보다 자세한 명령어가 필요합니다. 스캐터 로딩 설명이 필요하거나 매우 유용한 상황은 다음과 같습니다.

복잡한 메모리 맵

메모리의 여러 별개 영역에 배치해야 하는 코드 및 데이터에는 어느 섹션이 어느 메모리 공간에 들어가야 하는지에 대한 자세한 명령어가 필요합니다.

다양한 메모리 타입

많은 시스템에는 플래시, ROM, SDRAM 및 고속 SRAM과 같은 다양한 물리적 메모리 장치가 있습니다. 스캐터 로딩 설명은 코드 및 데이터를 가장 적절한 메모리 타입과 일치시킬 수 있습니다. 예를 들어, 인터럽트 코드는 고속 SRAM에 배치하여 인터럽트 응답 시간을 향상시킬 수 있지만 드물게 사용되는 구성 정보는 보다 느린 플래시 메모리에 배치할 수 있습니다.

메모리 매핑된 I/O

스캐터 로딩 설명은 메모리 매핑된 주변 장치에 액세스할 수 있도록 메모리 맵의 정확한 주소에 데이터 섹션을 배치할 수 있습니다.

상수 위치의 함수

함수는 주변의 응용 프로그램이 수정되고 다시 컴파일된 경우에도 메모리의 동일한 위치에 배치될 수 있습니다.

심볼을 사용한 힙 및 스택의 확인

심볼은 응용 프로그램이 링크될 때 힙 및 스택 위치에 대해 정의될 수 있습니다.

임베디드 시스템은 ROM, RAM 및 메모리 매핑된 I/O를 사용하기 때문에 임베디드 시스템을 구현하기 위해서는 스캐터 로딩이 거의 항상 필요합니다.

Note

Cortex-M3 프로세서에 대해 컴파일하는 경우에는 고정 메모리 맵이 있으므로 스캐터 로딩 설명 파일을 사용하여 스택과 힙을 모두 정의할 수 있습니다. 이에 대한 예제는 주 예제 디렉토리 install_directory\RVDS\ExamplesCortex-M3.scat로 제공됩니다.

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