Alguns anos atrás eu comecei um projeto pessoal com o objetivo de construir um pequeno sistema operacional de tempo real (RTOS) para microcontroladores, mais especificamente para micros MSP430, linha da qual eu sempre gostei bastante. É claro que existem muitas opções para isso hoje mas fazer o seu torna a aprendizagem gratificante.
Infelizmente o Basic RTOS (BRTOS), o projeto do qual estou falando (nome muito original, não?), foi um dos que eu perdi o ponteiro da pilha e nunca mais entrou no contexto. O problema é que eu acredito no “Darwinismo dos projetos pessoais”, onde somente os projetos mais adaptados sobrevivem. Muitos são abandonados no decorrer do caminho, por falta de tempo, interesse, dinheiro ou seja qual for a desculpa.
Como o BRTOS é um código interessante e que aborda questões pertinentes aos envolvidos com RTOSs, resolvi publicar alguns posts a respeito dele. O BRTOS já rodava, escalonando tarefas (com suporte a time slice) que compartilhassem uma mesma prioridade, segundo o algoritmo round-robin. Não está implementado nele o tratamento de timers e prioridades diferentes para tarefas, algo possível de ser feito por um leitor mais curioso (requisite acesso de escrita no repositório para commits).
O código e documentação (chm, no diretório doc) estão no trunk, compilando com o GCC para MSP430. Recomendo uma olhada para que a discussão sobre o funcionamento do sistema, assunto dos próximos posts, fique mais fácil.
Até lá.
