Cómo agregar su propio controlador de dispositivo en Linux integrado
Tomando UCLINUX como ejemplo, introduciremos una serie de pasos para compilar el controlador test.c en el kernel de acuerdo con el controlador test.c en forma de módulo:
(1) Modificar el código fuente de test.c
(2) Compile test.c en el kernel. código fuente c
El primer paso es cambiar el original:
#include
#include
char kernel_version[]=UTS_RELEASE
Cambiar a
#ifdef MODULE
#include
#include
char kernel_version[]= UTS_RELEASE ;
#else
#define MOD_INC_USE_COUNT
#define MOD_DEC_USE_COUNT
#endif
El segundo paso , Nueva función int init_test(void)
Escriba el registro del dispositivo aquí:
result=register_chrdev(254, "test", amp; test_fops
( 2) Copie test.c al directorio /uclinux/config. c Copie al directorio /uclinux/linux/drivers/char. Y agregue el siguiente código en la función int chr_dev_init() en el archivo mem.c. Agregue el siguiente código a la función int chr_dev_init() en c:
#ifdef CONFIG_TESTDRIVE
init_test();
#endif
(3) Agregue el siguiente código al Makefile en el directorio /uclinux/linux/drivers/char:
ifeq($(CONFIG_TESTDRIVE),y)
L_OBJS =test. o
Endif
( 4) Agregue el siguiente código en la sección del dispositivo de caracteres en la carpeta /uclinux/config.
Agregue el siguiente código a la sección de dispositivo de caracteres en:
bool 'support for testdrive' CONFIG_TESTDRIVE y
(5) Ejecute make menuconfig (puede verlo en la opción de dispositivo de caracteres de menuconfig La opción "soporte para testdrive" que acabamos de agregar, ya está marcada); make dep; make linux.text; make linux.data;
(6) Cree un dispositivo en el directorio /uclinux/romdisk/romdisk/dev/:
mknod test c 254 0
y ejecute make en /uclinux/appsrc/ Genere un nuevo archivo Romdisk.s19.
En este punto, se puede decir que el trabajo de agregar controladores de dispositivos a UCLINUX se ha completado, siempre que el nuevo linux.bin contenga Romdisk