我有过一些为ARM more m设备以及Linux内核、uBoot和Beaglebone Black (为那些生活在岩石下的人编写更多带有MMU的ARM )应用程序编写裸机代码的经验。对我来说,应该使用arm-none-eabi-gcc (因为没有操作系统)编译cortex m代码是有意义的,而BBB的应用程序代码应该使用arm-linux-gnueabi-gcc (因为有操作系统,可以对其进行系统调用,并且可以使用程序加载器和共享对象)。我不明白的是为什么uBoot和内核也要用arm-linux