Directorio de artículos
1 Compile el controlador
Se requiere un Makefile como programa de prueba del controlador en el capítulo anterior, pero el valor de obj-m se cambia a ap3216c_iic.o. El contenido del Makefile es el siguiente:
KERNELDIR := /home/topeet/kernel/linux-imx-rel_imx_4.1.15_2.1.0_ga
CURRENT_PATH := $(shell pwd)
obj-m := ap3216c_iic.o
build: kernel_modules
kernel_modules:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
Primero, ingresamos dos comandos en la terminal (establecemos dos variables de entorno):
export ARCH=arm
export CROSS_COMPILE=arm-linux-gnueabihf-
Luego ejecute el comando "make" para compilar el módulo y la compilación estará completa para generar el archivo del módulo ap3216c_iic.ko.
2 Compile el programa de prueba de la aplicación
Ingrese el siguiente comando para compilar el programa de prueba de la aplicación: Una vez
arm-linux-gnueabihf-gcc -o ap3216c_test ap3216c_test.c
completada la compilación, se generará el archivo ejecutable ap3216c_test.
3 Ejecute la prueba
Inicie la placa de desarrollo y copie el archivo del módulo ap3216c_iic.ko compilado y la aplicación ap3216c_test en el directorio /lib/modules/4.1.15 (compruebe si hay "/lib/modules/4.1.15" en el sistema de archivos raíz del board Directory, si no tiene uno, debe crearlo usted mismo. La placa de desarrollo utiliza el sistema de archivos busybox proporcionado en los datos del CD y los datos del CD "i.MX6UL Terminator CD data \ 08_development board system image \ 03_file system image \ 01_Busybox file system ”directorio). Ingrese el siguiente comando para cargar el módulo:
depmod
modprobe ap3216c_iic
Cuando se carga el módulo del controlador, puede aparecer un error que indica que el dispositivo está ocupado, porque el controlador ap3216c puede estar compilado en el kernel de Linux de forma predeterminada. Primero puede comentar la configuración de ap3216c en la configuración del kernel y usar temporalmente el módulo para probar.
El módulo del controlador se ha cargado correctamente. Utilice el programa de prueba de la aplicación ap3216c_test para realizar la prueba. El comando es el siguiente: El
./ap3216c_test /dev/ap3216c &
programa de prueba leerá continuamente datos de AP3216C y los enviará al terminal. El resultado es el siguiente:
Desinstale el módulo usando el siguiente comando:
rmmod ap3216c_iic