Alguém já avaliou o NuttX RTOS?


15

Ao ler o Linux User Journal hoje, me deparei com um pouco de publicidade sobre o NuttX RTOS. Eu verifiquei o site deles e fiquei bastante impressionado com o conjunto de recursos e com a capacidade de colocá-lo em um 8052! Acho interessante que ele suporte o POSIX, algo em que ajudei a trabalhar para um dos meus clientes internos do RTOS. Este parece um pouco mais rico em recursos do que o RTOS interno.

Alguém mais ouviu falar do NuttX e tentou? Se sim, como ele se compara a outros RTOS, como o FreeRTOS ?


1
Estou começando a jogar com o RTOS e, quando perguntei aqui, recebi ótimos conselhos, mas tive a sensação de que a maioria dos usuários aqui não sabe o que é um RTOS. Eu não quero dizer isso de uma maneira ruim, só acho que pode ser útil pedir isso em outros fóruns para aumentar sua chance de receber uma boa resposta.
Kortuk

Eu tenho que tentar de qualquer maneira :-) Você nunca sabe quem se esconde aqui :-)
Jay Atkinson

Sim, eu fiz a pergunta do fiapo aqui também. Nunca é demais esperar uma mordida.
Kortuk

Começando a recompensa! Estou interessado na comparação entre RTOS.
tyblu

7
Por que existe uma votação para encerrar esta questão? Os RTOS são usados ​​em eletrônica e robótica o tempo todo.
Kellenjb

Respostas:


17

Houve discussões relacionadas a esta pergunta aqui: link

Extratos: O artigo do Linux Journal mencionado aqui está: link

Eu acho que as portas 8052 e M68HC12 são escolhas especialmente ruins para caracterizar o NuttX porque ambos têm alguns problemas, e o NuttX está agora na versão 5.16 com 63 lançamentos.

Eu completei a entrevista na aba "Publisher" aqui: link ; também há uma crítica: link .

Uma extensa documentação do NuttX está disponível aqui: link .

Os problemas com as peças hcs12 e 8051 são os seguintes:

8051 / 80c52: Essa arquitetura é realmente hostil ao RTOS. Ele possui uma pequena pilha de hardware (128 bytes no 8051, 256 no 80c52) em um local de memória dedicado (endereço 0). Para alternar tarefas, você deve copiar a pilha inteira da tarefa a ser bloqueada do endereço dedicado para algum local de salvamento e copiar a pilha inteira da tarefa a ser iniciada do local de salvamento para o local dedicado da pilha. YECH!

E desde então, a pilha é tão pequena. É muito, muito fácil sobrecarregar a pilha - especialmente durante o manuseio de interrupções.

A porta NuttX 8051 está completa e funcional (pelo menos na última vez que a usei). Mas, para torná-lo útil, você provavelmente teria que copiar toda a pilha em cada interrupção para evitar que ela transbordasse. Basicamente, eu perdi o interesse naquele momento, mas se alguém estava realmente motivado para usar o 8051, é factível (se não for bem recomendado).

O que foi bom na porta 8051 é que foi um ótimo exercício colocar o NuttX em um local de memória muito pequeno. A porta 8051 é executada em 32Kb de RAM - que inclui as bibliotecas do compilador RTOS, libc, um programa de teste substancial, .data / .bss e heap. E com um pouco de memória de sobra!

hcs12: Este é um projeto em que trabalho nas horas vagas, quando não estou fazendo mais nada. Ainda não está terminado e ainda não está pronto para o horário nobre.


No que diz respeito à comparação com outros RTOSs, eu realmente não tenho nenhuma resposta boa e autorativa porque não uso outros RTOSs. Mas aqui está o meu entendimento ingênuo:

O FreeRTOS possui muitos downloads e uma área realmente pequena de cerca de 4Kb. É o RTOS de escolha para os MCUs realmente pequenos. Uma porta FreeRTOS é fornecida por fornecedores de silício com praticamente todos os MCU. Portanto, é a opção RTOS padrão.

Existem dezenas de concorrentes com o FreeRTOS por aí. O ChiBIOS vem à mente imediatamente. Todos esses são planejadores minúsculos de tipos variados.

Para fazer uma comparação real, uma coisa que precisamos fazer primeiro é definir o que queremos dizer com um RTOS: é apenas um agendador? Ou é um conjunto integrado de recursos padrão do sistema operacional - como agendador, sistema de arquivos, drivers de dispositivo, gerenciamento de memória, rede, etc. A maioria dos sistemas operacionais, Linux, por exemplo, são ambientes de desenvolvimento completos, não apenas agendadores. NuttX é um sistema operacional completo é o mesmo sentido que o Linux. Aqui estão alguns outros:

RTEMS : Eu trabalhei com este. Existe sempre e deve ser muito estável. É grande; pense> 100kb. Eu acho que ele visa um pouco acima do mercado de MCU.

uCOS : Nunca usei, mas esse é o RTOS em vários gerenciadores de inicialização populares, não é? Minha impressão é que é semelhante ao RTEMS, mas eu realmente não sei do que estou falando.

Como eu compararia o NuttX com aqueles: Bem, é muito menor. A pegada inicial é de cerca de 20 KB. Uma configuração com todos os recursos é de 10 a 20 KB a mais. Outra diferença desses RTOSs é que o NuttX é muito orientado a padrões. Você pode pensar no NuttX como um pequeno Linux, semelhante ao trabalho. A maioria dos códigos que compila e executa no Linux também será executada no NuttX (alguns códigos do sistema, como código de rede ou daemons, podem precisar de alguns ajustes).

Eu acho que o RTEMS está mais focado em microprocessadores; O NuttX está mais focado em microcontroladores.


4

O licenciamento é outra diferença a ter em mente ao selecionar um RTOSs de código aberto. Especialmente se você planeja usar o RTOS em um projeto comercial. A maioria dos RTOSs de código aberto possui uma licença GPL modificada. A modificação da licença geralmente especifica que você não precisa do seu código proprietário vinculado ao GPL RTOS (mas ainda precisa liberar os arquivos RTOS com suas modificações).

O NuttX (e provavelmente outros) possui uma licença BSD modificada e não restritiva. Com a licença BSD, você pode essencialmente pegar o código e usá-lo como se fosse seu, sem obrigações além de reter as informações de licenciamento e direitos autorais nos arquivos.


No entanto, você gostaria que eu editasse essas informações em sua outra resposta, parece que elas estão juntas.
precisa saber é o seguinte

Claro, fique à vontade. Rant sobre 8051 e 80c52 e hc12 também parece fora de contexto aqui.
patacongo

Eu estava apenas assegurando que você percebesse que poderia editar mais. Como você sabia e o fez intencionalmente, podemos simplesmente deixá-lo aqui. Normalmente você pode apenas editar em outra seção e usar títulos. Deixe-me saber se eu posso ajudar se você mudar de idéia.
precisa saber é o seguinte
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.