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?
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?
Respostas:
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 malloc
e 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.
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].
Ah, e você pode escrever o AVR Assembly cru !
[1] - Eu ainda não tentei isso!
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
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.
__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.