1.67 __initial_sp、__heap_base、および __heap_limit の定義

初期スタックポインタとヒープの上下限を指定するために使用できる方法のうちの 1 つとして、__initial_sp__heap_base、および __heap_limit のシンボルを定義します。

これらのシンボルは、アセンブリ言語ファイルで定義するか、または C で組み込みアセンブラを使用して定義できます。
以下に例を示します。
__asm void dummy_function(void) {     EXPORT __initial_sp     EXPORT __heap_base     EXPORT __heap_limit __initial_sp EQU STACK_BASE __heap_base EQU HEAP_BASE __heap_limit EQU (HEAP_BASE + HEAP_SIZE) }
定数 STACK_BASEHEAP_BASE、および HEAP_SIZE は、以下に示すように、stack.h などのヘッダファイル内に定義できます。
/* stack.h */ #define HEAP_BASE 0x20100000  /* メモリアドレスの例 */ #define STACK_BASE 0x20200000 #define HEAP_SIZE ((STACK_BASE-HEAP_BASE)/2) #define STACK_SIZE ((STACK_BASE-HEAP_BASE)/2)

初期スタックポインタとヒープの上下限を指定するためのこの方法は、標準 C ライブラリ(standardlib)と マイクロ C ライブラリ(microlib)の両方でサポートされます。
関連する概念
1.66 スタックポインタの初期化とヒープの上下限
関連する作業
1.68 実行時のヒープサイズの拡張
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.