2013-03-04 28 views
2

問題編譯問題,茅莓丕

我們正在嘗試編譯一個樹莓派的spi_slave代碼。我們使用本地gcc編譯器,並且編譯運行時沒有任何錯誤。

問題是,當我嘗試運行輸出:

/家庭/ PI/spi_slave#./build/output.elf 分段故障

/家庭/ PI/spi_slave#./build /kernel.img 慶典:./build/kernel.img:不能執行二進制文件

試圖下載從劍橋臂無 - EABI編譯器,但它不會運行: /家庭/ PI/spi_slave#../arm-2008q3/bin/arm-none-eabi-gcc bash:../arm-2008q3/bin/arm-none-eabi-gcc:can not execut Ë二進制文件

源碼

我們試圖編譯的代碼是: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

它看起來像* dwelch *(可能與棧溢出相同)有一個用於Raspberry PI的newlib端口。 https://github.com/dwelch67/raspberrypi/tree/master/newlib0 – 2013-03-05 17:37:56

回答

2

arm-none-eabi是一個非linux編譯器。它適用於裸機應用程序。區別在於C庫。但是,gcc與用於正常編譯的C庫密切相關。

然後是代碼。它不是爲Linux編寫的。它是爲裸露金屬應用程序編寫的。您需要在沒有Linux的情況下加載並運行Raspberry-Pi引導加載程序(berryboot?)中的代碼。

您可以使用ARM Linux編譯器爲裸金屬應用程序創建代碼。但是,您可能更容易找到針對Raspberry Pi的編譯器。您可以在網上搜索一個嘗試自己創建一個。

參見:How to build gcc for Raspberry PiBare-metal gcc