If you can't read please download the document
Upload
marcelo-barros-de-almeida
View
1.809
Download
0
Embed Size (px)
DESCRIPTION
Neste artigo são explorados os princípios básicos de criação de um sistema operacional de tempo real (RTOS). Usando um microcontrolador MSP430 como referência e um compilador GNU GCC, as tarefas mais importantes no processo de criação de um RTOS são detalhadas através de um projeto conhecido como “Basic RTOS” [1], criado especificamente para este fim e requerendo apenas 128 bytes de RAM e 1150 bytes de flash. Mesmo sistemas com grandes restrições de memória podem se beneficiar de RTOSs como o descrito aqui, evitando estratégias tradicionais de funcionamento apenas baseado em interrupções e facilitando o desenvolvimento. Os conceitos abordados são gerais e não estão restritos ao MSP430 muito menos ao compilador empregado, provendo um conhecimento indispensável para desenvolvedores interessados em aplicar técnicas similares aos seus projetos.
Citation preview
2. A obra Fundamentos de Sistemas Operacionais de Tempo Real - Criando seu prprio escalonador de tarefas de Marcelo Barros de Almeida foi licenciada com uma LicenaCreative Commons - Atribuio - Uso No-Comercial - Partilha nos Mesmos Termos 3.0 No Adaptada . Com base na obra disponvel em http://code.google.com/p/basicrtos/Podem estar disponveis permisses adicionais ao mbito desta licena atravs do contato direto ao autor via email [email_address] Licenciamento Creative Commons 3. Marcelo Barros de Almeida [email_address]
Atualmente:
4. Professor do Baro de Mau (RP) Detalhes:
5. http://www.twitter.com/marcelobarros 6. http://linuxabordo.com.br/wiki/index.php?title=Marcelo_Barros 7. http://lattes.cnpq.br/0711663486251657 smar 8. Sumrio
9. Dividindo o tempo do processador 10. Troca de contexto 11. O escalonador 12. Adicionando tarefas 13. Inicializando o sistema 14. Objetivos
15. Explorar os princpios de um RTOS 16. Descrever via um exemplo didtico: Basic RTOS
17. Time slice diferentes 18. Requer apenas um timer 19. No preemptivo 20. ~1150 bytes de flash, ~128 bytes de RAM 21. Fontes: http://code.google.com/p/basicrtos/ 22. Como dividir o tempo do processador ?
23. Tempo do RTOS
Estratgia:
24. Interrupo peridica de timer de alta prioridade 25. Avaliao peridica das tarefas em execuo 26. Dividindo o tempo do processador Implementando no MSP430/GCC um timer cclico: 27. Troca de contexto
R1 (SP) R2 (SR) R4 a R15 Stack pointer Status register Registros gerais R3 (CG) Constant generator R0 (PC) Program counter 28. Troca de contexto
29. Para o MSP430:
30. A instruo reti recupera os registros da pilha, ao sair Todo o resto do trabalho precisa ser feito para a troca de contexto SR ... Estado antes da interrupo ... PC Endereo de retorno Stack Pointer 31. Troca de contexto
R15 R14 Stack pointer ... R3 PC SR ... 32. Troca de contexto
33. Informaes sobre a tarefa: Task Block Control (TCB) 34. Troca de contexto
35. O escalonador decide qual a prxima tarefa a ser executada 36. A nova tarefa tem o seu contexto restauradao e ganha o controle do processador 37. O escalonador 38. O escalonador
39. Round Robin no a nica forma de escalonar, talvez voc no queira ser justo sempre 40. Adicionar prioridades pode melhorar o nvel de controle do sistema 41. Uma tarefa nula pode ser interessante quando o sistema estiver ocioso 42. Economizar energia pode ser um requisito 43. Adicionando tarefas
44. Reservar espao para a pilha da tarefa 45. Especificar prioridade e slice de tempo As tarefas entram no vetor de TCBs, na partida do sistema 46. Alguns cuidados essenciais:
47. Criar um contexto para o caso de a tarefa retornar 48. Alinhe a rea do stack 49. Adicionando tarefas 50. Adicionando tarefas
R15 R14 pusStackPtr ... R3 PC SR BRTOS_TaskEnd pusStackBeg 51. Adicionando tarefas 52. Adicionando tarefas
53. Inicializando o sistema
54. Definir as tarefas (no existe suporte criao dinmica de tarefas) 55. Chamar o escalonador 56. Comentrios, dvidas ? [email_address] http://twitter.com/marcelobarros http://code.google.com/p/basicrtos/