メインコンテンツまでスキップ
Knowledgebase
Home
Renesas Electronics Japan - Knowledgebase

パケットプール_静的配列_first unused memory の使い方

最終更新日:2017/07/05

Question:

パケットプール、静的配列、first_unused_memory はいつ使うべきですか?

Answer:

以下にガイドラインを示します。

静的配列(スタティックアレイ):
これは、確保するサイズが分かっていて、それを静的に確保できる場合に使用します。一定の記憶領域が明確に確保され、それをマップファイル上ではっきりと確認することができるため、通常は最も安全な方法です。

パケットプール:
パケットプールはNetX専用ですが、これはRTOSによる動的メモリ確保であるとも言えます。ThreadXでは、これがバイトプールとブロックプールにもなります。必要なメモリを静的に確保できない場合、または静的確保を使用しない理由(効率など)がある場合の使用に適しています。
バイトプールとブロックプールのどちらを使用するかはお客様のアプリケーションに依存しますが、バイトプールを使用するとフラグメンテーションの問題が発生しますので、一般的には可能な限りブロックプールを使用することが推奨されます。

malloc()、free()よりは、RTOSのプールを使用することを推奨しております。


first_unused_memory
通常はデモ等に使用します。その理由は、動作させる部分をお客様が把握しておらず、またお客様が静的に確保しなければならないメモリ領域も無いためです。

どこにも割り当てられていないRAMの空き領域を使用しますので、お客様のアプリケーションに使用することは推奨いたしません。理由は、ポインタの示すRAM領域は確保されていないRAM領域のため、プロジェクトを作成する際に、RAMを使い切ったかどうか(RAMの残量)が分からないためです。

さらにお客様のコード実行時、技術的な問題が発生した場合は、お客様がその原因を解明しなければならない場合がありますが、何も割り当てられていないため、マップファイル上で問題を確認することができません。お客様はそのようなリスクをとる必要はありません。メモリを確保するだけでこのような問題を避けることが可能です。

適用製品

Renesas Synergy™ プラットフォーム
Renesas Synergy™ ソフトウェア