【问题标题】:Compile for ARM Cortex M3 using standard GCC?使用标准 GCC 为 ARM Cortex M3 编译?
【发布时间】:2011-06-10 15:23:55
【问题描述】:

是否可以使用带有--target 开关的 vanilla GCC 为 ARM Cortex M3 (LPC1768) 编译 C/C++ 代码,还是我需要编译 GCC、binutils 等来执行此操作?

【问题讨论】:

标签: gcc embedded arm microcontroller cortex-m3


【解决方案1】:

CodeSourcery G++ 支持多种 ARM 处理器,包括 Cortex-M3。除非您需要专业支持,否则它也是免费的。

【讨论】:

  • 谢谢。我不知道它是免费的 - 感谢您的提醒!
  • 还有一个精简版,你需要阅读许可协议。
  • llvm,但是,交叉编译开箱即用,您可以使用 -march=arm 为 arm 构建。取决于你在做什么
  • cortex-m3 仅是 thumb/thumb2 所以在编译(使用 gcc)时要小心指定处理器类型,否则它将默认为 arm 指令。我对 llvm -march=arm 的评论将构建 arm 它可能是 -march=thumb 为 thumb 构建。
  • 并确保在为 Cortex-M 编译时不要指定 -mthumb-interwork,否则会在其中得到 ARM32 代码,您的 MCU 将无法理解这些代码,因此您的程序会崩溃。
【解决方案2】:

您可以在here 找到一系列优秀的教程式博客文章,例如this one 关于 M3 的裸机编程。

【讨论】:

    【解决方案3】:

    如前所述,这不是您仅有的两个选择。我建议尝试 ARM 工程师准备的这个工具链:GNU Tools for ARM Embedded Processors 。它专为 Cortex-M 和 Cortex-R 内核量身定制,无需注册即可下载。

    【讨论】:

    猜你喜欢
    • 2014-02-11
    • 1970-01-01
    • 2010-12-02
    • 1970-01-01
    • 2012-05-15
    • 1970-01-01
    • 2014-06-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多