MPLAB X IDEでBUILD SUCCESSFULなのにHEXファイルが使えない原因とPICライターで書き込む方法

C言語関連

MPLAB X IDEでプログラムをビルドした際に「BUILD SUCCESSFUL」と表示されたにもかかわらず、生成されたHEXファイルをPICライターで読み込もうとすると「Unrecognized File」と表示されることがあります。

この場合、コンパイルが失敗しているとは限らず、HEXファイルの選択場所やPICライター側が対応しているファイル形式、書き込み手順などが原因になっているケースがあります。この記事では、MPLAB X IDEで生成されたHEXファイルを正しく利用するための確認ポイントを解説します。

MPLAB X IDEのBUILD SUCCESSFULはコンパイル完了を意味する

MPLAB X IDEで「BUILD SUCCESSFUL」と表示されている場合、基本的にはソースコードのコンパイルとリンク処理が正常に完了しています。

そのため、distフォルダー内に生成された「***.X.production.hex」は、通常PICマイコンへ書き込むために使用できる正しいHEXファイルです。

ただし、BUILD SUCCESSFULは「HEXファイルがどの書き込みソフトでも使用できる」という意味ではありません。PICライター側が対応している形式や設定も確認する必要があります。

正しいHEXファイルの場所を確認する

MPLAB X IDEでは、プロジェクトをビルドすると複数のファイルが生成されます。その中にはデバッグ用や中間ファイルも含まれています。

PICライターへ読み込ませる場合は、通常以下のような場所にあるproduction用HEXファイルを使用します。

プロジェクトフォルダー → dist → default → production → プロジェクト名.X.production.hex

「build」フォルダー内のファイルや、拡張子が異なるファイルを選択すると、PICライター側で認識されない場合があります。

Unrecognized Fileと表示される主な原因

「Unrecognized File」という表示は、HEXファイル自体が壊れているというより、読み込み側のソフトウェアがそのファイル形式を認識できていない場合によく表示されます。

主な原因として以下のようなものがあります。

  • PICライターのソフトウェアがIntel HEX形式に対応していない
  • HEXファイルではなく別のファイルを選択している
  • ファイルの拡張子が変更されている
  • PICライターの対象デバイス設定が間違っている
  • 書き込みソフトが古く対応していない

例えば、MPLAB X IDEでPIC16F系用に生成したHEXファイルを、別メーカーの書き込みツールで読み込む場合、そのツールがPIC用HEX形式に対応している必要があります。

PICライター側で確認する設定

HEXファイルが正しく生成されていても、PICライター側の設定が合っていないと書き込みできません。

まず、使用しているPICライターの対応デバイス一覧を確認し、MPLAB X IDEで開発対象としているPICと一致しているか確認してください。

また、書き込みソフトによっては「HEX」「Intel HEX」「INHX8M」「INHX32」など複数の形式に対応している場合があります。使用するPICやツールによって適切な形式が異なることがあります。

MPLAB X IDEから直接書き込む方法もある

Microchip純正のPICkitやICDシリーズなどを使用している場合、MPLAB X IDEから直接PICへ書き込む方法もあります。

この方法では手動でHEXファイルをコピーして読み込ませる必要がなく、プロジェクト設定からデバイス、書き込みツールを指定して実行できます。

例えばPICkit 4を使用する場合、MPLAB X IDE上で「Make and Program Device」を実行すると、ビルド後に自動的に生成されたHEXファイルを使って書き込みまで行えます。

HEXファイルが本当に正常か確認する方法

生成されたHEXファイルが正常か確認するには、ファイルサイズや内容を確認する方法があります。

通常のPIC用HEXファイルはテキスト形式で保存されており、メモ帳などで開くと「:」から始まるIntel HEX形式のデータが表示されます。

ファイルが空になっている、文字化けしている、数バイトしかない場合は、ビルド設定やプロジェクト設定を見直す必要があります。

コンパイラ設定やプロジェクト設定も確認する

MPLAB X IDEでは、選択しているプロジェクト構成によって生成されるファイルが変わる場合があります。

例えばDebug構成とProduction構成では生成物が異なるため、PICライターへ渡す場合はProduction用のHEXファイルを利用するのが一般的です。

また、使用しているPICの型番とプロジェクト設定のデバイス名が一致しているかも重要です。違うPIC用に生成したHEXファイルでは正常に動作しません。

まとめ

MPLAB X IDEで「BUILD SUCCESSFUL」と表示されている場合、通常はコンパイルとHEXファイル生成は完了しています。

distフォルダー内の「***.X.production.hex」は基本的にPIC書き込み用のファイルですが、「Unrecognized File」と表示される場合は、HEXファイルの問題よりもPICライター側の対応形式や選択ファイル、設定が原因であることが多くあります。

使用しているPICライターが対応しているHEX形式を確認し、Production用HEXファイルを選択することで正常に書き込みできる可能性が高まります。

コメント

タイトルとURLをコピーしました