在linux下使用class的功能
硬/软件环境:s3c2440/linux-2.6.36/busybox-1.18.4/arm-linux-gcc 4.4.3
下面是模块的c代码:
|
下面是Makefile文件内容:
|
执行make命令后,“insmod driver.ko”插入模块后
在/sys/class目录下有相应名称的文件夹zl_class生成(执行class_create函数后)
在/sys/class/zl_class目录下有zldev_name文件夹生成(执行device_create函数后)
由于已经启用了mdev, /dev目录下会有名为zldev_name的设备文件生成,其设备号是device_create函数中传入的设备号。
/sys/devices/virtual #
/sys/devices/virtual # ls -l zl_class/zldev_name/
total 0
-r--r--r-- 1 root root 4096 May 16 14:12 dev
drwxr-xr-x 2 root root 0 May 16 14:13 power
lrwxrwxrwx 1 root root 0 May 16 14:13 subsystem -> ../../../../class/zl_class
-rw-r--r-- 1 root root 4096 May 16 14:13 uevent
/sys/devices/virtual #
/sys/class #
/sys/class # ls -l zl_class/zldev_name/
total 0
-r--r--r-- 1 root root 4096 May 16 14:12 dev
drwxr-xr-x 2 root root 0 May 16 14:13 power
lrwxrwxrwx 1 root root 0 May 16 14:13 subsystem -> ../../../../class/zl_class
-rw-r--r-- 1 root root 4096 May 16 14:13 uevent
/sys/class #
/dev #
/dev # ls -l zldev_name
crw-rw---- 1 root root 52, 0 May 16 14:12 zldev_name
/dev #