arm-none-eabi-gcc
を使用してコンパイルされた組み込みアプリケーションがあり、大きなRAMの使用に問題がありました。メモリ使用状況の検査
使用するarm-none-eabi-nm
いくつかのオブジェクトにいくつのメモリ割り当てがあるか調べることができます。しかし、このオブジェクトがクラスの実装である場合、クラスの各メンバを使用するメモリの数がわかりません。それを知る方法?
多くのクラスメンバーがあり、組み込みアプリケーション用のコンソールがないため、メンバーごとにsizeof()
を呼び出すのはむしろ難しいです。
リンカーから拡張リストを分析することができます(静的使用法を使用)。 uPで最もよく知られている誤解は、定数(特定の方法で宣言されている場合)がフラッシュからRAMにコピーされることです。 –
私には分かりません。あなたはあなたの質問[tag:C++]にタグを付けましたが、あなたは[tag:gcc]について話していますので、それらの "クラス実装"の例を投稿し、それらのメンバーがどのように割り当てられているかを明確にすることができますか? – LPs
クラスXのサイズ{char * buf; }は、実行時にRAMの使用にほとんど影響しません。難しいのは、コードなしの一般的なことです。 –