日記

備忘録-オブジェクトファイル、リンカ説明

ソフトのプロジェクトファイルをビルドするとオブジェクトファイルを生成する。

※.objで終わるファイルのこと

オブジェクトファイルは機械語のコードであるが、変数や関数のアドレスは割り振っていない。リンク作業によりアドレスを決定し実行形式ファイル(ELF形式)として生成する。

ELF形式はそのままではマイコンに書き込めないため、モトローラSレコードフォーマットという形(.mot)に変換しマイコンに書き込む。

変数や関数をどのアドレスに配置するかのリンク作業はリンカスクリプトによって決定する。

普段私たちがコンパイルする際はリンク作業は自動で行うが、手動でアドレスを決定したい場合はリンカスクリプトファイルをいじる必要がある。

直近の私の業務では、boot領域のコードを再書き込みする際にリンカスクリプトを変更し、boot領域に置かれてた関数アドレスをアプリ領域に移す作業をした。