Apresentar aos alunos os conceitos profissionais e formas de trabalhar com software embarcado. Apresentar conhecimentos teóricos e práticos de implementações de sistemas embarcados que compõe produtos aeronáuticos e também produtos não aeronáuticas, levando em consideração as principais diferenças. Relacionar sistemas embarcados com aplicações típicas do universo aeronáutico, com processos soft, firm e hard realtime.
Exercitar procedimentos de programação de sistemas embarcados. Familiarizar-se com a forma, as ferramentas de trabalho profissional e os recursos utilizados para a programação de sistemas embarcados. Estudar as particularidades com o uso de sistemas operacionais de tempo real. Trabalhar ferramentas de software profissionais voltadas ao acionamento de motores, leitura de sensores, implementação de controladores e a comunicação em rede.
1. Arquiteturas de sistemas embarcados. 1.1. Definições e conceitos - Sistemas Embarcados, Sistemas Críticos e Sistema de Tempo Real. 2. Revisão do Sistema Operacional Linux e Programação de Threads em Linux . 3. Apresentação de hardware embarcado de diferentes capacidades e propósitos: a. Toolchain b. Booticaders c. Kernel d. Root Filesystem e. Build Systems (Yocto Project) f. Storage Strategies g. Devices Drivers e Board Support Packages (BSP) h. Processos e Threads i. Gerenciamento de Memória. 4. Programação de dispositivos para conexão a redes de computadores industriais. 5. Sistemas Operacionais de Tempo Real e programação de aplicativos em tempo real. 6. Conceitos de Escalonamento. 7. Conceitos de comunicação entre tarefas e sincronização: a. Buffering Data b. Time-Relative Buffering c. Ring Ruffers d. Mailboxes d. Queues e. Regiões críticas f. Semáforos g. Outros mecanismos de sincronização h. Deadlock i. Inversão de Prioridades. 8. Exemplos de aplicações: a. Escrita de comandos temporizados para atuadores b. Leitura temporizada de sensores c. Implementação de Sistema de Controle em malha fechada. 9. Segurança e Análise de Qualidade no desenvolvimento de software.
1) Chris Seimmonds, Mastering Embedded Linus Programming, Packt PublishingLtd. Birmingham, UK, ISBN 978-1-78439-253-6, 2015. 2) Laplante, P.A., Real Time Systems Design and Analysis, IEEE Press, 3rd. Edition, 2004. 3) Tanenbaum, A.; Modern Operating Systems, 3rd Edition, 2007. 4) Agrawala, A. K., Real-Time System Design, 1990. 5) Alan Burms, Andy Wellings, Real-Time Systems and Programming Languages. 6) MISRA-C 2012 - http://www.misra.org.uk/