curso sistemas embebidos
Logo SEV2
  • Curso Sistemas Embebidos Upgrade
  • Horário: Pós-laboral
  • Número de participantes: 10
  • Duração da academia: 360 horas
  • Custo: 

Curso Sistemas Embebidos - Descrição

Curso em C

Formação de 12 semanas (360 horas), dividida em 3 módulos.

  • 4 semanas de Fundamentos de Programação em C (120 horas)
  • 4 semanas de Fundamentos em Sistemas Embebidos (120 horas)
  • 4 semanas de Projectos Práticos (120 horas)

Esta formação começa por fornecer aos participantes conhecimento em programação em baixo nível (linguagem C) em sistemas Linux. Após os conceitos básicos (estruturas, ponteiros, compilação/linkagem, etc), é dada a transposição/aplicação destes conceitos num sistema embebido (ArmV7-M).
Finalmente e para consolidação das matérias ensinadas, é feito um projecto prático, realizado em grupo e com o acompanhamento do formador.

Objetivos

  • Realizar o enquadramento teórico e prático de programação em Sistemas Embebidos;
  • Acquire the OutSystems development best practices;
  • Dotar os formandos dos conhecimentos básicos sobre ferramentas necessárias para programação em sistemas embebidos (cross-compiler, debugger, IDE, etc)
  • Dotar os formandos de metodologias para o desenvolvimento de aplicações de elevada complexidade;


Programa Curricular 

Módulo I - Fundamentos de programação em C (120h)

    • Introdução aos sistemas embebidos (Arm, RISC-V, x86, Sparc, MIPS, PowerPC, etc)
    • Introdução ao ambiente Linux
    • Compilação e linkagem
    • Programação em baixo nível (linguagem C) – estruturas de controlo básico
    • Implementação de programas simples ("hello world", “bubble sort”)
    • Programação em baixo nível (linguagem C) – funções, ficheiros, headers
    • Programação em baixo nível (linguagem C) – struct, union, enum, typedefs, pragma
    • Ambientação ao sistema Linux
    • Implementação de programas mais complexos (funções recursivas, ler/escrever ficheiros)
    • Programação em baixo nível (linguagem C) – ponteiros, bibliotecas sistema, conceitos de multithreading
    • Linux environment
    • Implementação de programas mais complexos que envolvem ponteiros e zonas de exclusão mútua

 

Módulo II - Fundamentos de programação em sistema embebidos (120h)

    • Introdução à famíla de CPUs ARM (ArmV5, ArmV7-M, ArmV7-R, ArmV7-A, ArmV8-A)
    • Cross-compiling
    • Apresentação do sistema embebido da formação (e.g. 32F469IDISCOVERY)
    • Introdução mais aprofundada à família ARMv7-M e à sua linguagem assembly
    • Início da ligação à board e criação de um hello world em bare metal (i.e. sem sistema operativo)
    • Continuação do programa “hello world” (são necessários muitos conceitos, e.g. linker script, SDRAM, UART, PLL)
    • Apresentação do modelo cíclico
    • Introdução a interrupts
    • Programação da interrupção do timer
    • Introdução a multithreading
    • Introdução de RTOS e o seu uso no sistema embebido
    • Realizar um hello world usando o RTOS escolhido
    • Continuação do estudo sobre o linker script
    • Conceitos avançados de RTOS
    • Conceitos avançados de compilação (flags do compilador, objcopy, pragmas, __attribute__, etc)

 

Módulo III - Projectos práticos (120h)

    • Introdução à metodologia agile SCRUM
    • Trabalho em equipa
    • Reporte de Problemas
    • Boas práticas de código
    • TDD - Test-driven development
    • BDD - Behavior-driven development
    • Open-source
    • Introdução à lógica de negócio
    • Técnica de apresentação e problema vs solução
    • Criar projectos de portefólio de desenvolvimento aplicacional utilizando os conhecimentos teóricos e práticos obtidos em pequenas equipas tendo acompanhamento do instrutor e user stories bem documentadas.