【文件属性】:
文件名称:驱动退出部分的几乎全-卷积神经网络的数学推导
文件大小:8.6MB
文件格式:PDF
更新时间:2024-06-29 07:17:47
周立功 嵌入式 Linux
第 77~117 行是驱动 probe 方法的实现代码,实现程序清单 2.20 驱动初始化部分的几乎
全部功能。在 peobe 中,通过 platform_get_resource()函数从资源中获取需要的 IO 端口,保
存在全局变量 led_io 中,供驱动的 open、release 和 ioctl 等方法使用。
第 119~126 是驱动 remove 方法的实现代码,实现程序清单 2.20 驱动退出部分的几乎全
部功能。
程序清单 2.41 led_drv.c 参考代码
1 #include
2 #include
3 #include
4 #include
5 #include
6 #include
7 #include
8 #include
9
10 #include "led_drv.h"
11
12 static int major;
13 static int minor;
14 struct cdev *led; /* cdev 数据结构 */
15 static dev_t devno; /* 设备编号 */
16 static struct class *led_class;
17 static int led_io; /* 用于保存 GPIO 编号 */
18
19 #define DEVICE_NAME "led"
20
21 static int led_open(struct inode *inode, struct file *file )
22 {
23 try_module_get(THIS_MODULE);
24 gpio_direction_output(led_io, 1);
25 return 0;
26 }
27
28 static int led_release(struct inode *inode, struct file *file )
29 {
30 module_put(THIS_MODULE);
31 gpio_direction_output(led_io, 1);
32 return 0;
33 }
34
35 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)
36 int led_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
37 #else