C ++以外的编程选项


14

我可以使用C ++以外的任何其他编程语言对Arduino进行编程吗?如果是这样,哪种编程语言?我需要什么软件来将代码编译并加载到Arduino?



不幸的是,这是非Arduino.SE问题的有效副本:看到这里, 我认为我链接的问题应该在beta结束后移到这里,但不仅限于此。
apnorton 2014年

@anorton该问题询问的是替代IDE。这个问题不是重复的,因为它讨论的是替代编程语言。
tstew 2014年

@ user2202326对不起...我似乎回想起与该线程上的IDE相比,使用不同语言进行响应的人更多,但是,显然,我错了。继续。
apnorton 2014年

如果您熟悉C#,则可以研究Netduino(可以使用Visual Studio,但是还有其他编译C#代码的方法)。我不知道您拥有什么板,但是它是否兼容。netduino.com
Jason Down

Answers:


5

一些众所周知的:

从理论上讲,您应该能够扩展avr-gcc以支持其他语言,尽管这并非易事。我也应该为警告以外,C语言的支持通常来自对语言成分一些相当沉重的限制-例如,即使C ++它的劝阻被实例化的新对象作为mallocfree在两种存储空间和周期非常昂贵。

除使用Google外,以下参考也适用。单击此处。


8

从理论上讲,可以使用任何输出AVR程序集的编译器(代码大小,内存使用率等的模数限制)。

LLVMGCC都存在AVR后端-因此,理论上,通过一些努力,LLVM和GCC前端支持的大多数语言都可以编译为AVR。一个大问题将是图书馆支持等。

不管怎样,对于问题的实质,这里有几个奇怪的选择,而不是它的字母[1]。

哦,您可以编写原始的AVR汇编

[1]-我还没有尝试过这些!



1

由于avr-g ++应该支持所有标准C / C ++构造,因此可以对内联汇编进行编码。有关 arduino.cc论坛线程的更多信息


内联程序集不是C / C ++标准的一部分,但gcc和Microsoft c编译器支持它,尽管不兼容。
tbodt

正确,avr_gcc也是如此。
Faux_Clef 2014年

无论如何,最好还是用十六进制编写可执行代码。
Faux_Clef

1

我很惊讶没有人提到AVR组件

人们通常不认为汇编是最有趣的方法,甚至不是一种简单的编程方法,但是尽管如此,使用所有基于AVR的arduino还是有100%的可能性。SAM板可能无法使用这种风格,但是仍然可以在其编程中使用汇编。

所有Arduino板(发布时)都支持通过Atmel Studio(针对基于Atmel芯片的SDK)进行装配编程。

所有Atmel设备自然都支持汇编,并且不需要引导加载程序即可工作,因此所有程序本质上都是实时的。


2
请注意,gcc工具链也支持汇编,该工具链包含在Arduino IDE安装中。
埃德加·波内(Edgar Bonet)

@EdgarBonet正确,这就是为什么__asm__("Assembly code here")要向任何草图添加嵌入式装配的原因。对于大多数程序来说,这是一个坏主意,因为用这种方法很难实现平台独立性。
tuskiomi19年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.