2016-10-11 3 views
0

PIC用に作成したCプロジェクトを作成するときに使用するフラッシュの量を出力したいのですが、Arduinoがそのスケッチに対してそうであるのと同じです。PICに対応するavrサイズはありますか?

Arduino binary sketch size

私はArduinoのIDEがGitHub上でavr-size使用することがわかりました。 PICに相当するものはありますか?私は、GNUのbinutilsに含まれている一般的な(正しい言葉ですか?)バージョンがsizeとなっていることに気付きました。 thatを使用できますか?

sdccgputilsを使用してプロジェクトをビルドしています。

EDIT:連携しながら、私はgplink-mを渡すと、私はマップファイルを取得します。このマップファイルには、 "Program Memory Usage"というセクションがあります。このセクションの最後には、使用されるアドレスの数があります。

Program Memory Usage 
    Start   End 
--------- --------- 
0x005558 0x0055db 
0x0063e0 0x0063f5 
0x00663c 0x006643 
... 
0x006280 0x0062a7 
0x00662e 0x00663b 
26229 program addresses used 

これは、出力16進ファイルで実行されたGNUのサイズと一致します。

$ size out.hex 
    text data  bss  dec  hex filename 
     0 26229  0 26229 6675 out.hex 
$ 

GNUサイズを使用できますか?これは私のプログラマーのソフトウェアに見られるものと一致していないようです。この同じファイルの場合、使用される最高のアドレスは0x6670で、26,224バイト目です。

+0

プログラムサイズとフラッシュサイズは同じではありません。 .mapファイルは、プログラムメモリ、.rodataセグメンテーションなどを別々に表示します。いくつかのフラッシュプログラマツールは、内容が何をするかについての手がかりを持たずに、プログラムする必要のあるフラッシュのみを表示します。 – Lundin

答えて

1

さらに詳細な要約は、size --format=berkeley a.hexによって提供される。バークレー形式では、コンパイルされたIntel .hexファイルの各セクションのサイズが示され、最後に総計が与えられます。

これは、異なるセクションが異なるメモリ領域に入るため、使用される最高アドレスと同じではありません。

ELF形式にコンパイルすると、RAM使用量(text + bss)に関する情報も得られますが、すべてのコンパイラでそのオプションがサポートされるわけではありません。

関連する問題