为什么在编译Linux内核和uBoot时arm-linux-gnueabi-gcc而不是arm-none-eabi-gcc?

前端之家收集整理的这篇文章主要介绍了为什么在编译Linux内核和uBoot时arm-linux-gnueabi-gcc而不是arm-none-eabi-gcc?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一些编译ARM cortex-m设备的裸机代码以及 Linux核心,uBoot和Beaglebone Black(BBB)的应用程序的经验(更多特色ARM与MMU,生活在摇滚之下).从那以后,我认为cortex-m代码应该使用arm-none-eabi-gcc编译(因为没有操作系统),BBB的应用程序代码应该用arm-linux-gnueabi-gcc编译(因为那里)是一个操作系统,可以进行系统调用,程序加载器和可以使用的共享对象.

我不明白为什么uBoot和内核也应该用arm-linux-gnueabi-gcc编译.在我看来,uBoot至少是一个裸机程序,没有花哨的操作系统来解释.这一直困扰着我,但我找不到答案.那里有没有人可以开导我?

解决方法

U-Boot旨在尽可能地反映Linux设计理念.它使用相同的配置系统,通用目录结构等.它与Linux共享一些API – 请参阅include / linux目录.正如上面提到的那样,ABI兼容性在这一点上并不重要,但使用Linux编译器在U-Boot上并不合适.

猜你在找的Linux相关文章