Pergunta

Eu estive envolvido em sistemas operacionais embarcados de um sabor ou de outra, e tiveram geralmente para trabalhar com qualquer que seja o sistema legado teve. Agora eu tenho a oportunidade de começar do zero em um novo projeto incorporado.

Os constrangimentos primários sobre o sistema são:

  • Ele precisa de uma interface baseada na Web.
  • As entradas são obrigados a ser processados ??em tempo real (por isso um verdadeiro RTOS é necessária).
  • A memória disponível é 32 MB de RAM e FLASH.

Os sistemas operacionais que a equipe tem usado anteriormente são VxWorks, ThreadX, uCOS, OSP, e Windows CE.

Alguém tem uma comparação ou estudo comércio a respeito da escolha do sistema operacional?

Existem outros sistemas operacionais que devemos considerar? (Nós tivemos eCos e RT-Linux sugerido).

Editar - Obrigado por todas as respostas até o momento. Uma pena eu não posso bandeira tudo como "aceito".

Foi útil?

Solução

Tudo depende de quanto tempo foi alocado para a sua equipe tem que aprender uma "nova" RTOS.
Existe algum motivo você não quer usar algo que as pessoas já têm experiência com?

Eu tenho muita experiência com vxWorks e eu como ele, mas desconsiderar minha opinião como eu trabalho para WindRiver.

uC / OS II tem a vantagem de ser totalmente documentado (como no código fonte, na verdade, é explicada) no Livro de Labrosse. Não sei sobre Suporte Web embora.

Eu sei OSP não está mais disponível.

Você também pode dar uma olhada em esta lista de RTOSes

Outras dicas

Eu trabalhei com QNX há muitos anos, e não têm nada, mas grandes coisas a dizer sobre isso. Mesmo naquela época, QNX 4 (que é positivamente robusto em comparação com o microkernel Neutrino) foi perfeitamente adequado para situações de pouca memória (embora 32MB é grande quantidade em comparação com o 1-2MB que tivemos que jogar com), e enquanto eu não jogar explicitamente com qualquer material baseado na web, eu sei Apache estava disponível.

Eu acho que seria sábio para avaliar cuidadosamente o que você quer dizer com "RTOS". Eu tenho trabalhado por anos em uma grande empresa que constrói sistemas de alta performance embutidos, e se referem a eles como "em tempo real", apesar de que não é o que eles realmente são. Eles são de baixa latência e ter programadores deterministas, e 9 vezes fora de 10, que é o que as pessoas estão realmente depois quando dizem RTOS.

True-tempo real requer suporte de hardware e não é provável que você realmente quer dizer. Se tudo que você quer é baixa latência e escalonamento determinista (novamente, eu acho que isso é o que as pessoas querem dizer 90% do tempo quando eles dizem "tempo real"), então qualquer distribuição Linux iria funcionar muito bem para você. Você provavelmente poderia conseguir com o Windows (não tenho certeza de como você controlar o programador do Windows embora ...).

Novamente, basta ser cuidadoso com o que você quer dizer com "em tempo real".

Eu comprei algum hardware desenvolvimento de NetBurner Tem sido muito fácil trabalhar com e muito bem documentado. É um RTOS correndo uCLinux. A empresa é grande para trabalhar.

Pode ser uma decisão sábia para selecionar um sistema operacional que sua equipe tem experiência com. No entanto, eu gostaria de promover duas boas opções de código aberto:

Ambos têm um monte de recursos e drivers para uma grande variedade de arquiteturas. Você não mencionou o que a arquitetura que você vai usar. Eles fornecem camadas POSIX que é bom se você quiser ficar tão portátil quanto possível.

Além disso, a licença para ambos os eCos e RTEMS é GPL, mas com uma exceção para que o executável que é produzido ligando contra o kernel não é coberto pela GPL.

As comunidades são muito ativos e há empresas que fornecem suporte comercial e de desenvolvimento.

Temos sido muito satisfeito com o sistema Keil RTX .... leve e rápido e atende todas as nossas limitações de tempo apertado real. Ele também tem alguma depuração Nice oferece construído no monitor de estouro de pilha, etc.

Eu tenho sido muito feliz com Windows CE, embora seja 'mais pesado'.

Publicação de concordar com Ben Collins -. A sua realmente precisa para determinar se você tem uma exigência suave em tempo real (principalmente para interação humana) ou exigência de tempo real rígido (para interface com dispositivos sensíveis à temporização)

Macio também pode significar que você pode tolerar alguns soluços de vez em quando.

O que é os requisitos de confiabilidade? Minha experiência com sistemas operacionais mais genéricas, como Linux em incorporado é que eles tendem a experimentar soluços aleatórias devido às suas inteligentes otimizações do caso médio que tentam evitar a fome e semelhante para tarefas individuais.

VxWorks é bom:

  1. boa documentação;
  2. amigável ferramenta de desenvolvimento;
  3. baixa latência;
  4. escalonamento determinista.

No entanto, duvido que WindRiver iria converter sua maior atenção para Linux e WindRiver Linux iria entrar no mercado de WindRiver VxWorks. Menos de mercado, menos exigência de engenheiros.

Aqui está o mais recente estudo. O último foi feito mais de 8 anos atrás, então isso é mais relevante. As tabelas podem ser usadas para adicionar escolhas RTOS adicionais. Você vai notar que esta comparação é focada em máquinas mais leves, mas é igualmente aplicável a máquinas mais pesadas fornecidas memória virtual não é necessária.

http: // www. embedded.com/design/operating-systems/4425751/Comparing-microcontroller-real-time-operating-systems

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