PC上のツール等で計算したオブジェクトファイルのサム値と、NETIMPRESSで書き込みを
実行した際に出力されるサム値が一致しない場合、以下の要因が考えられます。
実行した際に出力されるサム値が一致しない場合、以下の要因が考えられます。
■ 要因1:サム値の計算方式が異なっている
-
詳細: NETIMPRESS(プログラマ)のサム値計算は、基本的に「桁あふれ無視の
単純加算方式」を採用しています。お客様がオブジェクトファイルのサム値を
計算したツールが「補数計算」など異なる方式を用いている場合、計算結果は
一致しません。 -
対策: お客様の環境で使用されているオブジェクトファイルのサム値計算ツールの仕様
(計算方式)をご確認ください。
■ 要因2:オブジェクトファイルのデータサイズが、フラッシュメモリのサイズより小さい
(空き領域がある)
(空き領域がある)
-
詳細: NETIMPRESSの仕様上、出力されるサム値は「実際に書き込みおよび
ベリファイを行った領域」から計算されます。 通常、オブジェクトファイル
内にデータが存在しない空き領域については、「FF」データがあるものとして
書き込み・ベリファイが行われるため、そのFFデータ分がNETIMPRESSの
サム値に加算されます。
※「オブジェクトファイル書き込み機能」を有効にしている場合は逆に、
データが無い領域の書き込み・ベリファイがスキップされるため、計算ツール側
との計算範囲にズレが生じることがあります) -
対策: 計算ツール側で空き領域を「FF」でフィル(穴埋め)して計算させるか、
対象マイコンへ正常に書き込みが完了した際にNETIMPRESSが出力する
サム値を、正しいサム値としてご採用ください。
■ 要因3:ファイルのロード前にバッファクリアを行っていない
-
詳細: オブジェクトファイルをバッファメモリへロードする前にバッファクリアを行わないと、
以前にロードしたデータや不要なゴミデータがバッファメモリ上に一部残ってしまい、
意図しないデータを含んでサム値が計算される場合があります。 -
対策: 必ず「バッファクリア」を実行した後に、オブジェクトファイルをロードし直して
から、再度サム値をご確認ください。
<関連項目>
[NETIMPRESS共通] サム値の計算方法について