使用标准GCC编译ARM Cortex M3?

9
可以使用原始的GCC和--target开关来编译ARM Cortex M3(LPC1768)的C/C++代码吗?还是需要编译GCC、binutils等工具才能实现这一点?

1
如果您正在使用Linux,可以尝试访问以下链接:http://www.eluaproject.net/doc/v0.8/en_tc_cortex.html - harvis
3个回答

10

如已经提到的那样,这并不是你唯一的两个选项。我建议尝试由ARM工程师准备的这个工具链:GNU Tools for ARM Embedded Processors 。它专门为Cortex-M和Cortex-R内核定制,而且不需要注册即可下载。


1
我发现这个工具链的新下载页面更易于使用,而且它来自arm.com让我更加放心:https://developer.arm.com/open-source/gnu-toolchain/gnu-rm/downloads - David Grayson

4

您可以在这里找到一系列优秀的教程风格博客文章,例如这篇关于M3的裸机编程。


3

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


好的,有一个精简版,您需要阅读许可协议。 - old_timer
2
llvm,虽然可以直接交叉编译,但你也可以使用“-march=arm”来构建ARM架构的程序。不过这取决于你要做什么。 - old_timer
2
Cortex-M3 只支持 Thumb/Thumb2 指令集,编译时(使用 GCC)一定要注意指定处理器类型,否则会默认使用 ARM 指令。关于 LLVM 的评论,-march=arm 会构建 ARM,而 -march=thumb 则会构建 Thumb。 - old_timer
1
请确保在为Cortex-M编译时不指定-mthumb-interwork,否则您将在其中获得ARM32代码,而您的MCU将无法理解,从而导致程序崩溃。 - user1985657

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接