ARM プロセッサで実行する 16 進ファイルを作成していますが、これを 32K 未満に抑えたいと考えています。現在、それよりもはるかに大きく、スリム化するための最善の方法について誰かがアドバイスをしてくれるのではないかと思いましたか?
これが私がこれまでに行ったことです
- そこで、16 進ファイルの大きさを判断するために「サイズ」を実行しました。
- 次に、再度「サイズ」を指定して、16 進ファイルを作成するためのリンクである各オブジェクト ファイルの大きさを確認します。サイズの大部分は外部ライブラリに由来するようです。
- 次に、「readelf」を使用して、どの関数が最もメモリを消費しているかを確認しました。
- コードを検索して、これらの関数の呼び出しを削除できるかどうかを確認しました。
ここで行き詰まります。直接呼び出さない関数 (_vfprintf など) がいくつかあり、それを呼び出すものが見つからないため、呼び出しを削除できます (必要ないと思うため)。
では、次のステップは何ですか?
回答への対応:
- ご覧のとおり、多くのメモリを消費する関数が呼び出されています。しかし、それを呼んでいるものを見つけることができません。
- これらの関数を (可能であれば) 省略したいのですが、それらを呼び出しているものが見つかりません! 私が推測する任意の数のライブラリ関数から呼び出すことができます。
- リンカーは希望どおりに機能しています。関連するライブラリ ファイルのみが含まれていると思います。関連する機能だけが含まれているかどうかは、どうすればわかりますか? そのためにフラグか何かを設定できますか?
- 私はGCCを使用しています