¿Alguien sabe de algún tutorial de programación kernel / driver?

12

Estoy interesado en usar el RPi para enseñarme a mí mismo la programación a nivel de hardware. He buscado en Internet algunos tutoriales para RPi, pero todo lo que encuentro son tutoriales generales de "cómo compilar el núcleo". Estoy más interesado en tutoriales reales de "cómo escribir código de kernel / controladores de dispositivo". ¿Existen tutoriales específicos para RPi, o sería suficiente cualquier tutorial * nix para la programación a nivel de hardware?

Jakub
fuente
2
@Jivings: El duplicado sugerido no aborda ninguna parte de mi pregunta. Elinux y CAS no parecen tener nada sobre la programación del núcleo RPi, mientras que la programación GPIO apenas rasca la superficie de los controladores de escritura. Además, no hay ninguna mención en el duplicado sugerido de los tutoriales RPi vs. general * nix.
Jakub

Respuestas:

5

No creo que encuentre un mejor recurso que este a menos que conozca a alguien personalmente.

Disfrutar

PD En caso de que el enlace muera, el libro se llama Linux Device Drivers.

NickHalden
fuente
Esto se ve muy bien, siempre he sido fanático de la serie O'Reilly.
Jakub
Entonces, ¿supongo que la programación del controlador en el kernel de Linux se transferirá fácilmente a Raspbian?
Jakub
Raspbian es básicamente una distribución Debian más pequeña compilada con parámetros especiales específicos para el hardware en Raspberry Pi. Así que sí debe ser, aunque no soy un experto en la programación, ya sea conductor ni el modo de espera Frambuesa Pi nos dejó para alguien con más conocimientos de carillón en.
NickHalden
Parece muy anticuado (Kernel 2.6 y de 2009). ¿Algo más actualizado?
Lukas Knuth
2

Además del libro LDD, también puede consultar los documentos del curso de capacitación en free-electrons.com . Allí todos los materiales del curso son de código abierto. Muy adecuado para quién ha comenzado un poco en la programación del kernel de Linux, o quién está buscando una comprensión más profunda y más amplia de temas / áreas específicas.

Para empezar, puede ver al menos los dos primeros cursos:

Y no olvide el sitio de referencia cruzada del código fuente lxr en free-electrons.com , donde puede verificar el código fuente para varias versiones del kernel.

Si prefiere un IDE, especialmente NetBeans o Eclipse, y sabe cómo ejecutar scripts perl y Makefile, puede consultar las herramientas de mi proyecto Nbk en github.com . El script le permite indexar completamente un proyecto de kernel con el kit NetBeans C ++. Ayuda mucho a mejorar la experiencia para comprender más sobre las estructuras y relaciones internas del código fuente. Por lo general, hago una configuración mínima del kernel más el dispositivo específico que estoy viendo, y hago una compilación y hago un índice en NetBeans solo para analizar el código del kernel. Mientras que el desarrollo real en otro proyecto. Esta secuencia de comandos se prueba directamente en NetBeans, pero con Eclipse la idea sería la misma (debe modificar la secuencia de comandos para adaptarla a Eclipse).

minghua
fuente