¿Cómo aprender los controladores integrados?
El aprendizaje del conductor integrado es fácil.... Los conductores también son complejos. Es simple porque los controladores están escritos en un formato fijo. El objetivo principal del aprendizaje inicial es familiarizarse con el proceso del núcleo y la aplicación de varias funciones del núcleo. Tome el controlador de caracteres como ejemplo. El objetivo principal es mejorar las funciones de lectura y escritura de ioctl abierto y otras funciones. Sin embargo, si no puede encontrarlas, simplemente no escriba estas funciones. El controlador tiene su propio número de dispositivo y este número de dispositivo. Por lo tanto, debe especificar su función de inicialización en moudle_init y luego solicitar su número de dispositivo en la función de inicialización. . . . . En la función de inicialización, aún debe inicializar la inicialización de cdev. La tarea general está completa. . . . En este momento, no puede acceder a esas funciones de lectura y escritura por la noche. Ahora tiene el número de dispositivo... cdev se ha inicializado, pero aún no ha inicializado su dispositivo. Pero todavía no has asociado tu número de dispositivo... El propósito de cdev es asociar el número de dispositivo con file_openration. Entonces tienes que inicializar file_operation. decirle operación_archivo. Dígale a file_operation qué funciones son sus funciones de lectura y escritura y otras funciones. En este punto, ha terminado de escribir. . . . . También debe compilar el código fuente del kernel, como modificar kconfig y makefile, luego ejecutar make menuconfig para compilar el controlador en el kernel o en el archivo .ko, y luego ejecutar make o make moudle en él. . . . .
Si estás empezando a aprender. Simplemente lea el código fuente del controlador. Luego intenta escribirlo de nuevo. Incluso luces LED. Sería útil escribir una o dos páginas más. Luego puede encontrar algunos libros sobre controladores del kernel para leer, simplemente muele una barra de hierro profunda hasta convertirla en una aguja...