本当に利用可能な外部データRAMがない場合は、PDATAオプションは役に立ちません。PDATAはXDATAとは異なる論理アドレス空間にありますが、同じ物理空間を使用します。
たとえば、使用しているマイクロコントローラーには1kBのRAMが含まれています。1024バイトすべてにXDATAメモリとしてアクセスできます(アドレスXDATA:0x0000からXDATA:0x03FF)。256バイト(一度に)はPDATAメモリとしてアクセスできます(アドレスPDATA:0x00からPDATA:0xFF)。RAMの最初の256バイトをPDATAメモリとして使用するようにマイクロコントローラを設定するとします。これは、PDATA:0x00とXDATA:0x0000がRAMの同じ物理バイトを指していることを意味します。注意しないと、2つの異なる値を同じ物理メモリに保存しようとし、そのうちの1つが上書きされて失われます。
すでにすべてのXDATAメモリを使用している場合は、DATAメモリまたはIDATAメモリを使用してさらに多くを取得する必要があります。IDATAメモリを使用する場合は、格納している値がIDATA:0xFFで始まり、IDATA:0x00に向かって減少するスタックによって誤って上書きされないように、十分なスペースを空のままにしておくように十分に注意する必要があります。
編集:申し訳ありませんが、この質問が2歳であることに気づきませんでした。うまくいけば、これは誰かを助けるでしょう。