今天编译了linux设备驱动开发详解一书中第十章中的秒字符设备驱动,编完后加载时 终端显示nsmod: error inserting 'second.ko': -1 Device or resource busy 。此问题的出现是因为second设备的设备好和系统的设备号重了,修改程序中的设备号之后问题解决!
/*======================================================================
A "seond" device driver as an example of kernel timer
The initial developer of the original code is Baohua Song
<author@linuxdriver.cn>. All Rights Reserved.
======================================================================*/
#include <linux/module.h>
#include <linux/types.h>
#include <linux/fs.h>
#include <linux/errno.h>
#include <linux/mm.h>
#include <linux/sched.h>
#include <linux/init.h>
#include <linux/cdev.h>
#include <asm/io.h>
#include <asm/system.h>
#include <asm/uaccess.h>
#include <linux/timer.h> /*°üÀ¨timer.hÍ·Îļþ*/
#include <asm/atomic.h>
#define SECOND_MAJOR 500 /*Ô¤ÉèµÄsecondµÄÖ÷É豸ºÅ*/
static int second_major = SECOND_MAJOR;
/*secondÉ豸½á¹¹Ìå*/
struct second_dev
{
struct cdev cdev; /*cdev½á¹¹Ìå*/
atomic_t counter;/* Ò»¹²¾ÀúÁ˶àÉÙÃ룿*/
struct timer_list s_timer; /*É豸ҪʹÓõĶ¨Ê±Æ÷*/
};
struct second_dev *second_devp; /*É豸½á¹¹ÌåÖ¸Õë*/
/*¶¨Ê±Æ÷´¦Àíº¯Êý*/
static void second_timer_handle(unsigned long arg)
{
mod_timer(&second_devp->s_timer,jiffies + HZ);
复制了 148 行 1,1 顶端
驱动学-秒字符设备
最新推荐文章于 2024-09-25 15:20:18 发布