8、内核设施、辅助函数与字符设备驱动开发

内核设施、辅助函数与字符设备驱动开发

1. 内核设施与辅助函数

1.1 线程化中断请求

线程化中断请求(Threaded IRQs)中,处理程序的定义不变,但注册方式略有不同。 request_irq 函数实际上调用了 request_threaded_irq 函数:

request_irq(unsigned int irq, irq_handler_t handler, \
            unsigned long flags, const char *name, void *dev)
{
    return request_threaded_irq(irq, handler, NULL, flags, \
                                name, dev);
}

1.2 线程化底半部机制

以下是实现线程化底半部机制的示例代码:

static irqreturn_t pcf8574_kp_irq_handler(int irq, void *dev_id)
{
    struct custom_data *lp = dev_id;
    unsigned char nextstate = read_state(lp);
    if (lp->laststate != nextstate) {
        int key_down = nextstate < ARRA
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值