5.1.2. 스택 및 힙 지정

ARM C 라이브러리에서는 __user_initial_stackheap()의 대체 구현을 제공하며 스캐터 로딩 설명 파일에서 제공하는 정보에서 자동으로 올바른 값을 선택할 수 있습니다.

이중 영역 메모리 모델을 선택하려면 이름이 ARM_LIB_HEAPARM_LIB_STACK인 두 개의 특별한 실행 영역을 정의합니다. 두 영역 모두에 EMPTY 특성이 있습니다. 따라서 다음 심볼을 사용하는 __user_initial_stackheap()의 기본 구현 이외의 구현을 라이브러리가 선택하게 됩니다.

하나의 ARM_LIB_STACK 또는 ARM_LIB_HEAP 영역만 지정할 수 있으며 예를 들어 다음과 같이 크기를 할당해야 합니다.

ARM_LIB_HEAP 0x20100000 EMPTY 0x100000-0x8000  ; Heap starts at 1MB
                                               ; and grows upwards
ARM_LIB_STACK 0x20200000 EMPTY -0x8000         ; Stack space starts at the end
                                               ; of the 2MB of RAM
                                               ; And grows downwards for 32KB

EMPTY 특성으로 이름이 ARM_LIB_STACKHEAP인 단일 실행 영역을 정의하여 __user_initial_stackheap()이 결합된 스택/힙 영역을 사용하도록 할 수 있습니다. 따라서 __user_initial_stackheap()Image$$ARM_LIB_HEAP$$BaseImage$$ARM_LIB_STACK$$ZI$$Limit 심볼의 값을 사용하게 됩니다.

Note

__user_initial_stackheap()을 다시 구현할 경우 모든 라이브러리 구현이 무시됩니다.

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