Gracias por enviar su consulta! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Gracias por enviar su reserva! Uno de los miembros de nuestro equipo se pondrá en contacto con usted en breve.
Temario del curso
1. Introducción al núcleo de Linux
- Vista general de Linux embebido
- Arquitectura del núcleo de Linux
- Espacio de usuario vs. espacio de núcleo
- Responsabilidades del núcleo
- Flujo de trabajo de desarrollo del núcleo
- Vista general de las plataformas embebidas soportadas
2. Configuración del entorno de desarrollo
- Preparación de la estación de trabajo de desarrollo
- Conceptos de compilación cruzada
- Instalación de herramientas de desarrollo necesarias
- Configuración de la placa de desarrollo BeagleBone Black
- Configuración de la consola serial
- Arranque del dispositivo objetivo
3. Obtención y comprensión del código fuente del núcleo
- Árbol de fuentes del núcleo de Linux
- Núcleos estables vs. de soporte a largo plazo
- Descarga de las fuentes del núcleo
- Exploración de la estructura del código fuente
- Documentación del núcleo
- Gestión de versiones del núcleo
4. Configuración, compilación y arranque del núcleo
- Configuración del núcleo mediante menuconfig
- Selección de características del núcleo
- Compilación cruzada del núcleo
- Creación de imágenes del núcleo
- Instalación de módulos del núcleo
- Vista general del programador de arranque (bootloader)
- Arranque de un núcleo personalizado
5. Fundamentos de Device Tree
- Propósito de Device Tree
- Archivos de fuente de Device Tree (DTS)
- Objeto de Device Tree (DTB)
- Conceptos de descripción de hardware
- Modificación de archivos de Device Tree
- Compilación y despliegue de Device Trees
6. Módulos del núcleo de Linux
- Arquitectura de módulos del núcleo
- Creación de módulos de núcleo cargables
- Carga y descarga de módulos
- Parámetros de módulo
- Dependencias de módulos
- Interacción con módulos del núcleo
- Técnicas de depuración de módulos
7. Depuración del núcleo de Linux
- Registros del núcleo con printk()
- Uso de dmesg
- Depuración dinámica
- Análisis de pánico del núcleo
- Mensajes de Oops
- Depuración con GDB
- Herramientas básicas de rastreo de rendimiento
8. Controladores de dispositivos de carácter
- Modelo de controladores de dispositivos de Linux
- Dispositivos de carácter
- Registro de controladores
- Operaciones de archivo
- Operaciones de lectura y escritura
- Interfaz IOCTL
- Gestión de memoria
- Limpieza del controlador
9. Integración de controladores y acceso al hardware
- Dispositivos y controladores de plataforma
- Programación de GPIO
- Manejo de interrupciones
- Temporizadores y trabajo diferido
- Acceso a registros de hardware
- Trabajo con E/S mapeada en memoria
10. Control de versiones con Git
- Fundamentos de Git
- Gestión del código fuente del núcleo
- Ramas y combinaciones (merging)
- Creación de parches
- Revisión de cambios
- Colaboración en el desarrollo del núcleo
11. Laboratorios prácticos de desarrollo del núcleo
- Configuración de un núcleo personalizado
- Compilación y despliegue del núcleo
- Creación de un módulo de núcleo sencillo
- Desarrollo de un controlador básico de dispositivo de carácter
- Modificación de archivos de Device Tree
- Depuración de problemas del núcleo en BeagleBone Black
12. Mejores prácticas y resumen
- Estilo de codificación del núcleo
- Escritura de controladores mantenibles
- Piezas comunes en el desarrollo
- Recursos de documentación del núcleo
- Flujo de trabajo de contribución al código abierto
- Repaso de conceptos clave
- Preguntas y respuestas
- Próximos pasos en el desarrollo del núcleo de Linux
Requerimientos
Conocimientos básicos del uso de un sistema GNU/Linux
14 Horas
Reseñas (2)
El conocimiento del formador. Fue capaz de responder a todas mis preguntas, incluso a las relacionadas con nuestra plataforma. También continuó ayudando hasta que todos comprendimos el material.
James O'Donnell - Tennant Company
Curso - Embedded Linux Kernel and Driver Development
Traducción Automática
I liked the hands-on nature of it.
Maurice Egan
Curso - Embedded Linux Kernel and Driver Development
Traducción Automática