Skip to content

Repositório da disciplina Sistemas Embarcados, do curso de Engenharia Eletrônica da UnB, campus Gama. | Repository for the discipline Embedded Systems, from the Electronic Engineering course at the University of Brasilia, Gama campus.

Notifications You must be signed in to change notification settings

filipesfreitas/Sistemas_Embarcados

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Sistemas Embarcados - Plano de Ensino

Datas importantes

  • 04/04/2017: entrega do primeiro ponto de controle
  • 18/04/2017: primeiro teste
  • 02/05/2017: entrega do segundo ponto de controle
  • 16/05/2017: segundo teste
  • 30/05/2017: entrega do terceiro ponto de controle
  • 13/06/2017: entrega do quarto ponto de controle
  • 27/06/2017: entrega do projeto final

Objetivos

  • Conhecer os fundamentos básicos de sistemas embarcados;
  • Compreender o processo de desenvolvimento de software para um sistema embarcado;
  • Conhecer as técnicas de desenvolvimento de aplicações e drivers para sistemas embarcados.

Ementa

  • Introdução aos sistemas embarcados
  • Introdução ao OS Linux
  • Desenvolvimento para sistemas embarcados
  • Inicialização de sistemas embarcados
  • Subsistema de I/O
  • Recursos de sistemas
  • Introdução ao RTOS
  • Introdução ao LKM
  • Introdução aos device drivers

Método de Ensino

Aulas divididas de acordo com a técnica Pomodoro, com 3 períodos de 25 a 30 minutos, intercalados com descansos de 5 minutos:

  • 1o período: aula expositiva do professor;
  • 2o período: alunos responderão a perguntas teóricas propostas pelo professor;
  • 3o período: alunos responderão a perguntas práticas propostas pelo professor.

Dentro do 2o e do 3o períodos, cada aluno deverá desenvolver ao máximo suas respostas, aproveitando o tempo disponível à exaustão, como esperado na técnica Pomodoro.

Todas as respostas deverão ser armazenadas em um repositório GitHub público, no mesmo dia em que as questões forem colocadas. Utilize arquivos diferentes para as respostas, separando-as por data. As respostas às questões poderão ser usadas pelo aluno durante a prova, especialmente funções em C para exercícios práticos. Sendo assim, organize bem o seu repositório.

Será utilizada a placa Raspberry Pi em toda a disciplina. Caberá ao aluno decidir qual modelo de Raspberry Pi utilizar, de acordo com suas necessidades no projeto final.

Avaliação

  • Dois testes (40% da nota final);
  • Projeto de fim de curso (30% da nota final);
  • Pontos de controle (20% da nota final).
  • Respostas dos ciclos Pomodoro em sala de aula (10% da nota final).

Os alunos formarão duplas para montar um projeto final de maior dificuldade, cobrindo os tópicos vistos em sala de aula. Os projetos serão propostos pelos alunos, e será apresentado um protótipo em funcionamento e o relatório do mesmo, na forma de relatório científico com formatação IEEE, contendo os seguintes tópicos:

  1. Resumo (1 ponto): Apresentar o projeto de forma geral e em poucas palavras.
  2. Introdução (1 ponto): Descrição do problema a ser resolvido e revisão bibliográfica do assunto.
  3. Desenvolvimento (5 pontos): Solução, com justificativa baseada em fundamentos teóricos. O desenvolvimento deverá conter a descrição do hardware e do software: 1. Descrição do hardware (2 pontos) , incluindo a BOM (bill of materials) e a montagem (diagrama de blocos, esquemático, descrição textual etc.). 2. Descrição do software (3 pontos) , apresentando e justificando o algoritmo desenvolvido. Esta seção do relatório NÃO CONSISTE em simplesmente replicar o código, e sim em explicar como ele funciona, com base em fluxogramas, pseudo-códigos etc. O código deverá ser apresentado como um apêndice do relatório.
  4. Resultados (2 pontos): Explicar os experimentos definidos para validar o projeto proposto, seguido de análise crítica dos resultados esperados e obtidos. Em caso de divergências, apontar as possíveis causas.
  5. Conclusão (1 ponto): Retomar sucintamente os principais pontos do relatório: descrição do problema, solução utilizada e resultados obtidos.

Os pontos de controle serão prévias do projeto final. Cada dia de atraso na apresentação dos pontos de controle acarreta na perda de 0,5 pontos da nota do mesmo. Serão esperados os seguintes resultados para cada ponto de controle:

  • PC1: proposta do projeto (justificativa, objetivos, requisitos, benefícios, revisão bibliográfica).
  • PC2: protótipo funcional do projeto, utilizando as ferramentas mais básicas da placa de desenvolvimento, bibliotecas prontas etc.
  • PC3: refinamento do protótipo, acrescentando recursos básicos de sistema (múltiplos processos e threads, pipes, sinais, semáforos, MUTEX etc.).
  • PC4: refinamento do protótipo, acrescentando recursos de Linux em tempo real.

Todos os relatórios dos pontos de controle serão entregues através do mesmo repositório GitHub das respostas às perguntas em sala de aula. Crie uma pasta separada no repositório para a entrega dos pontos de controle. DEVERÁ HAVER SOMENTE UM ARQUIVO POR RELATÓRIO, EM FORMATO PDF. Em caso de cópias (integrais ou parciais), ambos os relatórios ficarão com nota ZERO. Os diferentes templates com formatação IEEE estão disponíveis em:

Programa

  1. Introdução aos sistemas embarcados
  2. Introdução ao OS Linux
  3. Obtendo informações do sistema
  4. Principais comandos
  5. Estrutura de diretórios
  6. Instalação padrão de programas
  7. Desenvolvimento para sistemas embarcados
  8. Conceito de cross-platform
  9. Componentes e suas funções (host, target, interface de comunicação, etc)
  10. Processo de geração de imagens
  11. Utilização de makefiles
  12. Inicialização em Sistemas Embarcados
  13. Ferramentas do target
  14. Transferência de imagens
  15. Ferramentas para o Target System
  16. Transferência de imagens
  17. Cenários de boot do target
  18. Seqüência de inicialização do target
  19. Subsistema de I/Os.
  20. Conceito básico de I/Os
  21. O subsistema de I/Os
  22. Modo de transferência serial e em blocos
  23. Funções de um subsistema de I/O
  24. Recursos do sistema I
  25. Processos, sinais e threads
  26. Comunicação e sincronismo entre processos
  27. Programação para redes (sockets)
  28. Introdução ao RTOS
  29. Características dos sistemas RT
  30. Conceitos de Hard Real-Time e Soft Real-Time
  31. Conceito de latência e Jitter
  32. Introdução ao framework Xenomai
  33. Recursos de sistema II
  34. Tarefas
  35. Alarmes
  36. Mutex
  37. Semáforos
  38. Variáveis condicionais
  39. Fila de mensagens
  40. Introdução ao LKM
  41. Introdução
  42. Módulos do kernel
  43. Desenvolvimento de um módulo
  44. Comandos do modutils
  45. Introdução aos device drivers
  46. Conceitos básicos sobre device driver
  47. Estrutura de um device driver
  48. Funções de um device driver
  49. Instalação e carregamento de um device driver

Bibliografia

Básica:

  • Mitchell, M., Oldham, J. & Samuel, A., Advanced Linux Programming, Editora: Newriders, 2001.
  • Li, Q. & Yao, C., Real-Time Concepts for Embedded Systems, Editora: CMP Books, 2003.

Complementar:

  • Kopetz, H., Real-Time Systems - Design Principles for Distributed Embedded Applications, 2o Edição. Editora Springer.
  • Bovet, D. P. & Marco Cesati, M., Understanding the Linux Kernel, 3o Edição, Editora: O'Reilly, 2005.
  • Corbet, J., Rubini, A. & Kroah-Hartman, G., Linux device drivers, 3o Edição, Editora: O'Reilly, 2005.
  • Karim Yaghmour, Building Embedded Linux Systems, Publisher: O'Reilly, 2003.
  • David Kalinsky, Introduction to Real-Time Operating Systems, White paper Xenomai API, www.xenomai.org.

About

Repositório da disciplina Sistemas Embarcados, do curso de Engenharia Eletrônica da UnB, campus Gama. | Repository for the discipline Embedded Systems, from the Electronic Engineering course at the University of Brasilia, Gama campus.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 67.5%
  • C 17.2%
  • Shell 7.2%
  • HTML 5.3%
  • PHP 2.0%
  • Makefile 0.8%