Compartilhe:
Início > Linux device drivers

Linux device drivers

Este treina­mento visa capac­i­tar o par­tic­i­pante no desen­volvimento de drivers de dispositivo para o kernel Linux.

Durante o treinamento, os seguintes tópicos serão abordados:

  • Introdução ao kernel Linux – Responsabilidades do kernel, arquitetura geral, processo de desenvolvimento e versionamento, visão geral do código-fonte, licença, ferramentas de navegação.
  • Configuração e compilação do kernel – configurando o kernel Linux, compilando o kernel, imagens geradas, instalando o kernel, compilando o device tree, passando parâmetros para o kernel.
  • Módulos do kernel – kernel monolítico e microkernel, módulos do kernel Linux, vantagens do uso de módulos, compilando e instalando os módulos, ferramentas de gerenciamento de módulos, passando parâmetros para módulos, desenvolvendo um módulo do kernel, integrando o módulo no código-fonte do kernel.
  • Dispositivos de hardware – acesso a hardware no Linux, classes de dispositivos, driver de dispositivo de caractere, major/minor number, implementando as operações em arquivo do driver, trocando dados com o espaço de usuário, registrando um driver de dispositivo de caractere, desalocando recursos, tratamento de erros.
  • Acessando o hardware – formas de acesso a I/O (bus I/O, port I/O, memory mapped I/O), memory mapped I/O com MMU, requisitando uma região de I/O, mapeando um endereço físico para um endereço virtual, acessando os registradores, APIs de acesso a I/O.
  • Frameworks – Linux driver model, frameworks do kernel (tty, alsa, framebuffer, v4l, mtd, input, hwmon, watchdog, rtc, etc), driver de framebuffer, driver de power supply, driver de input, framework de LEDs.
  • GPIOLIB – acessando GPIOs no Linux, GPIOLIB, acesso a GPIOs em espaço de usuário (sysfs e chardev), APIs de acesso a GPIO no kernel.
  • Infraestrutura de barramento – introdução à infraestrutura de barramento, arquitetura e vantagens, gerenciamento de energia, bus code e bus adapters, análise do barramento I2C, analisando o driver de um dispositivo I2C, registrando um dispositivo no barramento, platform bus, platform drivers e platform devices.
  • Device tree – histórico e introdução ao device tree, sintaxe do device tree, propriedades e nós, exemplos de device tree, analisando alguns nós de device tree, alterações no driver para suportar device tree, APIs de device tree, organização do device tree, device tree bindings.
  • Gerenciamento de processos – processos e threads no Linux, os estados de uma tarefa, escalonador, tarefas de tempo real, kernel threads, API de threads do kernel, eventos e sincronização, wait queues, completion variable.
  • Tratamento de interrupções – eventos de hardware interrupção, tratamento de interrupção no kernel, registrando uma ISR, restrições no tratamento de interrupções, como implementar uma ISR, dividindo o tratamento de uma ISR em duas partes (top half e bottom half), tasklets, work queues, threaded IRQs.
  • Gerenciamento de concorrência – multitarefa e concorrência, concorrência no kernel Linux, seções críticas e exclusão mútua, operações atômicas, locking, mutex, spinlocks.
  • Considerações finais – Links e recursos adicionais, recomendações de livros, dúvidas e comentários finais, encerramento.

Para mais detal­hes sobre o con­teúdo, você pode consultar a agenda e os slides do treina­mento.

Algumas fotos dos treinamentos já realizados podem ser visualizadas aqui.

Público-alvo

Estu­dantes, engen­heiros, desen­volve­dores e líderes de equipes de desen­volvi­mento de soft­ware para sis­temas embar­ca­dos.

Pré-requisitos

Terminal de comandos, linguagem C, arquitetura de sistemas com Linux embarcado.

Equipa­men­tos

Todos os equipa­men­tos necessários são forneci­dos pela Embedded Lab­works.

Mate­r­ial de estudo

O mate­r­ial de estudo é com­posto pelos slides das apre­sen­tações, o livro de ativi­dades e exer­cí­cios, os guias de refer­ên­cia e doc­u­men­tos de estudo adi­cionais. Todo o mate­r­ial será fornecido de forma eletrônica no iní­cio do treina­mento.

Kit de desenvolvimento

Os exercícios do treinamento são realizados no módulo Colibri i.MX6 da Toradex (ARM Cortex-A9), com a placa-base Aster e uma placa de expansão com diversos periféricos, incluindo leds, botões, trimpot, buzzer, UART, sensor de temperatura, expansor de GPIO, display de 7 segmentos e acelerômetro.

Turmas abertas

Os treinamentos em turmas abertas são realizados em um ambiente agradável, com um laboratório devidamente equipado e acesso à Internet. As aulas são normalmente ministradas em período integral, com uma parada para o almoço e um coffee-break pela manhã.

Caso esteja interessado em participar do treinamento e não exista uma turma aberta, faça a pré-inscrição clicando aqui. Entraremos em contato assim que uma nova turma for aberta.

Treinamentos in-company

Se você planeja capacitar a sua equipe, considere um treinamento na sua empresa.

Turmas fechadas para treinamento in-company possuem as mesmas características de uma turma aberta. Neste modelo, a empresa é responsável por fornecer os recursos necessários para a realização do treinamento, incluindo sala, datashow e as máquinas de desenvolvimento. Esse modelo também traz grande economia para a empresa, já que o custo do transporte e estadia de vários funcionários é reduzido apenas ao do instrutor.

No investimento de um treinamento in-company está incluso um kit de desenvolvimento cedido pela Toradex Brasil.

Se sua empresa tem uma necessidade especial, podemos estudar um programa que atenda sua necessidade de forma direcionada, como preparar o treinamento para uma plataforma de hardware específica ou desenvolver um conteúdo adicional. Não hesite em entrar em contato por e-mail ou pela página de contato.

Treinamentos na sua cidade

Você pode levar os treina­mentos para sua comu­nidade, em qual­quer cidade do Brasil.

Você não tem condições de realizar o curso em São Paulo? Você tem um grupo de estu­dos e quer aprender mais sobre determinada tecnologia? Você coor­dena ou par­tic­ipa da coor­de­nação de algum curso na sua uni­ver­si­dade e gostaria de treinar seus alunos? Você tem um espaço, quer reunir os ami­gos e pas­sar agradáveis horas apren­dendo sobre sistemas embar­cados?

Mande um e-mail ou uma mensagem para nós. Informe seu curso de interesse e também a sua cidade. Se conseguirmos formar uma turma, poderemos levar o treinamento para a sua cidade!

Clientes que já fizeram o treinamento
Ainda tem dúvidas?

Em caso de dúvidas, críticas ou sugestões, envie um e-mail ou deixe uma mensagem na página de contato.

Entre em contato