问题
我们正在尝试在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上找到答案几个小时,但没有成功。 :/
答案 0 :(得分:2)
arm-none-eabi
是一个非Linux编译器。它适用于裸机应用程序。区别在于C
库。但是,gcc
与正常编译的C
库密切相关。
然后是代码。它不是为Linux编写的。它是为裸机应用程序编写的。您需要在没有Linux的情况下从Raspberry-Pi引导加载程序(berryboot?)加载和运行代码。
您可以使用ARM Linux编译器为裸机应用程序创建代码。但是,您可能更容易找到针对Raspberry Pi的 newlib 编译器。您可以在网上搜索或,尝试自己构建一个。