4.31 __rt_stackheap_init()

rt_misc.h で定義される __rt_stackheap_init() 関数は、スタックポインタを設定して、初期ヒープとして使用するメモリ領域を返します。

この関数はライブラリ初期化コードから呼び出されます。
この関数からの戻り値では、SP がスタック領域の最上部、r0 がヒープ領域のベース、r1 がヒープ領域のリミットを指す必要があります。
ユーザ定義のメモリモデル(つまり、__rt_stackheap_init()__rt_heap_extend())には、__user_perproc_libspace 領域からの 16 バイトのストレージが必要に応じて割り当てられます。メモリモデルは、__rt_stackheap_storage() を呼び出して 16 バイト領域を指すポインタを返すことによって、このストレージにアクセスします。
この関数は C ライブラリ標準ではありませんが、ARM C ライブラリでは拡張としてサポートされています。
関連する概念
1.66 スタックポインタの初期化とヒープの上下限
関連する参考文書
4.27 __rt_heap_extend()
4.52 __user_heap_extend()
4.53 __user_heap_extent()
4.54 __user_setup_stackheap()
非機密扱いPDF file icon PDF 版ARM DUI0475KJ
Copyright © 2010-2014 ARM.All rights reserved.