Pergunta

Uma maneira de olhar para ele - o Linux incorporado começa com o Linux e calcula as peças não necessárias para sistemas incorporados (isso é realmente verdadeiro?), Enquanto os ECOs são projetados a partir do solo para sistemas incorporados.

Agora, assuma um processador de braço, provavelmente o ARM 7 - o desempenho faz a diferença? Na verdade, conversamos em um sistema de carga muito baixo, no máximo 500 transações por dia.

Alguma vantagem de um sobre o outro (ou Freertos, etc)? Estabilidade, maturidade, desempenho, ferramentas de desenvolvimento, mais alguma coisa?

Tudo o que consigo pensar é que, se eu for certo Que nunca vou portar para outro O/S, se eu for com o Linux incorporado, não preciso de uma camada de abstração O/S para me permitir fazer testes de unidade no host (caixa de desktop linux).

Algum pensamento ou comentário? Obrigado.

Foi útil?

Solução

Cada dispositivo em que coloquei o Linux começou do zero e não era uma versão despojada de alguma distribuição.

ECos e Linux têm objetivos diferentes. O Linux pretende ser um sistema completo do tipo Unix e, consequentemente, não está tão preocupado com os requisitos mínimos do sistema. O ECOS é um sistema operacional em tempo real projetado para sistemas que geralmente são restritos a recursos. Há muita sobreposição entre os dois sistemas operacionais e, em muitas situações, ambos funcionarão igualmente bem.

Na minha experiência, se o seu sistema tiver os recursos e seus requisitos não forem triviais, o desenvolvimento será mais rápido com o Linux. É mais fácil encontrar desenvolvedores competentes do Linux do que os desenvolvedores RTOs, as ferramentas são mais baratas, os processos são protegidos um do outro, você tende a ter uma melhor visibilidade no sistema em execução, etc.

Uma alternativa (melhor, IMHO) ao ECOS é o RTEMS (http://www.rtems.com). Já faz mais tempo e da última vez que verifiquei, apoiei mais arquiteturas que o ECOS. Ele também possui um PC BSP e é executado no qemu para emulação.

Outras dicas

Não há benefício real em colocar o Linux em um ARM7 IMO; O ARM7 não possui MMU e a proteção da memória é o principal motivo para usar um sistema operacional como o Linux. O UCLinux será executado em alvos sem um MMU, mas você perdeu um dos motivos mais atraentes para o uso do Linux e ainda precisa dos enormes recursos de memória (um flash de 4m, 16m RAM seria um mínimo sensato).

Muitos dispositivos ARM7 não possuem barramentos de memória externos para anexar tanta memória, e no flash chip e na RAM normalmente variam de 32k a 1M, dependendo do dispositivo.

O Linux não é intrinsecamente "em tempo real". Para capacidade em tempo real, geralmente é acoplado a um kernel em tempo real, onde o Linux é essencialmente executado como tarefa ociosa ou em alvos com a capacidade como uma máquina virtual separada. Portanto, se a resposta determinística e rápida a eventos externos for um requisito, você precisará de um RTOS como o ECOS.

O ECOS é ótimo, pois possui um grande ecossistema de recursos adicionais e suporte ao dispositivo que rivaliza com a maioria das ofertas comerciais. No entanto, é provável que algo como Freertos seja mais fácil de 'trazer', mas não forneça mais do que um agendador de threads e mecanismos de comunicação entre processos. Coisas como um sistema de arquivos ou TCP/IP precisam ser obtidas de terceiros (embora haja soluções igualmente pequenas e gratuitas adequadas para sistemas incorporados para isso também).

Se você usar um kernel simples como Freertos ou UC/OS-III, não terá perdido muito tempo, portanto o investimento não é um inibidor para usar outra coisa na próxima vez. O Linux, por outro lado, pode desencorajá -lo a usar algo menor e mais alvejado na próxima vez, e os projetos subsequentes do Tour podem custar consideravelmente mais do que precisam apenas para apoiar seu sistema operacional de escolha.

Linux incorporado == Linux em 99% de todos os casos. Você apenas configura o kernel de maneira diferente.

A maior diferença no desempenho é que, com os ECOs, você pode, dependendo da sua implementação / configuração, tenha um tempo de resposta esperado enquanto, com o Linux, você está à mercê do controlador de interrupção.

O Linux tem uma base de fãs muito maior que o ECOS, mais ajuda para o desenvolvimento e suporta uma ampla variedade de CPUs. Também dependendo do que você deseja, você pode compilar e executar seu programa em um PC executando o Linux.

O Linux pode detectar bloqueios / deadlocks e enviar respostas / reinicializações automáticas para manter a alta disponibilidade do sistema.

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