2016-05-11 1 views
-2

チップ上のプログラムが占有するフラッシュメモリの量は、.HEXファイルの内容とサイズに基づいて計算できますか?もしそうでなければ、別の方法がありますか?.HEXファイル内のバイト数に対する占有フラッシュメモリの量

32kBのフラッシュメモリを搭載したチップには、32kBのフラッシュメモリが搭載されていますか?

例:

マークは、それが組み立て.HEXファイルとAtmel社が提供するAVRDUDEツールを使用して、彼のプログラムの後に彼のATMEGA328Pマイクロプロセッサ上に残っているフラッシュメモリの容量のために不健康な懸念を持っています。そこで彼は、テキストエディタを使用して.HEXファイルを開き、バイトをカウント:

:100000000C9434000C943E000C943E000C943E0082 :100010000C943E000C943E000C943E000C943E0068 :100020000C943E000C943E000C943E000C943E0058 :100030000C943E000C943E000C943E000C943E0048 :100040000C943E000C943E000C943E000C943E0038 :100050000C943E000C943E000C943E000C943E0028 :100060000C943E000C943E0011241FBECFEFD8E04C :10007000DEBFCDBF0E9440000C9453000C940000E2 :100080008FEF84B987B985B1809585B988B180959E :1000900088B92FEF83ED90E3215080409040E1F745
:0A00A00000C00 000F0CFF894FFCF7D

:00000001FF

彼の結果が115の合計バイトを含む118です ":"。しかしながら、マークはこれらのバイトのそれがチェックサムとフラグであることを認識します。彼のコードでハードウェアをフラッシュするためにMarkがavrdudeを実行すると、ツールはファイルに170バイトが含まれていることを伝えます。これは、チップ上のフリー・フラッシュ・メモリの合計量が、ツールが彼にファイルのバイト数について語ったもののわずか188倍であるため、彼を混乱させ、脅迫する。彼は涙で崩壊する。

マークの感情的な崩壊を避けるためには、.HEXファイルに格納されたプログラムが占めるフラッシュメモリのバイト数を見積もることができればよいでしょう。

P.S. Markは将来的にはより安価なローエンドシステムを使用しようとしており、そのようなシステムで彼のプログラムが占めるメモリ量を知る必要があります。

答えて

1

1)一般的には、 Intel 16進形式とMotorola srecordの場合、ファイルのサイズの非常に高いパーセンテージは、フラッシュ/ ROMの内容と直接関係しています。だから、正確にはバイト計算には向いていませんが、近づくことはできます。

2)このファイル形式は構文解析が簡単で、パーザを書くのに文字通り15分以下かかるので、ネットで調べてこの質問を書くのにかかる時間はおそらく短くなります。ちょうどそれを解析する。

3)彼らが量のフラッシュを宣伝している場合、それはどれくらいのフラッシュを持っているかです。時々彼らはナンバーゲームをプレイし、短いフィーチャーリストの1つの金額にはブートローダー領域やその他の領域が含まれますが、最終的にそれらを噛むような時代は一般的ではありません。

4)人気のあるツールチェーンで、プログラムの消費量を示す多くのツールがあります。マニュアルを読んだり、ネットを検索したり、45分かけてelfやsrecを探してくださいまたはihexパーサを使用してそれを使用する方法や、これらのツールのいずれかのために自分自身を書き留めるための15分、または既存のツールチェーンツールの使い方を学ぶのに2-3分かかる可能性があります。

+0

実際、既存のツールチェーンツールを使用するのは、最も簡単でファセット的な方法のようです。答えてくれてありがとう。疑問を書いていることの特典は、誰かが常にそれからいくつかのより多くの情報を得ることです! – NoobPointerException

関連する問題