ChibiOS / RT - ChibiOS/RT
Desenvolvedor | Giovanni Di Sirio |
---|---|
Escrito em | C , linguagem assembly |
Família OS | Sistemas operacionais em tempo real |
Estado de trabalho | Atual |
Modelo fonte | Código aberto |
lançamento inicial | 2007 |
Último lançamento | 20.3.2 / 1º de agosto de 2020 |
Repositório | |
Alvo de marketing | Sistemas embarcados |
Disponível em | inglês |
Plataformas | Intel 80386 ; ARM 7, 9 , Cortex: M0 , M3 , M4 , M7 ; PowerPC , e200z ; Atmel AVR ; TI MSP430 ; STM8 ; Freescale Coldfire ; Renesas H8 S |
Tipo de kernel | Microkernel |
Licença | GPL 3 ou proprietário |
Website oficial | www |
ChibiOS / RT é um sistema operacional compacto e rápido em tempo real que suporta múltiplas arquiteturas e lançado sob uma combinação da GNU General Public License versão 3 (GPL3) e a Apache License 2.0 (dependendo do módulo). É desenvolvido por Giovanni Di Sirio.
Licenças comerciais estão disponíveis na ChibiOS . Produtos adicionais incluem ChibiOS / HAL, uma camada de abstração de hardware compatível com ChibiOS / RT e ChibiStudio, um ambiente de desenvolvimento integrado gratuito baseado em Eclipse , GNU Compiler Collection e o pod de depuração OpenOCD Joint Test Action Group ( JTAG ).
Métricas
O ChibiOS / RT foi projetado para aplicações embarcadas em microcontroladores de 8 -, 16 - e 32 bits . Tamanho e eficiência de execução são os principais objetivos do projeto. Como referência, o tamanho do kernel pode variar de um mínimo de 1,2 KiB até um máximo de 5,5 KiB com todos os subsistemas ativados em um processador STM32 Cortex-M3 . O kernel pode atingir mais de 220.000 threads criados / encerrados por segundo e pode realizar uma troca de contexto em 1,2 microssegundos em um STM32 @ 72 MHz. Métricas semelhantes para todas as plataformas suportadas são incluídas na distribuição do código-fonte como relatórios de teste.
Características
O microkernel ChibiOS / RT suporta:
- Multithreading preventivo
- 128 níveis de prioridade da fila
- Agendamento round-robin para threads no mesmo nível de prioridade
- Temporizadores de software
- Contando semáforos
- Mutexes com suporte para o algoritmo de herança de prioridade
- Variáveis de condição
- Mensagens síncronas e assíncronas
- Sinalizadores e manipuladores de eventos
- Filas
- E / S síncrona e assíncrona com capacidade de tempo limite
- Heap de memória thread-safe e alocadores de pool de memória .
- Camada de abstração de hardware com suporte para ADC , CAN , GPT (timer de uso geral), EXT , I²C , ICU , MAC , MMC / SD , PAL , PWM , RTC , SDC , Serial , SPI e drivers USB .
- Suporte para as pilhas LwIP e uIP TCP / IP.
- Suporte para a biblioteca do sistema de arquivos FatFs.
Todos os objetos do sistema, como threads , semáforos , temporizadores , etc., podem ser criados e excluídos em tempo de execução. Não há limite superior, exceto para a memória disponível. Para aumentar a confiabilidade do sistema, a arquitetura do kernel é totalmente estática, um alocador de memória não é necessário (mas está disponível como uma opção) e não há estruturas de dados com limites superiores de tamanho, como tabelas ou arrays . As interfaces de programação de aplicativos ( APIs ) do sistema são projetadas para não ter condições de erro, como códigos de erro ou exceções.
O RTOS é projetado para aplicativos em sistemas embarcados (dispositivos) e inclui aplicativos de demonstração para vários microcontroladores :
- STMicroelectronics - STM32F1xx, STM32F2xx, STM32F3xx, STM32F4xx, STM32L1xx, STM32F0xx ; STM8S208x, STM8S105x, STM8L152x ; ST / Freescale SPC56x, MPC56xx
- Semicondutores NXP - LPC11xx, LPC11Uxx, LPC13xx , LPC2148
- Atmel - AT91SAM7S, AT91SAM7X , megaAVR
- Texas Instruments (TI) - MSP430x1611 ; TM4C123G, TM4C1294
- Tecnologia Microchip - PIC32MX
Portas de contribuição também estão disponíveis para as famílias Coldfire e H8S .
O ChibiOS / RT também foi transferido para o Raspberry Pi e os seguintes drivers de dispositivo foram implementados: Porta (GPIO), Serial, GPT (General-Purpose Timer), I2C, SPI e PWM.
Também é possível executar o kernel em um processo Win32 em um modo de emulação de E / S de software, permitindo fácil desenvolvimento de aplicativos sem a necessidade de hardware físico. Um exemplo está incluído para o compilador MinGW .
uGFX
O ChibiOS / RT é totalmente compatível com o kit de ferramentas da interface gráfica do usuário (GUI) µGFX, anteriormente denominado ChibiOS / GFX.
Veja também
- Comparação de sistemas operacionais de código aberto
- Uma explicação detalhada de multithreading em ChibiOS / RT