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?
Respostas:
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
fonte
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
fonte
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 .
fonte
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).
fonte