编译本机覆盆子pi的问题

时间:2013-03-04 21:51:55

标签: gcc compilation compiler-errors arm raspberry-pi

问题

我们正在尝试在raspberry pi上编译spi_slave代码。我们使用了本机gcc编译器,编译运行没有任何错误。

问题是当我尝试运行输出时:

/ home / pi / spi_slave#。/ build / output.elf 分段错误

/ home / pi / spi_slave#。/ build / kernel.img bash:./ build / kernel.img:无法执行二进制文件

试图从剑桥下载arm-none-eabi编译器,但它不会运行: / home / pi / spi_slave#../arm-2008q3/bin/arm-none-eabi-gcc bash:../ arm-2008q3/bin/arm-none-eabi-gcc:无法执行二进制文件

源码

我们尝试编译的代码是:http://tylernichols.me/wp-content/uploads/2012/11/raspberry_pi_bare_metal_spi_slave.zip

我们做的唯一更改是在makefile中,在ARMGNU var前面添加了一个#

#ARMGNU = arm-none-eabi

Environement

# uname -a
Linux raspberrypi 3.6.11+ #371 PREEMPT Thu Feb 7 16:31:35 GMT 2013 armv6l GNU/Linux

我做错了什么?

我们已经尝试在Google和stackoverflow上找到答案几个小时,但没有成功。 :/

1 个答案:

答案 0 :(得分:2)

arm-none-eabi是一个非Linux编译器。它适用于裸机应用程序。区别在于C库。但是,gcc与正常编译的C库密切相关。

然后是代码。它不是为Linux编写的。它是为裸机应用程序编写的。您需要在没有Linux的情况下从Raspberry-Pi引导加载程序(berryboot?)加载和运行代码。

您可以使用ARM Linux编译器为裸机应用程序创建代码。但是,您可能更容易找到针对Raspberry Pi的 newlib 编译器。您可以在网上搜索,尝试自己构建一个。

请参阅:How to build gcc for Raspberry PiBare-metal gcc