Visão Geral
Curso Linux Embedded Linux Device Drivers. Desenvolva drivers de dispositivos Linux para sistemas embarcados - mantenha a independência da plataforma e opções de desenvolvimento cruzado
Objetivo
Após realizar este Curso Linux Embedded Linux Device Drivers você será capaz de:
- Desenvolvendo para Linux embarcado
- O núcleo do Linux
- Módulos do kernel
- Noções básicas de driver de dispositivo
- Depuração de kernel
- Sysfs e processos
- Filas de espera e conclusões
- Bloqueio de kernel
- Funções avançadas de driver de personagem
- Tempo e temporizadores
- Interrupções
- Acessando hardware
- Compartilhando memória
Publico Alvo
- Engenheiros de software e arquitetos de sistemas
Materiais
Inglês + Exercícios + Lab Pratico
Conteúdo Programatico
Developing for embedded Linux
- Getting and configuring a cross toolchain
- Linux bootloaders: U-Boot
The Linux kernel
- Where to get the kernel source
- Board support packages
- Kernel configuration options
- Building and loading a kernel
Kernel modules
- Writing a module and compiling "out of tree"
- Loading and testing on the target
- Passing parameters
- Modules and the GPL license
Device driver basics
- Types of device driver
- Different ways for applications to interact with the driver
- Character drivers
- Building and testing a simple “misc” character device driver
Kernel debugging
- Review of printk and the magic sysrq key
- Interactive debugging using kgdb
- What to do when the board won't boot
Sysfs and proc
- Classes of driver: /sys/class
- Driver attributes
- Extending the proc file system
Wait queues and completions
- Waiting for things to happen: wait queues
- One-shot events: completions
Kernel locking
- Mutual exclusion using kernel mutexes
- Spinlocks
- Atomic operations
Advanced character driver functions
- Notifying events: poll and fasync
- Driver specific interfaces: ioctl
Time and timers
- Getting the system time: high resolution timers
- Delays and sleeps
- Kernel timers
Interrupts
- Installing an interrupt handler
- Synchronising using using spin_lock_irq
- Deferred processing using tasklets and work queues
Accessing hardware
- Memory regions
- Allocating and freeing memory
- Overview of device tree and how to extract information from a device tree
- Mapping in device memory: ioremap
- DMA buffers: coherent and stream mappings
- Memory barriers
Sharing memory
- mmap: sharing device registers
- mmap: sharing DMA buffers
- get_user_pages: how to access user memory
TENHO INTERESSE