首页 文章

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

提问于
浏览
7

我有一些编译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至少是一个裸机程序,没有花哨的操作系统来解释 . 这一直困扰着我,但我找不到答案 . 那里有没有人可以开导我?

1 回答

  • 0

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

相关问题