Las tres estructuras de datos importantes del controlador de dispositivo de caracteres de linux son
struct file
struct inode
strude file_operations
donde struct file representa un archivo abierto y struct inode se usa para registrar la información física del archivo. Por el momento, puede ignorarlo.
strude file_operations es una colección de punteros de función. A continuación, se muestra una descripción del controlador GPIO y los ejemplos de aplicación:
La primera parte es el controlador:
//------------------- ABIERTO ------------------------ ssize_t SIMPLE_GPIO_open (struct Inode * inode, struct file * file) {#ifdef OURS_GPIO_DEBUG printk (" SIMPLE_GPIO_open [--kernel -] \\ n "); #endif return 0;}
//------ ------------- RELEASE /CLOSE --------------- ssize_t SIMPLE_GPIO_release (struct inode * inode, struct file * file) {#ifdef OURS_GPIO_DEBUG printk ( " SIMPLE_GPIO_release [--kernel -] \\ n "); #endif
return 0;}
//--------------- ---------------------------------- struct file_operations gpio_fops = {
.open = SIMPLE_GPIO_open, .read = SIMPLE_GPIO_read, .write = SIMPLE_GPIO_write, .ioctl = SIMPLE_GPIO_ioctl, .release = SIMPLE_GPIO_release,};
Definido como estructura de operaciones de archivo en gpio_fops, por ejemplo .open = SIMPLE_GPIO_open, que define la función abierta de la aplicación para llamar a la función SIMPLE_GPIO_open.
Vea ssize_t definido en el controlador SIMPLE_GPIO_open (struct inode * inode, struct * archivo)
donde el parámetro es otro Las dos estructuras de datos se ignoran aquí.
(No escriba parámetros ni nada)
Revise la llamada en la aplicación
#define DEVICE_NAME " /dev /gpio "
int main (void) {int fd; int ret; char * i;
printf (" \\ nstart gpio_led_driver test \\ n \\ n ");
fd = abierto (DEVICE_NAME, O_RDWR); printf (" fd = % d \\ n ", fd);
if (fd == -1) {printf (" error del dispositivo% s \\ n ", DEVICE_NAME);}
El argumento de función abierta de la llamada de la aplicación está abierto (DEVICE_NAME, O_RDWR);
donde #define DEVICE_NAME " /dev /gpio ", O_RDWR significa abrir y escribir
En el controlador, la función xxxopen se puede escribir de acuerdo con el libro, los parámetros se pueden ignorar por completo (el cuerpo de la función puede escribir el contenido, no sé qué hacer)
El parámetro de función abierta de la aplicación De acuerdo a los parámetros escritos en el libro de aplicaciones de linux,
STM32 tres medios de almacenamiento correspondientes de modo de arranque son tres incorporados en mo
1, prohibir el inicio de sesión del usuario root ssh #vi /etc /ssh /sshd_config cambiar PermitRo
Primero, el entorno: vmware workstaion 9.0 centos 6.2 iou-web Segundo, instalación 1. Instalac
La primera vez es la configuración de red básica. 1. Verifique primero la dirección mac de la re
Bajo Linux, el uso de la CPU del lenguaje C es
Administración y mantenimiento del sistema Linux -bzip2 /bunzip2 command
mkdir Linux, alquitrán y matar a los comandos cuatro consejos útiles
Configurar comando para ordenar
Configuración del sistema Linux VI o habilidades VIM
Configurar la conexión de red en CentOS 6 /RHEL 6
Muchos rzsz el tutorial bajo Linux
Modo de prefork Apache el modo de usuario y el trabajador
Linux comando lsof use tutorial
Código de error de la pantalla azul de arranque del sistema Win8 0x000008e cómo reparar
Windows Vista: El comienzo de la innovación
La versión Win10 Mobile de la aplicación Universal Office se actualizó
¿Cómo configurar la contraseña de arranque de WinXP?
Respuestas a problemas comunes de software y hardware en Win Vista
La mayoría de las vulnerabilidades de Windows se pueden resolver mediante reglas de configuración
Linux Notas de aprendizaje --SSH en contraseñas libre de inicio de sesión de