72、Linux设备驱动开发:schar模块详解

Linux设备驱动开发:schar模块详解

1. 设备注册

与hello模块类似,schar模块也有 init_module 入口点。它会执行很多操作,如分配内存、初始化定时器和变量等,这里我们主要关注设备注册。

int init_module(void)
{
    int res;
    if (schar_name == NULL)
        schar_name = “schar”;
    /* register device with kernel */
    res = register_chrdev(SCHAR_MAJOR, schar_name, &schar_fops);
    if (res) {
        MSG(“can’t register device with kernel\n”);
    }
    return res;
}

schar_name 可作为参数传入模块。若未指定名称,则使用默认值“schar”。 SCHAR_MAJOR schar.h 中定义为42,这是一个保留的主设备号。选择保留的主设备号进行实验是安全的,只要该编号未被其他活动设备使用。

#define SCHAR_MAJOR    42

也可以使用动态分配主设备号,示例代码如下:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值