Opções de programação diferentes de C ++


14

Posso programar meu Arduino usando qualquer linguagem de programação que não seja C ++? Em caso afirmativo, quais linguagens de programação? De que software eu precisaria para compilar e carregar meu código no Arduino?



Infelizmente, essa é uma duplicata eficaz de uma pergunta que não é do Arduino.SE: veja aqui Eu acho que a pergunta que eu vinculei deve ser movida aqui após o término da versão beta, mas ainda não.
— apnorton

@anorton Essa pergunta está perguntando sobre IDEs alternativos. Esta pergunta não é duplicada porque fala sobre linguagens de programação alternativas.
— tstew

@ user2202326 Desculpe ... parecia me lembrar de mais pessoas respondendo com idiomas diferentes do que IDEs nesse segmento, mas, aparentemente, eu estava errado. Continue.
— apnorton

Você pode procurar no Netduino se estiver familiarizado com o C # (o Visual Studio é o caminho a seguir, mas existem outras maneiras de compilar o código C #). Não sei qual placa você possui e se é compatível. netduino.com
— Jason Down

Respostas:


5

Alguns conhecidos:

Em teoria, você deve poder estender o avr-gcc para suportar outros idiomas, embora isso não seja uma tarefa pequena. Também devo ressaltar que o suporte a idiomas diferentes de C geralmente vem com algumas restrições bastante pesadas sobre os componentes de idioma - por exemplo, mesmo com o C ++, é desencorajado a instanciar novos objetos malloce freeé extremamente caro no espaço de memória e nos ciclos.

Além de usar o Google, as seguintes referências são aplicáveis Clique aqui.


8

Em teoria, qualquer compilador que produza o conjunto AVR pode ser usado (limitações do módulo em tamanho de código, uso de memória RAM, etc.).

Os back-end do AVR existem para o LLVM e o GCC - portanto, em teoria, com algum esforço, a maioria dos idiomas suportados pelos front-ends do LLVM e do GCC pode ser compilada no AVR. Uma grande questão será o suporte da biblioteca, etc.

No entanto, aqui estão algumas escolhas estranhas para o espírito da pergunta, em vez da letra [1].

  • AMForth , um quarto dialeto pode ser exibido em um Arduino.
  • AVR-Ada : Ada para microcontroladores AVR.
  • BÁSICO : Traga de volta o Goto!

Ah, e você pode escrever o AVR Assembly cru !

[1] - Eu ainda não tentei isso!


2

Existem também algumas pessoas trabalhando em sistemas baseados no node.js do Javascript . Um que já está disponível ao público é o Espruino e o outro é o Tessel, lançado na primavera de 2014.


1

Como o avr-g ++ deve suportar todas as construções C / C ++ padrão, é possível codificar o assembly embutido. Mais informações sobre este tópico do fórum arduino.cc


O assembly embutido não faz parte dos padrões C / C ++, mas o gcc e o compilador microsoft c o suportam, embora de forma incompatível.
— tbodt

true e o avr_gcc também.
— Faux_Clef

Nada é melhor do que escrever código executável em hexadecimal.
— Faux_Clef

1

Estou surpreso que ninguém tenha mencionado a Assembléia AVR !

Geralmente, o assembly não é considerado o método de programação mais interessante ou mesmo fácil, mas, no entanto, é 100% possível com todo o arduino baseado em AVR. As placas SAM provavelmente não funcionarão com esse sabor, mas ainda é possível usar a montagem em sua programação.

Todas as placas Arduino (no momento da publicação) suportam a programação de montagem via Atmel Studio , o SDK feito para chips baseados em Atmel.

O assembly é suportado ingenuamente por todos os dispositivos Atmel e não requer carregador de inicialização para funcionar, portanto, todos os programas são inerentemente em tempo real.


2
Observe que o assembly também é suportado pela cadeia de ferramentas gcc, incluída na instalação do IDE do Arduino.
— Edgar Bonet

@EdgarBonet Correto, é por isso que __asm__("Assembly code here")trabalha para adicionar montagem em linha a qualquer esboço. Para a maioria dos programas, essa é uma péssima idéia, pois é difícil obter independência de plataforma com esse método.
— tuskiomi
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.