ビルドのたびにSRECファイルが変更される

stlと申します。

プロジェクトを複製したところ、ビルドのたびにSRECファイルが変更される現象が発生しています。

状況

  • 元のプロジェクトでは、この現象は発生しません。
  • 複製後のプロジェクトでは、プログラムを一切変更していなくても、ビルドを2回連続で行うとSRECファイルが変更される状態になります。
  • ただし、ビルド自体は正常に完了し、エラーは発生していません。
  • プロジェクトの複製は、プロジェクトをエクスポートし、そのファイルの名前を変更してインポートする方法で行いました。

このような場合、SRECファイルがビルドごとに変更される原因としてどのような可能性が考えられるでしょうか?
また、解決のために試すべきことがあれば教えてください。

よろしくお願いいたします。

  • SRECファイルが何か?を考えたことありますか?

    ビルドしたら生成物としてELFファイルができます。その後、FlashROMに書き込む専用として余分なデバッグ情報などがなくなったROMデータが設定次第で生成されます。最近ではROMファイルはセキュリティ情報を含むため単純に生成しなくてクリプトされたりCRC情報がファイルヘッダに入ったりなどその製品に合わせたROMファイル生成があります。ビルド後に何をするのか?がビルド設定に入っているはずですのでそれを確認してみてください。

  • ビルド後に何をするのか、についての設定は、どこで確認できるのでしょうか?

    また、プロジェクトを複製した場合に、そのあたりの設定が勝手にかわってしまうことがあるのでしょうか?

  • stlさん、こんにちは。
    最近の環境で効果があるか分かりませんが、過去の知見から試すポイントを共有します。

    • プロジェクトのプロパティを開く => 「C/C++ビルド」 => 「振る舞い」 => 「リソース保管時にビルド」にチェックを入れる => 「適用」(「適用して閉じる」ではない) => 「リソース保管時にビルド」からチェックを外す => 「適用して閉じる」 => ビルド => ビルド(全ビルド現象が解消したか確認)
    • プロジェクトのプロパティを開く => 「C/C++ビルド」 => 「ポリシーを更新」 => 「リソース」一覧に現在編集しているプロジェクトが選択されているか確認 => 必要に応じて修正 => ビルド => ビルド(全ビルド現象が解消したか確認
    • e2 studioを再起動 => ビルド => ビルド(全ビルド現象が解消したか確認)
  •  さん

    「C/C++ビルド」を開いても、「振る舞い」という項目が見つからないのですが、どこにあるのでしょうか?

  • 添付されている画像では、「C/C++ビルド」下の「環境」を開いています。
    「C/C++ビルド」をクリックして表示された画面にございます。

  • >>プロジェクトのプロパティを開く => 「C/C++ビルド」 => 「振る舞い」 => 「リソース保管時にビルド」にチェックを入れる => 「適用」(「適用して閉じる」ではない) => 「リソース保管時にビルド」からチェックを外す => 「適用して閉じる」 => ビルド => ビルド(全ビルド現象が解消したか確認)

    こちらの方法を確認すると解決しました。

    ありがとうございました。

  • > 「リソース保管時にビルド」からチェックを外す
    eclipseのいわゆるauto buildですが、eclipseコミュニティでは非常に評判が悪い一方で、便利だから使うという一派もいるので外されずにいる機能です。
    コンフィグレータがファイルを書き換え終わる前にビルドが呼ばれてしまうから意図しない動きになるのだと思います。
    この現象に限らず切っておいた方が無難です。