静的メモリに多数のクラスを割り当て、C++ を使用する組み込みプロジェクトにヒープを使用したくありません。現在、静的に割り当てられたクラス専用の別の CPP ファイル内のクラスに対して次のことを行う場合:
Config cfg(spi);
これは、私が知る限り、ヒープに割り当てられます。アセンブリ コードをステップ実行すると、最終的に malloc が呼び出されることがわかります。スタック トレースは次のようになります。
malloc()
__register_exitproc()
__static_initialization_and_destruction_0()
_GLOBAL__sub_I_periodic()
__libc_init_array
<reset vector>
Config クラスは次のようになります。
class Config
{
public:
Config(SPIDriver &spi);
virtual ~Config();
private:
SPIDriver *_spi;
}
実装は次のようになります。
Config::Config(SPIDriver &spi)
: _spi(&spi) {}
Config::~Config() {_spi = NULL;}
GCCにこれをヒープではなく静的メモリに配置させる方法はありますか? 前もって感謝します!