UNIVERSIDADE FEDERAL DE UBERLÂNDIA
  

Timbre

Ficha de Componente Curricular

 

CÓDIGO:

 

COMPONENTE CURRICULAR:

SISTEMAS EMBARCADOS II

UNIDADE ACADÊMICA OFERTANTE:

FACULDADE DE ENGENHARIA ELÉTRICA

SIGLA:

FEELT

CH TOTAL TEÓRICA:

30 horas

CH TOTAL PRÁTICA:

30 horas

CH TOTAL:

60 horas

 

OBJETIVOS

Objetivo Geral: Desenvolvimento de sistemas embarcados com hardware de complexidade média ou alta, com foco em comunicação e interatividade com o usuário, em geral executando sistemas operacionais de alto nível.

Objetivos Específicos:

1. Uso de Linux embarcado ou de sistema operacional equivalente. Construção e aplicação de imagens.

2. Criação de interfaces homem máquina através de toolkits gráficos

3. Integração e uso de stacks diversos de comunicação.

4. Programação com linguagem de script ou de desenvolvimento rápido.

5. Utilização de serviços em nuvem para automação e controle.

6. Interfaceamento com periféricos de comunicação e informação (GPS, modems, Bluetooth, WiFi, entre outros).

7. Utilização de redes com e sem fio no processo de integração.

8. Atualização de firmware no campo (OTA - Over the Air).

9. Segurança em sistemas embarcados.

Ementa

Desenvolvimento de sistemas embarcados microprocessados, integração com serviços em rede ou nuvem, interfaces homem/máquina (HMI).

PROGRAMA

1. Linux Embarcado

    1.1. Breve histórico sobre UNIX

    1.2. Linux

    1.3. Por que utilizar Linux em sistemas embarcados?

    1.4. Anatomia de um sistema embarcado

    1.5. Considerações sobre armazenamento

    1.6. Distribuições Linux para sistemas embarcados

2. Processadores

    2.1. Processadores Stand-Alone

    2.2. Processadores Integrados (Systems on Chip)

    2.3. Outras Arquiteturas

    2.4. Plataformas de hardware

3. O Kernel Linux

    3.1. Background

    3.2. Kernel

    3.3. Construção

    3.4. Sistemas construtores de Kernel

    3.5. Kernel customizados e documentação

    3.6. Inicialização

    3.7. Fluxo de controle

    3.8. Inicializando subsistemas

4. Inicialização do espaço do usuário

    4.1. Sistemas de arquivos Root

    4.2. O processo de inicialização

    4.3. Disco RAM inicial

    4.4. Utilizando initramfs

    4.5. Shutdown

5. Bootloaders

6. Device Driver

7. Subsistemas MTD

    7.1. Introdução

    7.2. Partições

    7.3. Utilitários

    7.4. Conceitos sobre Device Driver

    7.5. Módulos

    7.6. Métodos

    7.7. Device Driver e GPL

8. BusyBox

    8.1. Introdução

    8.2. Configuração

    8.3. Operação

9. Ambiente de Desenvolvimento Embarcado

10. Ferramentas de Desenvolvimento

   10.1. GNU Debugger

   10.2. Ferramentas de Tracing e Profiling

   10.3. Utilitários Binários

   10.4. Técnicas de Depuração de Kernel

11. Ferramentas de depuração para aplicações em Linux embarcado

12. Linux e Sistemas em Tempo Real

   12.1. O que é um sistema de Tempo Real

   12.2. Preempção do Kernel

   12.3. Real-Time Kernel Patch

   12.4. Análise de desempenho do Real-Time Kernel

13. Ferramentas de desenvolvimento para IHM

   13.1. Compilação cruzada

   13.2. Desenvolvimento de interfaces gráficas

14. Sistemas GSM e GPS

   14.1. Definição de sistemas GSM

   14.2. Definição de sistemas GPS

   14.3. Tipos de aplicação

15. Aplicações para Sistemas Embarcados

   15.1. Comunicação Serial

   15.2. IHM de dados com interface serial

   15.3. Interação com redes GSM, comandos AT

   15.4. Geração de informações de posicionamento

   15.5. Interação com sistemas em nuvem (AWS)

   15.6. Construção de Gateway MQTT com interface para sistemas em nuvem (AWS)

   15.7. Reconhecimento facial em nuvem

BIBLIOGRAFIA BÁSICA

1. ALMEIDA, R.; MORAES, C.; SERAPHIM, T. Programação de sistemas embarcados: desenvolvendo software para microcontroladores em linguagem C. Rio de Janeiro: Elsivier, 2016.

2. MATTHEW, Neil.; STONES, Richard. Beginning Linux programming. [s.l.]: Wiley, 2007.

3. MOLLOY, Derek. Exploring Raspberry Pi: Interfacing to the Real World with Embedded Linux. New York: John Wiley & Sons, 2016.

4. SALVADOR, Otavio; ANGOLINI, Daiane. Embedded Linux development with Yocto Project. Birmingham: Packt Publishing, 2014.

5. YIU, J. The Definitive Guide to ARM Cortex-M3 and Cortex-M4 Processors. 3a ed. [s.l.]: Newnes/Elsevier, 2014.

BIBLIOGRAFIA COMPLEMENTAR

1. BACKES, André. Linguagem C: completa e descomplicada. Rio de Janeiro: Elsevier, 2013.

2. BARR, Michael; MASSA, Anthony. Programming embedded systems: with C and GNU development tools. O'Reilly Media, 2006.

3. GRENNING, James W. Test Driven Development for Embedded C. [S. l.]: Pragmatic Bookshelf, 2011.

4. KLEMENS, Ben. 21st Century C: C tips from the New School. [S. l.]: O'Reilly Media, 2015.

5. HOOK, Brian. Write portable code: An Introduction to Developing Software for Multiple Platforms. [S. l.]: No Starch Press, 2005.

6. HYDE, Randall. Write great code: understanding the machine. v. 1. [S. l.]: No Starch Press, 2012.

7. MONTGOMERY, Stephen L. MISRA C: Guidelines for the Use of the C Language in Critical Systems 2012. [S. l.]: Misra, 2013.

8. PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: McGraw-Hill, 2016.

9. SINK, E. Version Control by Example. [S. l.]: Pyrenean Gold Press, 2011.

10. TANENBAUM, Andrew S. Organização estruturada de computadores. São Paulo: Pearson, 2013.

11. WHITE, E. Making Embedded Systems: Design Patterns for Great Software. [S. l.]: O'Reilly Media, 2014.

aprovação

 

Prof. Dr. Antônio Cláudio Paschoarelli Veiga

Coordenador do Curso de Graduação em Engenharia Eletrônica e de Telecomunicações

Prof. Dr. Sérgio Ferreira de Paula Silva

Diretor da Faculdade de Engenharia Elétrica

 


logotipo

Documento assinado eletronicamente por Antonio Claudio Paschoarelli Veiga, Coordenador(a), em 22/03/2019, às 09:15, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


logotipo

Documento assinado eletronicamente por Sergio Ferreira de Paula Silva, Diretor(a), em 25/03/2019, às 07:09, conforme horário oficial de Brasília, com fundamento no art. 6º, § 1º, do Decreto nº 8.539, de 8 de outubro de 2015.


QRCode Assinatura

A autenticidade deste documento pode ser conferida no site https://www.sei.ufu.br/sei/controlador_externo.php?acao=documento_conferir&id_orgao_acesso_externo=0, informando o código verificador 1106000 e o código CRC A80DC365.




Referência: Processo nº 23117.015883/2019-69 SEI nº 1106000