私は、ARM cortex-mデバイス用のベアメタルコード、Linuxカーネル、uBoot、Beaglebone Black(BBB)用のアプリケーションをコンパイルした経験があります。これは、皮質mコードはarm-none-eabi-gcc(OSがないため)を使用してコンパイルする必要があり、BBBのアプリケーションコードはarm-linux-gnueabi-gccでコンパイルする必要がありますシステムコールの作成が可能なOS、利用可能なプログラムローダと共有オブジェクト)です。LinuxカーネルとuBootをコンパイルすると、arm-linux-gnueabi-gccではなくarm-none-eabi-gccではないのはなぜですか?
私が理解できないのは、uBootとカーネルもarm-linux-gnueabi-gccでコンパイルする必要があるからです。私の考えでは、uBootは少なくとも、ベアメタルのプログラムであり、気になるOSはありません。これはいつか私を悩ませていますが、私は答えを見つけることができません。私を啓発できる人は誰ですか?
ここであなたは* "uBoot [sic]を学びましたが、カーネルもarm-linux-gnueabi-gccでコンパイルする必要があります" *?おそらく便利のため、U-BootとLinuxカーネルが同じツールチェーン(たとえばBuildroot)でコンパイルされているのを見てきました。しかし、私は通常、U-Bootのようなブートローダにはベアメタルのツールチェーンを使用します(つまり、私は2つのツールチェーンを構築します)。 – sawdust
私は[this](http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#Building_U-Boot)のような例から推測しました。 uBootは実際にどちらかでコンパイルできると言っていますか?カーネルはどうですか? –
はい。同じ取引。 – sawdust