以前、バイナリファイルのリンク可能なオブジェクトへの変換技を紹介しましたが、肝心の変換後のオブジェクトファイルの埋め込み方、プロジェクトへのへの組み込み方をご紹介していませんでした。
今回は、短い記事ですが、その変換したオブジェクトをプロジェクトへどのように組み込むのかご紹介したいと思います。非常に簡単です。
リンク可能なオブジェクトファイルの用意
以前の記事を参考にしてELF形式のバイナリーへ変換してください。
無事変換できたら、変換後のファイルを分かりやすいように、プロジェクトのワークスペースフォルダにでもコピーしておきましょう。
MCUXpresso IDEの場合
まず、MCUXpresso IDEの場合です。
こちらは、非常に簡単です。リンカ設定に指定オブジェクトを選択して追加するだけです。

はい、これだけです。
IAR EWARMの場合
EWARMの場合は、少し設定があります。シンボルは、objdumpなどで事前に確認した方が確実です。
そのシンボル名を設定し、ローバイナリイメージに変換したバイナリオブジェクトファイルを指定します。
セクションには、textセクションやreadonlyを指定します。アライメントは、適宜変更してください。
これで設定は終わりです。
ソースコードからアクセスする
あとは、このバイナリへアクセスすれば良いわけですが、ソースコードでは以下のようにしてアクセスすることが可能です。
extern char _binary_filename_bin_start[];
extern char _binary_filename_bin_end[];
extern char _binary_filename_bin_size[];
これらは、ポインタを使用して管理しても良いと思います。
以上でバイナリオブジェクトのプロジェクトへの組み込み方法でした。
是非、参考にしてください。