news 2026/4/23 12:25:10

51.自定义工作队列

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
51.自定义工作队列

相比于传统工作队列可控性强。

驱动编写

#include <linux/module.h> #include <linux/init.h> #include <linux/interrupt.h> #include <linux/gpio.h> #include <linux/delay.h> #include <linux/workqueue.h> int irq; struct workqueue_struct *test_workqueue; struct work_struct test_workqueue_work; // 工作项处理函数 void test_work(struct work_struct *work) { msleep(1000); printk("This is test_work\n"); } // 中断处理函数 irqreturn_t test_interrupt(int irq, void *args) { printk("This is test_interrupt\n"); queue_work(test_workqueue, &test_workqueue_work); // 提交工作项到工作队列 return IRQ_RETVAL(IRQ_HANDLED); } static int interrupt_irq_init(void) { int ret; irq = gpio_to_irq(101); // 将GPIO映射为中断号 printk("irq is %d\n", irq); // 请求中断 ret = request_irq(irq, test_interrupt, IRQF_TRIGGER_RISING, "test", NULL); if (ret < 0) { printk("request_irq is error\n"); return -1; } test_workqueue = create_workqueue("test_workqueue"); // 创建工作队列 INIT_WORK(&test_workqueue_work, test_work); // 初始化工作项 return 0; } static void interrupt_irq_exit(void) { free_irq(irq, NULL); // 释放中断 cancel_work_sync(&test_workqueue_work); // 取消工作项 flush_workqueue(test_workqueue); // 刷新工作队列 destroy_workqueue(test_workqueue); // 销毁工作队列 printk("bye bye\n"); } module_init(interrupt_irq_init); module_exit(interrupt_irq_exit); MODULE_LICENSE("GPL"); MODULE_AUTHOR("quan");

Makefile

obj-m += custom_workqueue.o KDIR:=/home/linux/samba-mount/linux-kernel/linux-6.17.5 PWD?=$(shell pwd) all: make -C $(KDIR) M=$(PWD) modules echo $(PWD) clean: rm -rf *.ko *.o *.mod *.mod.o *.mod.c *.symvers *.order install: cp *.ko ../../linux-kernel/linux-6.17.5/kmodules

编译及实验

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/23 12:11:45

GMI Cloud@AI周报|GPT 5.2 重磅发布;智谱AI GLM-4.6V开源;

关键词&#xff1a;GPT5.2&#xff1b;智谱AI GLM-4.6V&#xff1b;Giants苹果高管动荡&#xff1b;Meta公开抄阿里Qwen作业还闭源苹果芯片主管离职&#xff0c;库克健康问题引关注近日&#xff0c;苹果芯片部门主管宣布离职&#xff0c;这一高管变动发生在公司 AI 战略关键时期…

作者头像 李华
网站建设 2026/4/23 10:43:52

Conductor微服务编排引擎完整编译指南:从源码到部署

Conductor微服务编排引擎完整编译指南&#xff1a;从源码到部署 【免费下载链接】conductor Conductor is a microservices orchestration engine. 项目地址: https://gitcode.com/GitHub_Trending/co/conductor Conductor是Netflix开源的微服务编排引擎&#xff0c;专门…

作者头像 李华
网站建设 2026/4/23 10:43:59

numba,让你的Python飞起来!

python由于它动态解释性语言的特性&#xff0c;跑起代码来相比java、c要慢很多&#xff0c;尤其在做科学计算的时候&#xff0c;十亿百亿级别的运算&#xff0c;让python的这种劣势更加凸显。办法永远比困难多&#xff0c;numba就是解决python慢的一大利器&#xff0c;可以让py…

作者头像 李华
网站建设 2026/4/23 10:44:52

GPT-5.2超强功能全解析:这几个改变让你工作更高效,赶快体验!

如果你也是GPT的忠实粉丝&#xff0c;那么你一定知道&#xff0c;GPT-5的更新版——GPT-5.2已经登场了&#xff01;和之前的版本相比&#xff0c;GPT-5.2不仅做了很多优化&#xff0c;还加入了一些超级酷的新功能。可以说&#xff0c;它在各个方面都提升了工作效率和用户体验&a…

作者头像 李华
网站建设 2026/4/23 12:10:50

9 款工具:科研人写开题报告,该怎么选对 AI 辅助工具?

在 CSDN 社区里&#xff0c;开题报告是科研新人绕不开的 “第一关”—— 格式不对、逻辑松散、文献难凑&#xff0c;每一个都能卡半天。现在 AI 工具越来越多&#xff0c;但 “哪个工具适配工科&#xff1f;哪个能同步院校模板&#xff1f;” 却没清晰的答案。今天从paperxieAI…

作者头像 李华