PDATA スタックの再入可能な呼出規約

テクニカル・ノート 63666

アーキテクチャ:

8051

コンポーネント:

linker

更新日:

2018/08/13 8:38

はじめに

本テクニカルノートは、IAR Embedded Workbench for 8051バージョン7.60に適用されます。

概要

ここでは、PDATAスタックのリエントラント呼出規約を設定する際のヒントを示します。この呼出規約を使用する場合、.xclリンカ設定ファイルを編集する必要があります。

最初に、他のXDATAメモリオブジェクトの前にPDATAスタックが配置されていることを確認します。.xclファイルは、リンカによって上から下に向かって読み込まれて処理されます。

例:

-D_PDATA0_START=0x0001
-D_PDATA0_END=0x00FF
-D?PBANK_NUMBER=0x00

これは、XDATAメモリのアドレス範囲0x0001~0x00FFに割り当てられている「ページ0」を使用します。アドレス0は避ける必要があります。

-D_PDATA0_START=0x0100
-D_PDATA0_END=0x01FF
-D?PBANK_NUMBER=0x01

これは、XDATAメモリのアドレス範囲0x0100~0x01FFに割り当てられている「ページ1」を使用します。

-D_PDATA0_START=0x0200
-D_PDATA0_END=0x02FF
-D?PBANK_NUMBER=0x02

これは、XDATAメモリのアドレス範囲0x0200~0x02FFに割り当てられている「ページ2」を使用します。

また、二重チェックのために、Project > Options > General Options > Data Pointer > Page register addressをチェックし、PDATAスタックページに最上位バイトが保存されることを確認します。

この場所には他のデータが上書きされないようにしてください。

 

全ての製品名は、それぞれの所有者の商標または登録商標です。

申し訳ございませんが、弊社サイトではInternet Explorerをサポートしていません。サイトをより快適にご利用いただくために、Chrome、Edge、Firefoxなどの最新ブラウザをお使いいただきますようお願いいたします。