EEL 410143 – Programação de Sistemas Embarcados


Trimestre 2014/2
Curso: Programa de Pós-Graduação em Engenharia Elétrica
Código da disciplina: EEL 410143
Número de créditos: 3
Professor: Eduardo Augusto Bezerra


Horário das aulas

  • Seg 7:30 – 10:50

Ementa

Conceitos introdutórios; Sistema operacional; Orientação a objetos; Classes; Estruturas de dados; Encapsulamento; Herança; Polimorfismo; Tratamento de exceções; Templates; Entrada e saída; System-on-a-chip; Teste e verificação.


Objetivos

O cumprimento da disciplina busca dar ao aluno, ao final do semestre, condições de:

  • Dar continuidade aos estudos de programação de sistemas computacionais embarcados.
  • Compreender os conceitos fundamentais do paradigma de programação orientada a objetos.
  • Desenvolver a capacidade de análise de programas em C++ de complexidade média.
  • Entender o funcionamento básico de sistemas operacionais para acesso a periféricos.
  • Desenvolver programas em C++ para sistemas embarcados baseados em microprocessadores embarcados, e também sistemas do tipo System-on-a-chip (SoC).

Metodologia

  • O conteúdo programático será desenvolvido por meio de aulas expositivas com auxílio de recursos multimídia.
  • Aulas teóricas e práticas, expositivas, com slides
  • Exercícios a serem resolvidos em aula e extra-classe pelos alunos
  • Práticas, em laboratório, onde os alunos seguirão tutoriais fornecidos pelo professor com instruções para utilização de ferramentas e placas de desenvolvimento
  • O material das aulas é disponibilizado na página da disciplina
  • A plataforma Moodle é a ferramenta oficial da universidade e da disciplina para comunicação com os alunos e para entrega de trabalhos.

Avaliação

  • A média geral do trimestre (MT) é obtida a partir da média aritmética MT = (S + T) / 2, onde S é a nota da preparação/apresentação de seminários, e T é a nota do trabalho final

Bibliografia

  • Walter J. Savitch, “C++ absoluto”, Addison Wesley, 2004 ISBN 85-88639-09-2. Disponível na biblioteca da UFSC em “Livros Eletrônicos”. Título original: Absolute C++.
  • Walter J. Savitch, “Absolute C++”, Addison Wesley, 2004 ISBN 85-88639-09-2.
  • W. Wolf, Computer as Components – Principles of embedded computing system design, Morgan Kaufmann Publishers, 2000.
  • L. Lavagno, UML for real design of embedded real-time systems, Kluwer Academic, 2003.
  • Christopher Hallinan, Embedded Linux Primer, Prentice Hall, 2007.H. M. Deitel e P. J. Deitel, “C++ How to Program”, Pearson Prentice Hall, 2006.
  • Victorine V. Mizrahi, Treinamento em Linguagem C++: módulo 1, Makron Books, 2007.
  • Victorine V. Mizrahi, Treinamento em Linguagem C++: módulo 2, Makron Books, 2007.
  • Herb Sutter, “Exceptional C++ Style”, Pearson Makron Books, 2006.
  • Richard C. Lee; William M. Tepfenhart, “C++ – A Practical Guide to Object-Oriented Development”, Makron Books.
  • B. Stroustrup, The C++ Programming Language. Reading: Addison-Wesley, 1997.

Trabalho prático


Organização das aulas

Aula Data Conteúdo
1 09/06
  • Apresentação da disciplina. Slides aula 1.
  • Apresentação do kit Renesas QSK26A e periféricos disponíveis.
  • Documentação e material da Renesas.
  • Tutorial kit QSK26A.
  • Exercício: projeto e desenvolvimento de software para controle de uma máquina de venda de refrigerantes (vending machine). Será exercitado o ciclo completo de projeto, incluindo o levantamento de requisitos, descrição do projeto com máquina de estados finita (FSM), codificação, implementação e testes. [Sugestão de solução]
  • Tarefas para a próxima aula: solução para a implementação da vending machine, considerando os recursos reduzidos de I/O do kit renesas; selecionar artigos recentes relacionados a programação de sistemas embarcados, OO, C/C++
2 16/06
  • Artigo: “Embedded Software”, Edward A. Lee, Advances in Computers, Vol. 56, Academic Press, London, 2002. (cópia local)
  • Slides “C em sistemas embarcados“.
  • Exercício: Análise do Tempo de Resposta (ver slide 22). Saída de dados em dispositivos do tipo LCD (display de cristal líquido). Entrada de dados via switches e push buttons.
  • Exercício: Observar a saída do exercício anterior no osciloscópio. A seguir, desenvolver uma aplicação para geração de um sinal de relógio e apresentação no osciloscópio.
  • Exercício: projeto e desenvolvimento de software para controle de uma máquina de venda de refrigerantes (vending machine). Será exercitado o ciclo completo de projeto, incluindo o levantamento de requisitos, descrição do projeto com máquina de estados finita (FSM), codificação, implementação e testes. [Sugestão de solução]
3 23/06
4 30/06
5 07/07
6 14/07
  • Djones Lettnin – Projeto de sistemas embarcados baseado no kit Intel-Altera (DE2i-150)
7 21/07
  • Djones Lettnin – Estudo de caso: Conversor RGB – YCrCb
8 04/08
  • Djones Lettnin – Integração dos módulos de hardware e software
9 11/08
  • Djones Lettnin – Avaliação: Projeto de sistemas embarcados
10 18/08
11 01/09 Apresentações de seminários:

  • 7:30-7:45 – Artigo 1
  • 7:45-8:00 – Artigo 2
  • 8:00-8:15 – Artigo 3
  • 8:15-8:30 – Artigo 4
  • 8:30-8:45 – Artigo 5
  • 8:45-9:00 – Artigo 6
  • 9:00-9:15 – Artigo 7
  • 9:15-10:00 – Artigo 8
12 08/09

Artigos selecionados para apresentação:

Material de apoio