Sugestões para o apropriado (melhor) língua mais para a programação de um sistema embarcado? [fechadas]

StackOverflow https://stackoverflow.com/questions/649197

  •  19-08-2019
  •  | 
  •  

Pergunta

Eu estou olhando para fazer incorporado de codificação para um dispositivo que é de aproximadamente 20 MHz, tem ram 6MB, com um processador ARM32. Alguém pode sugerir a melhor linguagem / mais apropriado para a programação de um sistema embarcado? Estou pensando em:

  • Lua
  • TinyPy
  • C
  • Java ME
  • C #
  • alguém sugeriu JavaScript

Todas as sugestões? Graças

Edit - olhares como C e Lua são os vencedores. Felicidades tudo!

Edit -. Tempo real não é um problema, seus mais o carneiro limitada / cpu ditando as coisas

Foi útil?

Solução

Eu usado Lua em um processador ARM OMAP. integração da Lua com C permite ir para o metal sempre que precisar, e seu pequeno tamanho torna-o adequado para uma ampla gama de plataformas. Eu desenvolvi a interface do usuário para o meu firmware na Lua no meu mac e, em seguida, trouxe-o para a plataforma embarcada sem alterações.

Enquanto o processador OMAP foi suficiente robusto para executar outras linguagens como Java ou Python, eu não sabia o hardware I foi alvo quando eu comecei o código. Lua foi uma aposta segura.

Outras dicas

Se você está trazendo o dispositivo a partir do zero ou interface direta com periféricos não-padrão, C é realmente a única maneira de ir.

Se você já tem um um SO ou porta lata incorporado sem dificuldade, você pode ter mais flexibilidade na adição de um dos mais linguagens de script-y. C # é fora de questão, a menos que você está no WinCE, e então você vai ser restrito a .NET Micro.

Além disso, "melhor" tem pouco significado sem descrever o que o dispositivo vai ser utilizado. Algumas línguas têm um melhor suporte para determinadas tarefas do que outros.

C é provavelmente a sua melhor aposta para tais recursos da CPU limitado.

eu estaria tentado a ir com reta C, mas então eu tenho escrito C por quase 30 anos. Lua e TinyPy parece muito novo, experimental, para mim; dispositivos embarcados precisa ser muito robusto.

Java ME tem bons pontos. Eu não sei sobre C # num mundo incorporado.

É importante especificar o que você espera deste dispositivo para fazer. É algum tipo de aplicativo de controle? Será que ela tem para implementar algoritmos? O que sobre o suporte de ponto flutuante? GUIs? É desempenho crítico? Você está pensando em usar um sistema operacional?

A resposta a estas perguntas é um pré-requisito crucial para escolher uma linguagem de programação.

Dito isto, sistemas embarcados tem que ser confiável, então eu ir para alguma solução testada. C é provavelmente a opção mais sólida e melhor suporte para chips ARM, mas YMMV dependendo de suas necessidades específicas.

C é certamente a língua mais usada em sistemas embarcados. Ele também parece ser o mais falado sobre a linguagem em geral http://www.langpop.com/

Editar: hmm. Eu notei que o 'incorporado' você parece estar descrevendo não é sobre a adição de uma linguagem de automação para uma aplicação, mas espremendo um aplicativo em uma plataforma incorporado. Como outros sugerem, a menos que você realmente precisa dele, pule línguas incorporáveis ??e programar sua aplicação em C. Há quase nenhum tempo de execução sobrecarga para que, exceto para o que você realmente usar.

Em nenhuma ordem particular, Lua, JavaScript e TCL são todos muito bem adequado para a incorporação. Lua tem sido o mais fácil para mim incorporação. Javascript força ser o mais rápido. Todos os três têm boa movimentação para código não confiável, mas TCL do é mais robusto, por exemplo, o código não confiável pode executar código não confiável (se é confiável para fazer que muito).

A menos que você tem um RTOS disponível que suporta uma variedade de idiomas alternativos, C ou C ++ (dependendo da sua cadeia de compilador) é o caminho a percorrer.

A sua decisão é mais provável a ser determinado pelas ferramentas disponíveis para este processador.

C é, de longe, a língua mais suporte para processadores embarcados, para que você não pode ir muito errado com isso, e vai ser uma boa experiência se tiver de software de gravação para outros chips no futuro.

C ++ está se tornando mais popular para sistemas embarcados. Além disso, ele depende de suas prioridades (time to market, uso de recursos, velocidade), ea qualidade das ferramentas que você usa.

C o melhor

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top