Ich habe etwas Erfahrung kompilieren Bare-Metal-Code für ARM-Cortex-M-Geräte sowie die Linux Kernal, uBoot und Anwendungen für die Beaglebone Black (BBB) (mehr Feature ARM mit MMU, für diejenigen, die unter einem Felsen leben). Es macht für mich, dass der Cortex-M-Code mit arm-none-eabi-gcc kompiliert werden sollte (da es kein Betriebssystem gibt) und der Anwendungscode für die BBB sollte mit arm-linux-gnueabi-gcc (wie dort) kompiliert werden ist ein OS, für das Systemaufrufe gemacht werden können und Programmlader und geteilte Objekte, die verwendet werden können).Warum arm-linux-gnueabi-gcc und nicht arm-none-eabi-gcc beim kompilieren von Linux kernel und uBoot?
Was ich nicht verstehe ist, warum uBoot und der Kernel auch mit arm-linux-gnueabi-gcc kompiliert werden sollten. Meiner Meinung nach ist zumindest UBoot ein Bare-Metal-Programm, für das es kein schickes Betriebssystem gibt. Das nervt mich schon seit einiger Zeit, aber ich kann keine Antwort finden. Gibt es jemanden da draußen, der mich erleuchten kann?
Wo hast du das gelernt * "uBoot [sic] und der Kernel sollte auch mit arm-linux-gnueabi-gcc kompiliert werden" *? Ich habe gesehen, U-Boot und der Linux-Kernel mit der gleichen Toolchain (z. B. in Buildroot) vermutlich aus Bequemlichkeit kompiliert. Aber ich verwende normalerweise eine Baremetal Toolchain für Bootloader wie U-Boot (d. H. Ich baue zwei Toolchains). – sawdust
Ich habe nur von Beispielen wie [this] (http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User'Guide#Building_U-Boot) ausgegangen. Willst du sagen, dass uBoot mit beiden kombiniert werden kann? Was ist mit dem Kernel? –
Ja. Gleicher Deal. – sawdust