0

これは奇妙に思えるかもしれませんが、コードに同じライブラリを 2 回リンクする必要があります。

ちょっとした背景: ブートローダーとアプリケーションを使用してファームウェアを少し書いています。どちらのコードも、comms ライブラリ (spi) とその他のシステム ライブラリを使用して実行する必要があります。それらのライブラリを使用して実行している場合、ブートローダーでそれらのライブラリを置き換えることはできません。したがって、lib を 2 回 (ブートローダー用に 1 回、アプリケーション用に 1 回) 含めたいと思います。

以前は、2 つのプログラムを作成し、ビルド プロセスの一部として HEX ファイルを接合することでこれを行っていました。今回は、アプリケーションとブートローダーの両方を含む (両方のデバッグ シンボルを含む) エルフを 1 つ作成したいと思います。その後、ビルド後のステップでブート ロード イメージを削除して、ブート ロード イメージを生成できます。これにより、完全なイメージを構築し、リンカーを使用して独自のツールを作成せずに衝突などを回避することができます。つまり、ブートローダーとアプリケーションのエラーを簡単にデバッグできますが、唯一の障害は lib を複数回使用することです。

解決策は、bootloader.a と application.a の 2 つの個別の静的ライブラリを作成することであると考えていますが、どちらも既に他のライブラリを含んでいますが、これは面倒です。誰もがより良い解決策を知っていますか?

4

0 に答える 0