我有一些編譯ARM cortex-m設備的裸機代碼以及Beaglebone Black(BBB)的Linux內核,uBoot和應用程序的經驗(對於那些生活在搖滾中的人來說,更多功能ARM和MMU)。它使我對cortex-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至少是一個沒有花哨的操作系統的裸機程序。這一直困擾我一段時間,但我找不到答案。有沒有人能夠啓發我?
你從哪裏學到這個*「uBoot [sic],內核也應該用arm-linux-gnueabi-gcc」*編譯?我已經看到U-Boot和Linux內核使用相同的工具鏈編譯(例如在Buildroot中),這大概是因爲方便。但我通常使用裸機工具鏈作爲引導程序,例如U-Boot(即,我構建了兩個工具鏈)。 – sawdust
我剛剛從例如[this](http://processors.wiki.ti.com/index.php/AM335x_U-Boot_User's_Guide#Building_U-Boot)中假設。你是說uBoot實際上可以被編譯嗎?內核呢? –
是的。同樣的交易。 – sawdust