O Raspberry Pi 3 suporta RTOS?

12

Eu sou novo no mundo RTOS. Estou planejando usar alguns RTOS em um Raspberry Pi 3 (pode ser FreeRTOS). Alguém pode sugerir qual RTOS seria bom para os iniciantes?

Como eles ainda não divulgaram uma folha de dados no BCM2837, é possível carregar o RTOS em um Raspberry Pi 3?

Isso vai ajudar?

arenoso
fonte
1
Certamente não há razão para que você não possa carregar um RTOS no RPi. No entanto, solicitar uma recomendação de um SO específico não é relevante.
Chenmunka
1
Pode-se saber por que você precisa de um RTOS? O que lhe dará que outro sistema operacional não oferecerá? Quais são os requisitos em tempo real que você deve atender? Você poderia esclarecer o que torna um RTOS bom para iniciantes?
joana
1
@Chenmunka "Qual é o melhor RTOS para o RPi?" ("para iniciantes" ou não) seria fora do tópico, com base em opiniões. É mais ou menos isso, mas o título é literalmente "O raspberry pi 3 suporta RTOS?" -> Como você ressalta, presumivelmente sim. Se o resto da pergunta realmente for entendido, o que há RTOS, tudo bem - então é certo que é a natureza de qualquer resposta real, eu acho. Há pelo menos um ... mais ou menos.
goldilocks
@joan Preciso de RTOS para soluções embarcadas para aplicações automotivas. Como sou novo no RTOS, fiquei pensando se ele pode ser suportado com o hardware disponível (rpi-3) em casa .
Sandy #
Dê uma olhada no núcleo Ultibo. Pode ser exatamente o que você precisa. ultibo.org
avra

Respostas:

7

Embora o projeto original ofereça suporte apenas ao Raspberry Pi 1, compilei esse garfo com êxito em um Raspberry Pi 2 e ele diz que também suporta 3.

https://github.com/Forty-Tw0/RaspberryPi-FreeRTOS

jordi
fonte
Você o portou com sucesso para o Raspberry Pi3?
LandonZeKepitelOfGreytBritn
Não. Apenas fiz isso no Pi2. Desculpe
Jordi
5

Até agora, testei o seguinte RTOS sem êxito para o raspberry pi 3, que ajudará alguém a não perder tempo (perdi 3 meses): FreeRTOS, Xenomai, RTEMS, BitThunder, ChibiOS / RT

Para o RISC OS, não é um RTOS.

O único que eu era capaz de executar no raspberry pi 3 até agora é o kernel do Fuchsia OS (Magenta), mas está em um estágio anterior e com pouca documentação

Outra maneira é criar o seu RTOS por conta própria, sim, é possível, usando o ULTIBO CORE e seguindo os seguintes tutoriais: - http://www.valvers.com/open-software/raspberry-pi/step01-bare-metal- programação-em-cpt1 / - https://www.youtube.com/watch?v=TCfpb8M0WeQ

Mahmoud Almostafa RABBAH
fonte
1
Usei com êxito o Xenomai 2.6.5 em um Raspberry Pi 3 (usando o código de github.com/margro/linux ).
precisa saber é o seguinte
4

A ARM, a família ISA usada pelos processadores Broadcom em todos os modelos atuais do Raspberry Pi, é baseada no RISC , para o qual o RISC OS é escrito. Acho que o RISC OS predominou nos dispositivos ARM na primeira década, pois a mesma empresa de tecnologia do Reino Unido (Acorn) projetou originalmente o ARM e o RISC OS. De fato, o ARM inicialmente significava "máquina Acorn RISC", e parte do motivo pelo qual o Raspberry Pi é chamado como é devido a uma tradição no Reino Unido de nomear sistemas de computador como frutas ou nozes.

O RISC OS não é um verdadeiro sistema operacional em tempo real; no entanto, ele usa multitarefas cooperativas , o que significa que você pode executar um processo que pode voluntariamente se recusar a se render a outro processo. Que consequências isso pode ter eu não sei, mas eu assumiria que:

  • Você pode configurar as coisas para permitir isso sem problemas, mas isso pode envolver restrições sobre o que o sistema operacional pode realizar (por exemplo, com relação à rede).

  • As alternâncias de contexto para o modo kernel ocorrerão apenas devido às chamadas do sistema feitas pelo processo para concluir seus objetivos.

Isso é bem parecido com a funcionalidade em tempo real, dependendo de quanto tempo você precisa obter. Além disso, há alguma confirmação de que o RISC OS seja executado no Pi 3 .

Cachinhos Dourados
fonte
Obrigado pela resposta. Parece que não é realmente necessário usar outro sistema operacional para o rpi-3, pois o sistema operacional residente também é em tempo real. Meu aplicativo é direcionado para o hardware incorporado que não pode ter SO baseado em linux como raspbian devido a restrições de memória. O ponto é: posso carregar outro RTOS com pouco espaço de memória no rpi-3 apenas para me acostumar com o mundo do RTOS? Existem limitações no rpi-3?
Sandy #
1
Sinto muito: Para explicar, este não é um fórum de discussão . Faça o tour novamente e preste atenção à parte "Obtenha respostas para perguntas práticas e detalhadas" . Parece que você deixou os detalhes de fora da sua pergunta, convidando outras pessoas a perder tempo, fornecendo respostas que não eram o que você estava procurando, para que você pudesse reduzi-lo posteriormente no estilo de discussão. Não é assim que o SE funciona. Se você tiver uma pergunta diferente, faça uma pergunta diferente. Não edite este para alterar o significado original ou eu o fecharei. Obrigado.
goldilocks
1
No entanto, darei um conselho: se você estiver procurando por um sistema operacional que funcione em sistemas com sub MB de memória, primeiro descubra quais são suas opções. Escolher um sistema operacional em tempo real aleatoriamente "para prática" pode acabar ensinando absolutamente nada sobre o que você realmente precisa usar. Então não perca seu tempo. Descubra o que você precisa usar, em seguida, perguntar se você pode usá-lo sobre o pi, etc.
goldilocks
0

Como a definição de um RTOS varia de acordo com o aplicativo, geralmente um computador que finge ser algo muito mais simples, o RISC OS é um RTOS para aplicativos de médio complexo, e não necessariamente para aplicativos de alto complexo, embora seja um RTOS de alta complexidade. parece uma contradição em termos. O exemplo de Mahmoud Almostafa RABBAH refere-se a nenhum SO e a execução de um programa de tarefa única diretamente do gerenciador de inicialização, que também não é um RTOS.

A única maneira razoável de entender isso é dividir a definição do RTOS em três níveis:

  • Baixa complexidade seria algo como uma máquina de lavar ou um data logger, e você provavelmente estará melhor com um hardware mais simples, como o Arduino, ou talvez um MCU mais simples, ou mesmo uma lógica sequencial, em primeiro lugar. Consome menos energia e há muito menos com que se preocupar: nunca torne as coisas mais complicadas do que precisam.

  • Alta complexidade seria algo como um sistema completo de multitarefas, o que um RTOS não é. Provavelmente seria melhor executar sua GUI em um dispositivo separado, se você quiser. A alta complexidade também pode estar monitorando processos que chamam outros processos, e alguns devem ser priorizados, mas, novamente, você fica melhor com algum tipo de processamento paralelo ou falha na capacidade de responder em tempo real.

  • A complexidade média seria onde você precisa das interfaces que um sistema operacional normal pode fornecer, por exemplo, USB e talvez uma pequena saída de vídeo, mas você deseja processar um fluxo de dados e não ser interrompido por nada. Isso soa como o nível de uma aplicação automotiva.

    Para isso, você pode compilar algo sem um sistema operacional, usando uma máquina host para desenvolvê-lo, ou você pode usar a versão do RISC OS que inicializa diretamente no BASIC e se desenvolve na máquina de destino, o que geralmente é mais fácil.

    Isso executará uma única tarefa que pode ser rápida o suficiente para pesquisar vários eventos, sem ser interrompida por outras coisas. As interrupções de hardware ainda serão executadas, a menos que estejam desativadas (bastante fáceis de fazer), e essas são necessárias para que o monitor / USB etc. funcione. Outro hardware interrompe temporizadores de execução e E / S que você pode não estar usando.

Outra vantagem do RISC OS em aplicativos RTOS é que você só pode usar os módulos necessários, algo que não faz sentido nos aplicativos GUI tradicionais e que foi usado por, por exemplo, STD / AdvantageSix [1], embora eles usem o termo "sistemas embarcados" em vez de "RTOS". As vantagens que isso traz são design simplificado, requisitos de energia mais baixos, menor uso de memória e tempos de inicialização mais rápidos (algumas interfaces de dispositivo de E / S exigem mini-inicialização e o sistema operacional precisa participar disso, embora os prazos geralmente sejam curtos demais para serem notados )

Espero que ambos preencham algumas lacunas nas informações acima e esclareçam as lacunas em meu próprio conhecimento.

[1] http://www.advantagesix.co.uk/about_us.html (Outros exemplos de memória, não estão mais disponíveis online).

Robin Hodson
fonte