2017-03-02 12 views
0

私はμVisionIDE - Keilを使用しています。イメージシンボルテーブルを含む.mapファイルがあります。STACKとTOP_STACKの違いは何ですか?

"STACK"と "TOP_STACK"と混同しています。 (下の画像)

なぜ "TOP_STACK"が "STACK"と同じアドレスを指していないのですか?プログラムがちょうど初期化されたと仮定します。最初に512バイトのスペースが必要なデータがスタックに格納されていますか?

Snippet of .map file

答えて

-1

私はそれがARMのCortex-M1プロセッサの情報を見せていることを言及するのを忘れてしまいました。

ARM Cortex-M1プロセッサの場合、スタックはDESCENDINGスタックで、512バイトのスペースを持つスタックを宣言しました。したがって、TOP_STACKは最初の空きスペースを指しています。スタックは、この時点でデータを格納しません。

2

STACKはスタックの開始です。ここには0x20000000があります。 TOP_STACKは、スタックの後で最初に利用可能なアドレスです。スタックは512バイト(0x200の16進数)です。次に使用可能なアドレスは0x20000000 + 0x200 = 0x20000200です。 TOP_STACKが0x20000200であることがわかります。 これは、データをRAMに配置できる場所またはヒープが開始できる場所をリンカーに通知します。これに対する答えを見つける誰に

+0

返信いただきありがとうございます。私は正しい答えを見つけました。このシミュレータはARM Cortex-M1の特性を示していることを忘れてしまいました。私の悪い。 –

関連する問題