【问题标题】:Compile problems with native raspberry pi使用原生树莓派编译问题
【发布时间】:2013-03-04 21:51:54
【问题描述】:

问题

我们正在尝试在树莓派上编译 spi_slave 代码。我们使用了原生的 gcc 编译器,编译运行没有任何错误。

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

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

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

尝试从 cambridge 下载 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

环境

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

我做错了什么?

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

【问题讨论】:

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2017-10-29
    • 1970-01-01
    • 2022-01-05
    • 1970-01-01
    • 1970-01-01
    • 2013-07-19
    • 1970-01-01
    • 1970-01-01
    • 2017-06-19
    相关资源
    最近更新 更多