微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我有一些编译ARM cortex-m设备以及Beaglebone Black(BBB)的Linux内核,uBoot和应用程序的裸机代码的经验(对于那些生活在摇滚中的人来说,更多的是带有MMU的ARM)。 因为我认为cortex-m代码应该使用arm-none-eabi–gcc编译(因为没有OS),BBB的应用程序代码应该用arm-linux-gnueabi-gcc编译是一个可以进行系统调用的操作系统,可以使用程序加载器和共享对象)。

我不明白的是为什么uBoot和内核也应该用arm-linux-gnueabi-gcc编译。 在我看来,uBoot至less是一个没有花哨的操作系统的裸机程序。 这一直在困扰我一段时间,但我找不到答案。 有没有人能够启发我?

为什么在Linux内核升级后需要重新编译vmware内核模块?

arm版本之间的区别?(仅适用于ARMv7)

什么是x86_64 va_list结构的格式?

我应该如何处理gcc-4.9和gcc-5之间的ABI不兼容?

构build现代(4.x)GCC,以与主机相同的架构来定位2.4.x内核?

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐