que eh isso fabim, nao desanima o guri nao... a sun2 com um 68010 de 1MIPS rodava unix, fazia multitarefa preemptiva, suportava memoria virtual e ainda controlava display grafico e interface ethernet. ainda hoje existem produtos novos com 68000 rodando nessa faixa de performance, com bem pouca memoria, mas rodando algum RTOS preemptivo numa boa.
o problema nem eh performance, o grande problema eh limitacao de memoria! isso pq vc precisa trocar contextos entre uma task e outra, entao nao dah para ter muitas tasks pq nao tem onde armazenar os contextos.
eu acho que existem alternativas quanto ao consumo de memoria... eu fiz uma implementacao totalmente experimental de um pequeno RTOS nao-preemptivo (para ficar portavel), com escalonamento cooperativo feito por passagem de mensagens:
http://framework.sourceforge.net/pics/hc908rtos/trunk/
testei em um mcu com 4KB de FLASH e 384 bytes de SRAM e comecei a ficar meio que sem memoria FLASH nesta altura, rodando uma task para a UART, uma para o RTC, um pequeno shell de console e uma aplicacao simples ativada dinamicamente pelo shell.
em essencia, a unica diferenca para uma multitafera preemptiva eh que um bug em uma task *pode* crashear o sistema operacional inteiro... mas para isso existe watchdog. e claro, desenvolver para mcu requer gente mais gabaritada e com mais conhecimento, nao aqueles pacotes de bolacha que desenvolvem software bugado para windows!
fabim escreveu:xará.
Tem um detalhe bem antigo, que era chamado de kernel for pic.
É tipo um mult tarefa, com função em interrupção, até mesmo um processador de grande porte faz apenas uma coisa pr vez, o que ajuda ele é o DMA e as IDE´s..
Tipo imagina você gerar interrupção a cada 1mS, igual no pc.
Nestes 1mS, você vai para uma sub, que sai perguntando pra todo mundo se alguem esta precisando de algum processamento, se sim seta um um flag e return;
lá no main ele sai testando os flag´s e executando e sai novamente vai para o condicional de baixo e assim por diante.
Eu sinceramente, com 20mhz em um 877 acho isso totalmente inviável..
Se fosse um 4550 em 48mhz "12mips" ja ia melhorar um tanto bom..
ou seja rodrigoadachi, esquece.. ou você parte para um microcontrolador macho com dma e tudo mais, ou esquece..
fabim