Entrar em Contato

Programa do Curso

1. Introdução ao Kernel Linux

  • Visão geral do Linux Embedded
  • Arquitetura do kernel Linux
  • Usuário (user space) vs. kernel (kernel space)
  • Responsabilidades do kernel
  • Fluxo de trabalho de desenvolvimento do kernel
  • Visão geral das plataformas embarcadas suportadas

2. Configuração do Ambiente de Desenvolvimento

  • Preparação da estação de trabalho
  • Conceitos de compilação cruzada
  • Instalação das ferramentas de desenvolvimento necessárias
  • Configuração da placa de desenvolvimento BeagleBone Black
  • Configuração do console serial
  • Inicialização do dispositivo de destino

3. Obtenção e Compreensão do Código-Fonte do Kernel

  • Árvore de código-fonte do kernel Linux
  • Kernels estáveis vs. kernels de suporte de longo prazo
  • Baixando o código-fonte do kernel
  • Explorando a estrutura do código-fonte
  • Documentação do kernel
  • Gestão de versões do kernel

4. Configuração, Compilação e Inicialização do Kernel

  • Configuração do kernel usando menuconfig
  • Seleção de funcionalidades do kernel
  • Compilação cruzada do kernel
  • Construção de imagens do kernel
  • Instalação de módulos do kernel
  • Visão geral do bootloader
  • Inicialização de um kernel personalizado

5. Fundamentos da Device Tree

  • Propósito da Device Tree
  • Arquivos de fonte da Device Tree (DTS)
  • Device Tree Blob (DTB)
  • Conceitos de descrição de hardware
  • Modificação de arquivos de Device Tree
  • Construção e implantação de Device Trees

6. Módulos do Kernel Linux

  • Arquitetura de módulos do kernel
  • Construção de módulos de kernel carregáveis
  • Carregamento e descarga de módulos
  • Parâmetros de módulo
  • Dependências de módulo
  • Interação com módulos do kernel
  • Técnicas de depuração de módulos

7. Depuração do Kernel Linux

  • Logagem de kernel com printk()
  • Uso do dmesg
  • Depuração dinâmica
  • Análise de panico do kernel
  • Mensagens Oops
  • Depuração com GDB
  • Ferramentas básicas de rastreamento de desempenho

8. Drivers de Dispositivos de Caracter

  • Modelo de driver de dispositivos do Linux
  • Dispositivos de caractere
  • Registro de drivers
  • Operações de arquivo
  • Operações de leitura e gravação
  • Interface IOCTL
  • Gestão de memória
  • Limpeza do driver

9. Integração de Drivers e Acesso ao Hardware

  • Dispositivos e drivers de plataforma
  • Programação de GPIO
  • Tratamento de interrupções
  • Temporizadores e trabalho diferido
  • Acesso a registros de hardware
  • Trabalho com I/O mapeado em memória

10. Controle de Versão com Git

  • Fundamentos do Git
  • Gestão de código-fonte do kernel
  • Ramificações e mesclagens (branching e merging)
  • Criação de patches
  • Revisão de alterações
  • Colaboração no desenvolvimento do kernel

11. Laboratórios Práticos de Desenvolvimento de Kernel

  • Configuração de um kernel personalizado
  • Construção e implantação do kernel
  • Criação de um módulo de kernel simples
  • Desenvolvimento de um driver de dispositivo de caractere básico
  • Modificação de arquivos de Device Tree
  • Depuração de problemas do kernel no BeagleBone Black

12. Melhores Práticas e Resumo

  • Estilo de codificação do kernel
  • Escrita de drivers mantiveis
  • Armadilhas comuns no desenvolvimento
  • Recursos de documentação do kernel
  • Fluxo de trabalho de contribuição open-source
  • Revisão de conceitos-chave
  • Perguntas e respostas
  • Próximos passos para o desenvolvimento do kernel Linux

Requisitos

Familiaridade básica com o uso de um sistema GNU/Linux

 14 Horas

Número de participantes


Preço por participante

Testemunhos de Clientes (2)

Próximas Formações Provisórias

Categorias Relacionadas