2.11.5. __user_setup_stackheap()

__user_setup_stackheap() は、__user_initial_stackheap() と同様の方法で初期スタックとヒープの位置を返します(__user_initial_stackheap()を参照)。 必要に応じて、これらの関数のいずれかを再実装できます。

__user_setup_stackheap() は、以下を返します。

__user_setup_stackheap() は、__user_initial_stackheap() と違い、アプリケーションの開始時点で spr13)に既に正しい値が設定されているシステムで機能します。例えば、Cortex-M3 はこれに該当します。 sp を利用するには、__user_setup_stackheap() を実装し、r0r2r3 (2 つの領域によるモデル用)を設定して戻ります。 単一領域によるモデルの場合は、r0 のみを設定します。

__user_setup_stackheap() が呼び出されると、sp はアプリケーションへのエントリ時と同じ値になります。 この値が無効な場合は、スタックを使用する前に、__user_setup_stackheap() によって sp の値を変更する必要があります。

__user_initial_stackheap() の代わりに __user_setup_stackheap() を使用すると、一次的なスタックが不要になるため、コードサイズが改善されます。

Note

__user_setup_stackheap() はアセンブラで再実装する必要があります。

Copyright © 2007 ARM Limited. All rights reserved.ARM DUI 0349AJ
Non-Confidential