「arm-elf」を生成するコンパイラ(gnuarm GCC 4.1.1)を使用してブートローダーとアプリケーションをコンパイルする製品があります。
ブートローダーとアプリケーションは、リンカースクリプトの異なるフラッシュメモリ領域に分離されています。
このアプリケーションには、ブートローダーを呼び出すことができる機能があります(2つのパラメーターを持つ単純なc関数として)。
世界中の既存の製品をアップグレードできる必要があります。これは、常に同じコンパイラを使用して安全に行うことができます。
ここで、arm-eabiを出力する新しいGCCバージョンを使用してこの製品アプリケーションをコンパイルできるようにしたいと思います。
アプリケーションとブートローダーの両方が同じツールチェーンを使用してコンパイルされる新製品ではすべて問題ありませんが、既存の製品はどうなりますか?GCC 4.6.xとarm-none-eabiでコンパイルされた新しいアプリケーションをフラッシュした場合でも、アプリケーションは古いarm-elfブートローダーからブートローダー関数を呼び出すことができますか?
さらに、上記の質問とは直接関係ありませんが、arm-elfでコンパイルされたオブジェクトファイルをarm-eabiでコンパイルされたバイナリに混合できますか?
編集:
何か違いがあれば、ベアメタルARM7用に構築していることを明確にするのは良いことだと思います...