gpt4 book ai didi

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

转载 作者:IT王子 更新时间:2023-10-29 00:22:32 31 4
gpt4 key购买 nike

我在为 ARM cortex-m 设备以及 Linux 内核、uBoot 和 Beaglebone Black (BBB) 的应用程序编译裸机代码方面有一些经验(更多功能的 ARM 和 MMU,适合那些生活在岩石下的人)。对我来说,应该使用 arm-none-eabi-gcc 编译 cortex-m 代码(因为没有操作系统)并且 BBB 的应用程序代码应该使用 arm-linux-gnueabi-gcc 编译(因为有是一个操作系统,可以对其进行系统调用,并可以使用程序加载器和共享对象。

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

最佳答案

U-Boot 旨在尽可能反射(reflect) Linux 设计理念。它使用相同的配置系统、通用目录结构等。它与 Linux 共享一些 API——请参阅 include/linux 目录。正如上面的评论所提到的,ABI 兼容性在这一点上并不重要,但使用 Linux 编译器在哲学上并不适合 U-Boot。

关于c - 为什么在编译 Linux 内核和 uBoot 时使用 arm-linux-gnueabi-gcc 而不是 arm-none-eabi-gcc?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33586100/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com